1. 15 Mar, 2024 6 commits
    • Linus Torvalds's avatar
      Merge tag '9p-for-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs · c442a423
      Linus Torvalds authored
      Pull 9p updates from Eric Van Hensbergen:
       "This includes a number of patches addressing improvements in the cache
        portions of the 9p client.
      
        The biggest improvements have to do with fixing handling of inodes and
        eliminating duplicate structures and unnecessary allocation/release of
        inode structures and many associated unnecessary protocol traffic.
        This also dramatically reduced code complexity across the code and
        sets us up to add proper temporal cache capabilities"
      
      * tag '9p-for-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:
        fs/9p: fix dups even in uncached mode
        fs/9p: simplify iget to remove unnecessary paths
        fs/9p: rework qid2ino logic
        fs/9p: Eliminate now unused v9fs_get_inode
        fs/9p: Eliminate redundant non-cache path in mknod
        fs/9p: remove walk and inode allocation from symlink
        fs/9p: convert mkdir to use get_new_inode
        fs/9p: switch vfsmount to use v9fs_get_new_inode
      c442a423
    • Linus Torvalds's avatar
      Merge tag 'fuse-update-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse · 6ce8b2ce
      Linus Torvalds authored
      Pull fuse updates from Miklos Szeredi:
      
       - Add passthrough mode for regular file I/O.
      
         This allows performing read and write (also via memory maps) on a
         backing file without incurring the overhead of roundtrips to
         userspace. For now this is only allowed to privileged servers, but
         this limitation will go away in the future (Amir Goldstein)
      
       - Fix interaction of direct I/O mode with memory maps (Bernd Schubert)
      
       - Export filesystem tags through sysfs for virtiofs (Stefan Hajnoczi)
      
       - Allow resending queued requests for server crash recovery (Zhao Chen)
      
       - Misc fixes and cleanups
      
      * tag 'fuse-update-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse: (38 commits)
        fuse: get rid of ff->readdir.lock
        fuse: remove unneeded lock which protecting update of congestion_threshold
        fuse: Fix missing FOLL_PIN for direct-io
        fuse: remove an unnecessary if statement
        fuse: Track process write operations in both direct and writethrough modes
        fuse: Use the high bit of request ID for indicating resend requests
        fuse: Introduce a new notification type for resend pending requests
        fuse: add support for explicit export disabling
        fuse: __kuid_val/__kgid_val helpers in fuse_fill_attr_from_inode()
        fuse: fix typo for fuse_permission comment
        fuse: Convert fuse_writepage_locked to take a folio
        fuse: Remove fuse_writepage
        virtio_fs: remove duplicate check if queue is broken
        fuse: use FUSE_ROOT_ID in fuse_get_root_inode()
        fuse: don't unhash root
        fuse: fix root lookup with nonzero generation
        fuse: replace remaining make_bad_inode() with fuse_make_bad()
        virtiofs: drop __exit from virtio_fs_sysfs_exit()
        fuse: implement passthrough for mmap
        fuse: implement splice read/write passthrough
        ...
      6ce8b2ce
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 68bf6bfd
      Linus Torvalds authored
      Pull ext4 updates from Ted Ts'o:
       "Ext4 bug fixes and cleanups, plus some additional kunit tests"
      
      * tag 'ext4_for_linus-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (23 commits)
        ext4: initialize sbi->s_freeclusters_counter and sbi->s_dirtyclusters_counter before use in kunit test
        ext4: hold group lock in ext4 kunit test
        ext4: alloc test super block from sget
        ext4: kunit: use dynamic inode allocation
        ext4: enable meta_bg only when new desc blocks are needed
        ext4: remove unused parameter biop in ext4_issue_discard()
        ext4: remove SLAB_MEM_SPREAD flag usage
        ext4: verify s_clusters_per_group even without bigalloc
        ext4: fix corruption during on-line resize
        ext4: don't report EOPNOTSUPP errors from discard
        ext4: drop duplicate ea_inode handling in ext4_xattr_block_set()
        ext4: fold quota accounting into ext4_xattr_inode_lookup_create()
        ext4: correct best extent lstart adjustment logic
        ext4: forbid commit inconsistent quota data when errors=remount-ro
        ext4: add a hint for block bitmap corrupt state in mb_groups
        ext4: fix the comment of ext4_map_blocks()/ext4_ext_map_blocks()
        ext4: improve error msg for ext4_mb_seq_groups_show
        ext4: remove unused buddy_loaded in ext4_mb_seq_groups_show
        ext4: Add unit test for ext4_mb_mark_diskspace_used
        ext4: Add unit test for mb_free_blocks
        ...
      68bf6bfd
    • Linus Torvalds's avatar
      Merge tag 'bcachefs-2024-03-13' of https://evilpiepirate.org/git/bcachefs · 32a50540
      Linus Torvalds authored
      Pull bcachefs updates from Kent Overstreet:
      
       - Subvolume children btree; this is needed for providing a userspace
         interface for walking subvolumes, which will come later
      
       - Lots of improvements to directory structure checking
      
       - Improved journal pipelining, significantly improving performance on
         high iodepth write workloads
      
       - Discard path improvements: the discard path is more efficient, and no
         longer flushes the journal unnecessarily
      
       - Buffered write path can now avoid taking the inode lock
      
       - new mm helper: memalloc_flags_{save|restore}
      
       - mempool now does kvmalloc mempools
      
      * tag 'bcachefs-2024-03-13' of https://evilpiepirate.org/git/bcachefs: (128 commits)
        bcachefs: time_stats: shrink time_stat_buffer for better alignment
        bcachefs: time_stats: split stats-with-quantiles into a separate structure
        bcachefs: mean_and_variance: put struct mean_and_variance_weighted on a diet
        bcachefs: time_stats: add larger units
        bcachefs: pull out time_stats.[ch]
        bcachefs: reconstruct_alloc cleanup
        bcachefs: fix bch_folio_sector padding
        bcachefs: Fix btree key cache coherency during replay
        bcachefs: Always flush write buffer in delete_dead_inodes()
        bcachefs: Fix order of gc_done passes
        bcachefs: fix deletion of indirect extents in btree_gc
        bcachefs: Prefer struct_size over open coded arithmetic
        bcachefs: Kill unused flags argument to btree_split()
        bcachefs: Check for writing superblocks with nonsense member seq fields
        bcachefs: fix bch2_journal_buf_to_text()
        lib/generic-radix-tree.c: Make nodes more reasonably sized
        bcachefs: copy_(to|from)_user_errcode()
        bcachefs: Split out bkey_types.h
        bcachefs: fix lost journal buf wakeup due to improved pipelining
        bcachefs: intercept mountoption value for bool type
        ...
      32a50540
    • Linus Torvalds's avatar
      Merge tag 'mm-nonmm-stable-2024-03-14-09-36' of... · e5eb28f6
      Linus Torvalds authored
      Merge tag 'mm-nonmm-stable-2024-03-14-09-36' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
      
      Pull non-MM updates from Andrew Morton:
      
       - Kuan-Wei Chiu has developed the well-named series "lib min_heap: Min
         heap optimizations".
      
       - Kuan-Wei Chiu has also sped up the library sorting code in the series
         "lib/sort: Optimize the number of swaps and comparisons".
      
       - Alexey Gladkov has added the ability for code running within an IPC
         namespace to alter its IPC and MQ limits. The series is "Allow to
         change ipc/mq sysctls inside ipc namespace".
      
       - Geert Uytterhoeven has contributed some dhrystone maintenance work in
         the series "lib: dhry: miscellaneous cleanups".
      
       - Ryusuke Konishi continues nilfs2 maintenance work in the series
      
      	"nilfs2: eliminate kmap and kmap_atomic calls"
      	"nilfs2: fix kernel bug at submit_bh_wbc()"
      
       - Nathan Chancellor has updated our build tools requirements in the
         series "Bump the minimum supported version of LLVM to 13.0.1".
      
       - Muhammad Usama Anjum continues with the selftests maintenance work in
         the series "selftests/mm: Improve run_vmtests.sh".
      
       - Oleg Nesterov has done some maintenance work against the signal code
         in the series "get_signal: minor cleanups and fix".
      
      Plus the usual shower of singleton patches in various parts of the tree.
      Please see the individual changelogs for details.
      
      * tag 'mm-nonmm-stable-2024-03-14-09-36' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (77 commits)
        nilfs2: prevent kernel bug at submit_bh_wbc()
        nilfs2: fix failure to detect DAT corruption in btree and direct mappings
        ocfs2: enable ocfs2_listxattr for special files
        ocfs2: remove SLAB_MEM_SPREAD flag usage
        assoc_array: fix the return value in assoc_array_insert_mid_shortcut()
        buildid: use kmap_local_page()
        watchdog/core: remove sysctl handlers from public header
        nilfs2: use div64_ul() instead of do_div()
        mul_u64_u64_div_u64: increase precision by conditionally swapping a and b
        kexec: copy only happens before uchunk goes to zero
        get_signal: don't initialize ksig->info if SIGNAL_GROUP_EXIT/group_exec_task
        get_signal: hide_si_addr_tag_bits: fix the usage of uninitialized ksig
        get_signal: don't abuse ksig->info.si_signo and ksig->sig
        const_structs.checkpatch: add device_type
        Normalise "name (ad@dr)" MODULE_AUTHORs to "name <ad@dr>"
        dyndbg: replace kstrdup() + strchr() with kstrdup_and_replace()
        list: leverage list_is_head() for list_entry_is_head()
        nilfs2: MAINTAINERS: drop unreachable project mirror site
        smp: make __smp_processor_id() 0-argument macro
        fat: fix uninitialized field in nostale filehandles
        ...
      e5eb28f6
    • Linus Torvalds's avatar
      Merge tag 'mm-stable-2024-03-13-20-04' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm · 902861e3
      Linus Torvalds authored
      Pull MM updates from Andrew Morton:
      
       - Sumanth Korikkar has taught s390 to allocate hotplug-time page frames
         from hotplugged memory rather than only from main memory. Series
         "implement "memmap on memory" feature on s390".
      
       - More folio conversions from Matthew Wilcox in the series
      
      	"Convert memcontrol charge moving to use folios"
      	"mm: convert mm counter to take a folio"
      
       - Chengming Zhou has optimized zswap's rbtree locking, providing
         significant reductions in system time and modest but measurable
         reductions in overall runtimes. The series is "mm/zswap: optimize the
         scalability of zswap rb-tree".
      
       - Chengming Zhou has also provided the series "mm/zswap: optimize zswap
         lru list" which provides measurable runtime benefits in some
         swap-intensive situations.
      
       - And Chengming Zhou further optimizes zswap in the series "mm/zswap:
         optimize for dynamic zswap_pools". Measured improvements are modest.
      
       - zswap cleanups and simplifications from Yosry Ahmed in the series
         "mm: zswap: simplify zswap_swapoff()".
      
       - In the series "Add DAX ABI for memmap_on_memory", Vishal Verma has
         contributed several DAX cleanups as well as adding a sysfs tunable to
         control the memmap_on_memory setting when the dax device is
         hotplugged as system memory.
      
       - Johannes Weiner has added the large series "mm: zswap: cleanups",
         which does that.
      
       - More DAMON work from SeongJae Park in the series
      
      	"mm/damon: make DAMON debugfs interface deprecation unignorable"
      	"selftests/damon: add more tests for core functionalities and corner cases"
      	"Docs/mm/damon: misc readability improvements"
      	"mm/damon: let DAMOS feeds and tame/auto-tune itself"
      
       - In the series "mm/mempolicy: weighted interleave mempolicy and sysfs
         extension" Rakie Kim has developed a new mempolicy interleaving
         policy wherein we allocate memory across nodes in a weighted fashion
         rather than uniformly. This is beneficial in heterogeneous memory
         environments appearing with CXL.
      
       - Christophe Leroy has contributed some cleanup and consolidation work
         against the ARM pagetable dumping code in the series "mm: ptdump:
         Refactor CONFIG_DEBUG_WX and check_wx_pages debugfs attribute".
      
       - Luis Chamberlain has added some additional xarray selftesting in the
         series "test_xarray: advanced API multi-index tests".
      
       - Muhammad Usama Anjum has reworked the selftest code to make its
         human-readable output conform to the TAP ("Test Anything Protocol")
         format. Amongst other things, this opens up the use of third-party
         tools to parse and process out selftesting results.
      
       - Ryan Roberts has added fork()-time PTE batching of THP ptes in the
         series "mm/memory: optimize fork() with PTE-mapped THP". Mainly
         targeted at arm64, this significantly speeds up fork() when the
         process has a large number of pte-mapped folios.
      
       - David Hildenbrand also gets in on the THP pte batching game in his
         series "mm/memory: optimize unmap/zap with PTE-mapped THP". It
         implements batching during munmap() and other pte teardown
         situations. The microbenchmark improvements are nice.
      
       - And in the series "Transparent Contiguous PTEs for User Mappings"
         Ryan Roberts further utilizes arm's pte's contiguous bit ("contpte
         mappings"). Kernel build times on arm64 improved nicely. Ryan's
         series "Address some contpte nits" provides some followup work.
      
       - In the series "mm/hugetlb: Restore the reservation" Breno Leitao has
         fixed an obscure hugetlb race which was causing unnecessary page
         faults. He has also added a reproducer under the selftest code.
      
       - In the series "selftests/mm: Output cleanups for the compaction
         test", Mark Brown did what the title claims.
      
       - Kinsey Ho has added the series "mm/mglru: code cleanup and
         refactoring".
      
       - Even more zswap material from Nhat Pham. The series "fix and extend
         zswap kselftests" does as claimed.
      
       - In the series "Introduce cpu_dcache_is_aliasing() to fix DAX
         regression" Mathieu Desnoyers has cleaned up and fixed rather a mess
         in our handling of DAX on archiecctures which have virtually aliasing
         data caches. The arm architecture is the main beneficiary.
      
       - Lokesh Gidra's series "per-vma locks in userfaultfd" provides
         dramatic improvements in worst-case mmap_lock hold times during
         certain userfaultfd operations.
      
       - Some page_owner enhancements and maintenance work from Oscar Salvador
         in his series
      
      	"page_owner: print stacks and their outstanding allocations"
      	"page_owner: Fixup and cleanup"
      
       - Uladzislau Rezki has contributed some vmalloc scalability
         improvements in his series "Mitigate a vmap lock contention". It
         realizes a 12x improvement for a certain microbenchmark.
      
       - Some kexec/crash cleanup work from Baoquan He in the series "Split
         crash out from kexec and clean up related config items".
      
       - Some zsmalloc maintenance work from Chengming Zhou in the series
      
      	"mm/zsmalloc: fix and optimize objects/page migration"
      	"mm/zsmalloc: some cleanup for get/set_zspage_mapping()"
      
       - Zi Yan has taught the MM to perform compaction on folios larger than
         order=0. This a step along the path to implementaton of the merging
         of large anonymous folios. The series is named "Enable >0 order folio
         memory compaction".
      
       - Christoph Hellwig has done quite a lot of cleanup work in the
         pagecache writeback code in his series "convert write_cache_pages()
         to an iterator".
      
       - Some modest hugetlb cleanups and speedups in Vishal Moola's series
         "Handle hugetlb faults under the VMA lock".
      
       - Zi Yan has changed the page splitting code so we can split huge pages
         into sizes other than order-0 to better utilize large folios. The
         series is named "Split a folio to any lower order folios".
      
       - David Hildenbrand has contributed the series "mm: remove
         total_mapcount()", a cleanup.
      
       - Matthew Wilcox has sought to improve the performance of bulk memory
         freeing in his series "Rearrange batched folio freeing".
      
       - Gang Li's series "hugetlb: parallelize hugetlb page init on boot"
         provides large improvements in bootup times on large machines which
         are configured to use large numbers of hugetlb pages.
      
       - Matthew Wilcox's series "PageFlags cleanups" does that.
      
       - Qi Zheng's series "minor fixes and supplement for ptdesc" does that
         also. S390 is affected.
      
       - Cleanups to our pagemap utility functions from Peter Xu in his series
         "mm/treewide: Replace pXd_large() with pXd_leaf()".
      
       - Nico Pache has fixed a few things with our hugepage selftests in his
         series "selftests/mm: Improve Hugepage Test Handling in MM
         Selftests".
      
       - Also, of course, many singleton patches to many things. Please see
         the individual changelogs for details.
      
      * tag 'mm-stable-2024-03-13-20-04' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (435 commits)
        mm/zswap: remove the memcpy if acomp is not sleepable
        crypto: introduce: acomp_is_async to expose if comp drivers might sleep
        memtest: use {READ,WRITE}_ONCE in memory scanning
        mm: prohibit the last subpage from reusing the entire large folio
        mm: recover pud_leaf() definitions in nopmd case
        selftests/mm: skip the hugetlb-madvise tests on unmet hugepage requirements
        selftests/mm: skip uffd hugetlb tests with insufficient hugepages
        selftests/mm: dont fail testsuite due to a lack of hugepages
        mm/huge_memory: skip invalid debugfs new_order input for folio split
        mm/huge_memory: check new folio order when split a folio
        mm, vmscan: retry kswapd's priority loop with cache_trim_mode off on failure
        mm: add an explicit smp_wmb() to UFFDIO_CONTINUE
        mm: fix list corruption in put_pages_list
        mm: remove folio from deferred split list before uncharging it
        filemap: avoid unnecessary major faults in filemap_fault()
        mm,page_owner: drop unnecessary check
        mm,page_owner: check for null stack_record before bumping its refcount
        mm: swap: fix race between free_swap_and_cache() and swapoff()
        mm/treewide: align up pXd_leaf() retval across archs
        mm/treewide: drop pXd_large()
        ...
      902861e3
  2. 14 Mar, 2024 34 commits
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-for-v6.9-2024-03-13' of... · 1bbeaf83
      Linus Torvalds authored
      Merge tag 'perf-tools-for-v6.9-2024-03-13' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools
      
      Pull perf tools updates from Namhyung Kim:
       "perf stat:
      
         - Support new 'cluster' aggregation mode for shared resources
           depending on the hardware configuration:
      
              $ sudo perf stat -a --per-cluster -e cycles,instructions sleep 1
      
               Performance counter stats for 'system wide':
      
              S0-D0-CLS0    2         85,051,822      cycles
              S0-D0-CLS0    2         73,909,908      instructions      #    0.87  insn per cycle
              S0-D0-CLS2    2         93,365,918      cycles
              S0-D0-CLS2    2         83,006,158      instructions      #    0.89  insn per cycle
              S0-D0-CLS4    2        104,157,523      cycles
              S0-D0-CLS4    2         53,234,396      instructions      #    0.51  insn per cycle
              S0-D0-CLS6    2         65,891,079      cycles
              S0-D0-CLS6    2         41,478,273      instructions      #    0.63  insn per cycle
      
                     1.002407989 seconds time elapsed
      
         - Various fixes and cleanups for event metrics including NaN handling
      
        perf script:
      
         - Use libcapstone if available to disassemble the instructions. This
           enables 'perf script -F disasm' and 'perf script --insn-trace=disasm'
           (for Intel-PT):
      
              $ perf script -F event,ip,disasm
              cycles:P:  ffffffffa988d428             wrmsr
              cycles:P:  ffffffffa9839d25             movq %rax, %r14
              cycles:P:  ffffffffa9cdcaf0             endbr64
              cycles:P:  ffffffffa988d428             wrmsr
              cycles:P:  ffffffffa988d428             wrmsr
              cycles:P:  ffffffffaa401f86             iretq
              cycles:P:  ffffffffa99c4de5             movq 0x30(%rcx), %r8
              cycles:P:  ffffffffa988d428             wrmsr
              cycles:P:  ffffffffaa401f86             iretq
              cycles:P:  ffffffffa9907983             movl 0x68(%rbx), %eax
              cycles:P:  ffffffffa988d428             wrmsr
      
         - Expose sample ID / stream ID to python scripts
      
        perf test:
      
         - Add more perf test cases from Redhat internal test suites. This
           time it adds the base infra and a few perf probe tests. More to
           come. :)
      
         - Add 'perf test -p' for parallel execution and fix some issues found
           by the parallel test
      
         - Support symbol test to print symbols in given (active) module:
      
              $ perf test -F -v Symbols --dso /lib/modules/$(uname -r)/kernel/fs/ext4/ext4.ko
              --- start ---
              Testing /lib/modules/6.5.13-1rodete2-amd64/kernel/fs/ext4/ext4.ko
              Overlapping symbols:
               7a990-7a9a0 l __pfx_ext4_exit_fs
               7a990-7a9a0 g __pfx_cleanup_module
              Overlapping symbols:
               7a9a0-7aa1c l ext4_exit_fs
               7a9a0-7aa1c g cleanup_module
              ...
      
        JSON metric updates:
      
         - A new round of Intel metric updates
      
         - Support Power11 PVR (compatible to Power10)
      
         - Fix cache latency events on Zen 4 to set SliceId properly
      
        Internal:
      
         - Fix reference counting for 'map' data structure, tireless work from
           Ian!
      
         - More memory optimization for struct thread and annotate histogram.
           Now, 'perf report' (TUI) and 'perf annotate' should be much
           lighter-weight in terms of memory footprint
      
         - Support cross-arch perf register access. Clean up the build
           configuration so that it can detect arch-register support at
           runtime. This can allow to parse register data in sample which was
           recorded in a different arch
      
        Others:
      
         - Sync task state in 'perf sched' to kernel using trace event fields.
           The task states have been changed so tools cannot assume a fixed
           encoding
      
         - Clean up 'perf mem' to generalize the arch-specific events
      
         - Add support for local and global variables to data type profiling.
           This would increase the success rate of type resolution with DWARF
      
         - Add short option -H for --hierarchy in 'perf report' and 'perf top'"
      
      * tag 'perf-tools-for-v6.9-2024-03-13' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools: (154 commits)
        perf annotate: Add comments in the data structures
        perf annotate: Remove sym_hist.addr[] array
        perf annotate: Calculate instruction overhead using hashmap
        perf annotate: Add a hashmap for symbol histogram
        perf threads: Reduce table size from 256 to 8
        perf threads: Switch from rbtree to hashmap
        perf threads: Move threads to its own files
        perf machine: Move machine's threads into its own abstraction
        perf machine: Move fprintf to for_each loop and a callback
        perf trace: Ignore thread hashing in summary
        perf report: Sort child tasks by tid
        perf vendor events amd: Fix Zen 4 cache latency events
        perf version: Display availability of OpenCSD support
        perf vendor events intel: Add umasks/occ_sel to PCU events.
        perf map: Fix map reference count issues
        libperf evlist: Avoid out-of-bounds access
        perf lock contention: Account contending locks too
        perf metrics: Fix segv for metrics with no events
        perf metrics: Fix metric matching
        perf pmu: Fix a potential memory leak in perf_pmu__lookup()
        ...
      1bbeaf83
    • Linus Torvalds's avatar
      Merge tag 'trace-ring-buffer-v6.8-rc7-2' of... · 63bd30f2
      Linus Torvalds authored
      Merge tag 'trace-ring-buffer-v6.8-rc7-2' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace
      
      Pull tracing updates from Steven Rostedt:
      
       - Do not update shortest_full in rb_watermark_hit() if the watermark is
         hit. The shortest_full field was being updated regardless if the task
         was going to wait or not. If the watermark is hit, then the task is
         not going to wait, so do not update the shortest_full field (used by
         the waker).
      
       - Update shortest_full field before setting the full_waiters_pending
         flag
      
         In the poll logic, the full_waiters_pending flag was being set before
         the shortest_full field was set. If the full_waiters_pending flag is
         set, writers will check the shortest_full field which has the least
         percentage of data that the ring buffer needs to be filled before
         waking up. The writer will check shortest_full if
         full_waiters_pending is set, and if the ring buffer percentage filled
         is greater than shortest full, then it will call the irq_work to wake
         up the waiters.
      
         The problem was that the poll logic set the full_waiters_pending flag
         before updating shortest_full, which when zero will always trigger
         the writer to call the irq_work to wake up the waiters. The irq_work
         will reset the shortest_full field back to zero as the woken waiters
         is suppose to reset it.
      
       - There's some optimized logic in the rb_watermark_hit() that is used
         in ring_buffer_wait(). Use that helper function in the poll logic as
         well.
      
       - Restructure ring_buffer_wait() to use wait_event_interruptible()
      
         The logic to wake up pending readers when the file descriptor is
         closed is racy. Restructure ring_buffer_wait() to allow callers to
         pass in conditions besides the ring buffer having enough data in it
         by using wait_event_interruptible().
      
       - Update the tracing_wait_on_pipe() to call ring_buffer_wait() with its
         own conditions to exit the wait loop.
      
      * tag 'trace-ring-buffer-v6.8-rc7-2' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        tracing/ring-buffer: Fix wait_on_pipe() race
        ring-buffer: Use wait_event_interruptible() in ring_buffer_wait()
        ring-buffer: Reuse rb_watermark_hit() for the poll logic
        ring-buffer: Fix full_waiters_pending in poll
        ring-buffer: Do not set shortest_full when full target is hit
      63bd30f2
    • Linus Torvalds's avatar
      Merge tag 'probes-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · 01732755
      Linus Torvalds authored
      Pull probes updates from Masami Hiramatsu:
       "x86 kprobes:
      
         - Use boolean for some function return instead of 0 and 1
      
         - Prohibit probing on INT/UD. This prevents user to put kprobe on
           INTn/INT1/INT3/INTO and UD0/UD1/UD2 because these are used for a
           special purpose in the kernel
      
         - Boost Grp instructions. Because a few percent of kernel
           instructions are Grp 2/3/4/5 and those are safe to be executed
           without ip register fixup, allow those to be boosted (direct
           execution on the trampoline buffer with a JMP)
      
        tracing:
      
         - Add function argument access from return events (kretprobe and
           fprobe). This allows user to compare how a data structure field is
           changed after executing a function. With BTF, return event also
           accepts function argument access by name.
      
         - Fix a wrong comment (using "Kretprobe" in fprobe)
      
         - Cleanup a big probe argument parser function into three parts, type
           parser, post-processing function, and main parser
      
         - Cleanup to set nr_args field when initializing trace_probe instead
           of counting up it while parsing
      
         - Cleanup a redundant #else block from tracefs/README source code
      
         - Update selftests to check entry argument access from return probes
      
         - Documentation update about entry argument access from return
           probes"
      
      * tag 'probes-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        Documentation: tracing: Add entry argument access at function exit
        selftests/ftrace: Add test cases for entry args at function exit
        tracing/probes: Support $argN in return probe (kprobe and fprobe)
        tracing: Remove redundant #else block for BTF args from README
        tracing/probes: cleanup: Set trace_probe::nr_args at trace_probe_init
        tracing/probes: Cleanup probe argument parser
        tracing/fprobe-event: cleanup: Fix a wrong comment in fprobe event
        x86/kprobes: Boost more instructions from grp2/3/4/5
        x86/kprobes: Prohibit kprobing on INT and UD
        x86/kprobes: Refactor can_{probe,boost} return type to bool
      01732755
    • Linus Torvalds's avatar
      Merge tag 'lsm-pr-20240314' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/lsm · c0a614e8
      Linus Torvalds authored
      Pull lsm fixes from Paul Moore:
       "Two fixes to address issues with the LSM syscalls that we shipped in
        Linux v6.8. The first patch might be a bit controversial, but the
        second is a rather straightforward fix; more on both below.
      
        The first fix from Casey addresses a problem that should have been
        caught during the ~16 month (?) review cycle, but sadly was not. The
        good news is that Dmitry caught it very quickly once Linux v6.8 was
        released. The core issue is the use of size_t parameters to pass
        buffer sizes back and forth in the syscall; while we could have solved
        this with a compat syscall definition, given the newness of the
        syscalls I wanted to attempt to just redefine the size_t parameters as
        u32 types and avoid the work associated with a set of compat syscalls.
      
        However, this is technically a change in the syscall's signature/API
        so I can understand if you're opposed to this, even if the syscalls
        are less than a week old.
      
         [ Fingers crossed nobody even notices - Linus ]
      
        The second fix is a rather trivial fix to allow userspace to call into
        the lsm_get_self_attr() syscall with a NULL buffer to quickly
        determine a minimum required size for the buffer. We do have
        kselftests for this very case, I'm not sure why I didn't notice the
        failure; I'm going to guess stupidity, tired eyes, I dunno. My
        apologies we didn't catch this earlier"
      
      * tag 'lsm-pr-20240314' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/lsm:
        lsm: handle the NULL buffer case in lsm_fill_user_ctx()
        lsm: use 32-bit compatible data types in LSM syscalls
      c0a614e8
    • Linus Torvalds's avatar
      Merge tag 'landlock-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mic/linux · 35e886e8
      Linus Torvalds authored
      Pull landlock updates from Mickaël Salaün:
       "Some miscellaneous improvements, including new KUnit tests, extended
        documentation and boot help, and some cosmetic cleanups.
      
        Additional test changes already went through the net tree"
      
      * tag 'landlock-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mic/linux:
        samples/landlock: Don't error out if a file path cannot be opened
        landlock: Use f_cred in security_file_open() hook
        landlock: Rename "ptrace" files to "task"
        landlock: Simplify current_check_access_socket()
        landlock: Warn once if a Landlock action is requested while disabled
        landlock: Extend documentation for kernel support
        landlock: Add support for KUnit tests
        selftests/landlock: Clean up error logs related to capabilities
      35e886e8
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of https://github.com/openrisc/linux · 29da654b
      Linus Torvalds authored
      Pull OpenRISC updates from Stafford Horne:
       "Just a few cleanups and updates that were sent in:
      
         - Replace asm/fixmap.h with asm-generic version
      
         - Fix to move memblock setup up before it's used during init"
      
      * tag 'for-linus' of https://github.com/openrisc/linux:
        openrisc: Use asm-generic's version of fix_to_virt() & virt_to_fix()
        openrisc: Call setup_memory() earlier in the init sequence
      29da654b
    • Linus Torvalds's avatar
      Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 6d75c6f4
      Linus Torvalds authored
      Pull arm64 updates from Catalin Marinas:
       "The major features are support for LPA2 (52-bit VA/PA with 4K and 16K
        pages), the dpISA extension and Rust enabled on arm64. The changes are
        mostly contained within the usual arch/arm64/, drivers/perf, the arm64
        Documentation and kselftests. The exception is the Rust support which
        touches some generic build files.
      
        Summary:
      
         - Reorganise the arm64 kernel VA space and add support for LPA2 (at
           stage 1, KVM stage 2 was merged earlier) - 52-bit VA/PA address
           range with 4KB and 16KB pages
      
         - Enable Rust on arm64
      
         - Support for the 2023 dpISA extensions (data processing ISA), host
           only
      
         - arm64 perf updates:
      
            - StarFive's StarLink (integrates one or more CPU cores with a
              shared L3 memory system) PMU support
      
            - Enable HiSilicon Erratum 162700402 quirk for HIP09
      
            - Several updates for the HiSilicon PCIe PMU driver
      
            - Arm CoreSight PMU support
      
            - Convert all drivers under drivers/perf/ to use .remove_new()
      
         - Miscellaneous:
      
            - Don't enable workarounds for "rare" errata by default
      
            - Clean up the DAIF flags handling for EL0 returns (in preparation
              for NMI support)
      
            - Kselftest update for ptrace()
      
            - Update some of the sysreg field definitions
      
            - Slight improvement in the code generation for inline asm I/O
              accessors to permit offset addressing
      
            - kretprobes: acquire regs via a BRK exception (previously done
              via a trampoline handler)
      
            - SVE/SME cleanups, comment updates
      
            - Allow CALL_OPS+CC_OPTIMIZE_FOR_SIZE with clang (previously
              disabled due to gcc silently ignoring -falign-functions=N)"
      
      * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (134 commits)
        Revert "mm: add arch hook to validate mmap() prot flags"
        Revert "arm64: mm: add support for WXN memory translation attribute"
        Revert "ARM64: Dynamically allocate cpumasks and increase supported CPUs to 512"
        ARM64: Dynamically allocate cpumasks and increase supported CPUs to 512
        kselftest/arm64: Add 2023 DPISA hwcap test coverage
        kselftest/arm64: Add basic FPMR test
        kselftest/arm64: Handle FPMR context in generic signal frame parser
        arm64/hwcap: Define hwcaps for 2023 DPISA features
        arm64/ptrace: Expose FPMR via ptrace
        arm64/signal: Add FPMR signal handling
        arm64/fpsimd: Support FEAT_FPMR
        arm64/fpsimd: Enable host kernel access to FPMR
        arm64/cpufeature: Hook new identification registers up to cpufeature
        docs: perf: Fix build warning of hisi-pcie-pmu.rst
        perf: starfive: Only allow COMPILE_TEST for 64-bit architectures
        MAINTAINERS: Add entry for StarFive StarLink PMU
        docs: perf: Add description for StarFive's StarLink PMU
        dt-bindings: perf: starfive: Add JH8100 StarLink PMU
        perf: starfive: Add StarLink PMU support
        docs: perf: Update usage for target filter of hisi-pcie-pmu
        ...
      6d75c6f4
    • Linus Torvalds's avatar
      Merge tag 'sound-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · fe46a7dd
      Linus Torvalds authored
      Pull sound updates from Takashi Iwai:
       "This was a relatively calm development cycle. Most of changes are
        rather small device-specific fixes and enhancements. The only
        significant changes in ALSA core are code refactoring with the recent
        cleanup infrastructure, which should bring no functionality changes.
        Some highlights below:
      
        Core:
         - Lots of cleanups in ALSA core code with automatic kfree cleanup and
           locking guard macros
         - New ALSA core kunit test
      
        ASoC:
         - SoundWire support for AMD ACP 6.3 systems
         - Support for reporting version information for AVS firmware
         - Support DSPless mode for Intel Soundwire systems
         - Support for configuring CS35L56 amplifiers using EFI calibration
           data
         - Log which component is being operated on as part of power
           management trace events.
         - Support for Microchip SAM9x7, NXP i.MX95 and Qualcomm WCD939x
      
        HD- and USB-audio:
         - More Cirrus HD-audio codec support
         - TAS2781 HD-audio codec fixes
         - Scarlett2 mixer fixes
      
        Others:
         - Enhancement of virtio driver for audio control supports
         - Cleanups of legacy PM code with new macros
         - Firewire sound updates"
      
      * tag 'sound-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (307 commits)
        ALSA: usb-audio: Stop parsing channels bits when all channels are found.
        ALSA: hda/tas2781: remove unnecessary runtime_pm calls
        ALSA: hda/realtek - ALC236 fix volume mute & mic mute LED on some HP models
        ALSA: aaci: Delete unused variable in aaci_do_suspend
        ALSA: scarlett2: Fix Scarlett 4th Gen input gain range again
        ALSA: scarlett2: Fix Scarlett 4th Gen input gain range
        ALSA: scarlett2: Fix Scarlett 4th Gen autogain status values
        ALSA: scarlett2: Fix Scarlett 4th Gen 4i4 low-voltage detection
        ALSA: hda/tas2781: restore power state after system_resume
        ALSA: hda/tas2781: do not call pm_runtime_force_* in system_resume/suspend
        ALSA: hda/tas2781: do not reset cur_* values in runtime_suspend
        ALSA: hda/tas2781: add lock to system_suspend
        ALSA: hda/tas2781: use dev_dbg in system_resume
        ALSA: hda/realtek: fix ALC285 issues on HP Envy x360 laptops
        platform/x86: serial-multi-instantiate: Add support for CS35L54 and CS35L57
        ALSA: hda: cs35l56: Add support for CS35L54 and CS35L57
        ASoC: cs35l56: Add support for CS35L54 and CS35L57
        ASoC: Intel: catpt: Carefully use PCI bitwise constants
        ALSA: hda: hda_component: Include sound/hda_codec.h
        ALSA: hda: hda_component: Add missing #include guards
        ...
      fe46a7dd
    • Linus Torvalds's avatar
      Merge tag 'pci-v6.9-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci · 705c1da8
      Linus Torvalds authored
      Pull PCI updates from Bjorn Helgaas:
       "Enumeration:
      
         - Consolidate interrupt related code in irq.c (Ilpo Järvinen)
      
         - Reduce kernel size by replacing sysfs resource macros with
           functions (Ilpo Järvinen)
      
         - Reduce kernel size by compiling sysfs support only when
           CONFIG_SYSFS=y (Lukas Wunner)
      
         - Avoid using Extended Tags on 3ware-9650SE Root Port to work around
           an apparent hardware defect (Jörg Wedekind)
      
        Resource management:
      
         - Fix an MMIO mapping leak in pci_iounmap() (Philipp Stanner)
      
         - Move pci_iomap.c and other PCI-specific devres code to drivers/pci
           (Philipp Stanner)
      
         - Consolidate PCI devres code in devres.c (Philipp Stanner)
      
        Power management:
      
         - Avoid D3cold on Asus B1400 PCI-NVMe bridge, where firmware doesn't
           know how to return correctly to D0, and remove previous quirk that
           wasn't as specific (Daniel Drake)
      
         - Allow runtime PM when the driver enables it but doesn't need any
           runtime PM callbacks (Raag Jadav)
      
         - Drain runtime-idle callbacks before driver removal to avoid races
           between .remove() and .runtime_idle(), which caused intermittent
           page faults when the rtsx .runtime_idle() accessed registers that
           its .remove() had already unmapped (Rafael J. Wysocki)
      
        Virtualization:
      
         - Avoid Secondary Bus Reset on LSI FW643 so it can be assigned to VMs
           with VFIO, e.g., for professional audio software on many Apple
           machines, at the cost of leaking state between VMs (Edmund Raile)
      
        Error handling:
      
         - Print all logged TLP Prefixes, not just the first, after AER or DPC
           errors (Ilpo Järvinen)
      
         - Quirk the DPC PIO log size for Intel Raptor Lake Root Ports, which
           still don't advertise a legal size (Paul Menzel)
      
         - Ignore expected DPC Surprise Down errors on hot removal (Smita
           Koralahalli)
      
         - Block runtime suspend while handling AER errors to avoid races that
           prevent the device form being resumed from D3hot (Stanislaw
           Gruszka)
      
        Peer-to-peer DMA:
      
         - Use atomic XA allocation in RCU read section (Christophe JAILLET)
      
        ASPM:
      
         - Collect bits of ASPM-related code that we need even without
           CONFIG_PCIEASPM into aspm.c (David E. Box)
      
         - Save/restore L1 PM Substates config for suspend/resume (David E.
           Box)
      
         - Update save_save when ASPM config is changed, so a .slot_reset()
           during error recovery restores the changed config, not the
           .probe()-time config (Vidya Sagar)
      
        Endpoint framework:
      
         - Refactor and improve pci_epf_alloc_space() API (Niklas Cassel)
      
         - Clean up endpoint BAR descriptions (Niklas Cassel)
      
         - Fix ntb_register_device() name leak in error path (Yang Yingliang)
      
         - Return actual error code for pci_vntb_probe() failure (Yang
           Yingliang)
      
        Broadcom STB PCIe controller driver:
      
         - Fix MDIO write polling, which previously never waited for
           completion (Jonathan Bell)
      
        Cadence PCIe endpoint driver:
      
         - Clear the ARI "Next Function Number" of last function (Jasko-EXT
           Wojciech)
      
        Freescale i.MX6 PCIe controller driver:
      
         - Simplify by replacing switch statements with function pointers for
           different hardware variants (Frank Li)
      
         - Simplify by using clk_bulk*() API (Frank Li)
      
         - Remove redundant DT clock and reg/reg-name details (Frank Li)
      
         - Add i.MX95 DT and driver support for both Root Complex and Endpoint
           mode (Frank Li)
      
        Microsoft Hyper-V host bridge driver:
      
         - Reduce memory usage by limiting ring buffer size to 16KB instead of
           4 pages (Michael Kelley)
      
        Qualcomm PCIe controller driver:
      
         - Add X1E80100 DT and driver support (Abel Vesa)
      
         - Add DT 'required-opps' for SoCs that require a minimum performance
           level (Johan Hovold)
      
         - Make DT 'msi-map-mask' optional, depending on how MSI interrupts
           are mapped (Johan Hovold)
      
         - Disable ASPM L0s for sc8280xp, sa8540p and sa8295p because the PHY
           configuration isn't tuned correctly for L0s (Johan Hovold)
      
         - Split dt-binding qcom,pcie.yaml into qcom,pcie-common.yaml and
           separate files for SA8775p, SC7280, SC8180X, SC8280XP, SM8150,
           SM8250, SM8350, SM8450, SM8550 for easier reviewing (Krzysztof
           Kozlowski)
      
         - Enable BDF to SID translation by disabling bypass mode (Manivannan
           Sadhasivam)
      
         - Add endpoint MHI support for Snapdragon SA8775P SoC (Mrinmay
           Sarkar)
      
        Synopsys DesignWare PCIe controller driver:
      
         - Allocate 64-bit MSI address if no 32-bit address is available (Ajay
           Agarwal)
      
         - Fix endpoint Resizable BAR to actually advertise the required 1MB
           size (Niklas Cassel)
      
        MicroSemi Switchtec management driver:
      
         - Release resources if the .probe() fails (Christophe JAILLET)
      
        Miscellaneous:
      
         - Make pcie_port_bus_type const (Ricardo B. Marliere)"
      
      * tag 'pci-v6.9-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci: (77 commits)
        PCI/ASPM: Update save_state when configuration changes
        PCI/ASPM: Disable L1 before configuring L1 Substates
        PCI/ASPM: Call pci_save_ltr_state() from pci_save_pcie_state()
        PCI/ASPM: Save L1 PM Substates Capability for suspend/resume
        PCI: hv: Fix ring buffer size calculation
        PCI: dwc: endpoint: Fix advertised resizable BAR size
        PCI: cadence: Clear the ARI Capability Next Function Number of the last function
        PCI: dwc: Strengthen the MSI address allocation logic
        PCI: brcmstb: Fix broken brcm_pcie_mdio_write() polling
        PCI: qcom: Add X1E80100 PCIe support
        dt-bindings: PCI: qcom: Document the X1E80100 PCIe Controller
        PCI: qcom: Enable BDF to SID translation properly
        PCI/AER: Generalize TLP Header Log reading
        PCI/AER: Use explicit register size for PCI_ERR_CAP
        PCI: qcom: Disable ASPM L0s for sc8280xp, sa8540p and sa8295p
        dt-bindings: PCI: qcom: Do not require 'msi-map-mask'
        dt-bindings: PCI: qcom: Allow 'required-opps'
        PCI/AER: Block runtime suspend when handling errors
        PCI/ASPM: Move pci_save_ltr_state() to aspm.c
        PCI/ASPM: Always build aspm.c
        ...
      705c1da8
    • Linus Torvalds's avatar
      Merge tag 'platform-drivers-x86-v6.9-1' of... · 66fd6d0b
      Linus Torvalds authored
      Merge tag 'platform-drivers-x86-v6.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86
      
      Pull x86 platform driver updates from Ilpo Järvinen:
      
       - New acer-wmi HW support
      
       - Support for new revision of amd/pmf heartbeat notify
      
       - Correctly handle asus-wmi HW without LEDs
      
       - fujitsu-laptop battery charge control support
      
       - Support for new hp-wmi thermal profiles
      
       - Support ideapad-laptop refresh rate key
      
       - Put intel/pmc AI accelerator (GNA) into D3 if it has no driver to
         allow entry into low-power modes, and temporarily removed Lunar Lake
         SSRAM support due to breaking FW changes causing probe fail (further
         breaking FW changes are still pending)
      
       - Report pmc/punit_atom devices that prevent reacing low power levels
      
       - Surface Fan speed function support
      
       - Support for more sperial keys and complete the list of models with
         non-standard fan registers in thinkpad_acpi
      
       - New DMI touchscreen HW support
      
       - Continued modernization efforts of wmi
      
       - Removal of obsoleted ledtrig-audio call and the related dependency
      
       - Debug & metrics interface improvements
      
       - Miscellaneous cleanups / fixes / improvements
      
      * tag 'platform-drivers-x86-v6.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86: (87 commits)
        platform/x86/intel/pmc: Improve PKGC residency counters debug
        platform/x86: asus-wmi: Consider device is absent when the read is ~0
        Documentation/x86/amd/hsmp: Updating urls
        platform/mellanox: mlxreg-hotplug: Remove redundant NULL-check
        platform/x86/amd/pmf: Update sps power thermals according to the platform-profiles
        platform/x86/amd/pmf: Add support to get sps default APTS index values
        platform/x86/amd/pmf: Add support to get APTS index numbers for static slider
        platform/x86/amd/pmf: Add support to notify sbios heart beat event
        platform/x86/amd/pmf: Add support to get sbios requests in PMF driver
        platform/x86/amd/pmf: Disable debugfs support for querying power thermals
        platform/x86/amd/pmf: Differentiate PMF ACPI versions
        x86/platform/atom: Check state of Punit managed devices on s2idle
        platform/x86: pmc_atom: Check state of PMC clocks on s2idle
        platform/x86: pmc_atom: Check state of PMC managed devices on s2idle
        platform/x86: pmc_atom: Annotate d3_sts register bit defines
        clk: x86: Move clk-pmc-atom register defines to include/linux/platform_data/x86/pmc_atom.h
        platform/x86: make fw_attr_class constant
        platform/x86/intel/tpmi: Change vsec offset to u64
        platform/x86: intel_scu_pcidrv: Remove unused intel-mid.h
        platform/x86: intel_scu_wdt: Remove unused intel-mid.h
        ...
      66fd6d0b
    • Linus Torvalds's avatar
      Merge tag 'leds-next-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/leds · f5c31bcf
      Linus Torvalds authored
      Pull LED updates from Lee Jones:
       "Core Framework:
         - Introduce ExpressWire library
      
        New Drivers:
         - Add support for ON Semiconductor NCP5623 RGB LED Driver
      
        New Device Support:
         - Add support for PM660L to Qualcomm's LPG driver
      
        New Functionality:
         - Dynamically load modules required for the default-trigger
         - Add some support for suspend and resume
         - Allow LEDs to remain lit during suspend
      
        Fix-ups:
         - Device Tree binding adaptions/conversions/creation
         - Fix include lists; alphabetise, remove unused, explicitly add used
         - Add new led_match_default_trigger to avoid duplication
         - Add module alias' to aid auto-loading
         - Default to hw_control if no others are specified
         - De-bloat the supported link speed attribute lists
         - Remove superfluous code and simplify overall
         - Constify some variables
      
        Bug Fixes:
         - Prevent kernel panic when renaming the net interface
         - Fix Kconfig related build errors
         - Ensure mutexes are unlocked prior to destroying them
         - Provide clean-up between state changes to avoid invalid state
         - Fix some broken kernel-doc headers"
      
      * tag 'leds-next-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/leds: (41 commits)
        leds: ncp5623: Add MS suffix to time defines
        leds: Add NCP5623 multi-led driver
        dt-bindings: leds: Add NCP5623 multi-LED Controller
        leds: mlxreg: Drop an excess struct mlxreg_led_data member
        leds: leds-mlxcpld: Fix struct mlxcpld_led_priv member name
        leds: lm3601x: Fix struct lm3601_led kernel-doc warnings
        leds: Fix ifdef check for gpio_led_register_device()
        dt-bindings: leds: qcom-lpg: Narrow nvmem for other variants
        dt-bindings: leds: qcom-lpg: Drop redundant qcom,pm8550-pwm in if:then:
        dt-bindings: leds: Add LED_FUNCTION_WAN_ONLINE for Internet access
        leds: sgm3140: Add missing timer cleanup and flash gpio control
        leds: expresswire: Don't depend on NEW_LEDS
        Revert "leds: Only descend into leds directory when CONFIG_NEW_LEDS is set"
        leds: aw2013: Unlock mutex before destroying it
        leds: qcom-lpg: Add QCOM_PBS dependency
        leds: rgb: leds-group-multicolor: Allow LEDs to stay on in suspend
        leds: trigger: netdev: Fix kernel panic on interface rename trig notify
        leds: qcom-lpg: Add PM660L configuration and compatible
        leds: spi-byte: Use devm_led_classdev_register_ext()
        leds: pca963x: Add support for suspend and resume
        ...
      f5c31bcf
    • Linus Torvalds's avatar
      Merge tag 'backlight-next-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight · f3d8f29d
      Linus Torvalds authored
      Pull backlight updates from Lee Jones:
       "New Drivers:
         - Add support for Kinetic KTD2801 Backlight
      
        Fix-ups:
         - Fix include lists; alphabetise, remove unused, explicitly add used
         - Device Tree binding adaptions/conversions/creation
         - Use dev_err_probe() to clean-up error paths
         - Use/convert to new/better APIs/helpers/MACROs instead of hand-rolling implementations
      
        Bug Fixes:
         - Fix changes of NULL pointer dereference
         - Remedy a bunch of logic errors
         - Initialise (zero) Backlight properties data structures"
      
      * tag 'backlight-next-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight: (32 commits)
        backlight: pandora_bl: Drop unneeded ENOMEM error message
        backlight: lm3630a_bl: Simplify probe return on gpio request error
        backlight: lm3630a_bl: Handle deferred probe
        backlight: as3711_bl: Handle deferred probe
        backlight: bd6107: Handle deferred probe
        backlight: l4f00242t03: Simplify with dev_err_probe()
        backlight: gpio: Simplify with dev_err_probe()
        backlight: lp8788: Fully initialize backlight_properties during probe
        backlight: lm3639: Fully initialize backlight_properties during probe
        backlight: da9052: Fully initialize backlight_properties during probe
        backlight: lm3630a: Use backlight_get_brightness helper in update_status
        backlight: lm3630a: Don't set bl->props.brightness in get_brightness
        backlight: lm3630a: Initialize backlight_properties on init
        backlight: mp3309c: Fully initialize backlight_properties during probe
        backlight: mp3309c: Utilise temporary variable for struct device
        backlight: mp3309c: Use dev_err_probe() instead of dev_err()
        backlight: mp3309c: Make use of device properties
        dt-bindings: backlight: qcom-wled: Fix bouncing email addresses
        backlight: hx8357: Utilise temporary variable for struct device
        backlight: hx8357: Make use of dev_err_probe()
        ...
      f3d8f29d
    • Linus Torvalds's avatar
      Merge tag 'mfd-next-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd · 8403ce70
      Linus Torvalds authored
      Pull MFD updates from Lee Jones:
       "New Device Support:
         - Add support for Watchdog to ChromeOS Embedded Controller
         - Add support for GPIOs to ChromeOS Embedded Controller
         - Add supprt for Sound to MediaTek MT6357 CODEC
      
        New Functionality:
         - Add power-off functionality to Texas Instruments TWL series CODECs
      
        Fix-ups:
         - Device Tree binding adaptions/conversions/creation
         - Use/convert to new/better APIs/helpers/MACROs instead of
           hand-rolling implementations
         - Trivial; spelling, whitespace, clean-ups, etc
         - Remove superfluous code and simplify overall
         - Fix include lists; alphabetise, remove unused, explicitly add used
         - Use dev_err_probe() to clean-up error paths
         - Convert used cache type over to the Maple Tree in many instances
         - Constify a bunch of static structs
         - Refrain from over-riding resources provided via the firmware
      
        Bug Fixes:
         - Fix a clock related firmware bug on Dell XPS 9530 et al.
         - Repair incorrect IRQ designations
         - Increase buffer sizes to omit various snprintf compiler errors
         - Ensure errors are handled properly
         - Balance references and prevent resource leaks
         - Rectify Power Key interrupt processing
         - Fix Kconfig related build errors
         - Correct a bunch of register start-up default values"
      
      * tag 'mfd-next-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (65 commits)
        mfd: cs42l43: Fix wrong GPIO_FN_SEL and SPI_CLK_CONFIG1 defaults
        mfd: cs42l43: Fix wrong register defaults
        mfd: mt6397-core: Register mt6357 sound codec
        dt-bindings: mfd: syscon: Add ti,am62-usb-phy-ctrl compatible
        dt-bindings: mfd: dlg,da9063: Make #interrupt-cells required
        dt-bindings: mfd: Convert atmel-flexcom to json-schema
        mfd: kempld-core: Don't replace resources provided by ACPI
        mfd: cros_ec_dev: Add GPIO device if feature present on EC
        dt-bindings: mfd: cros-ec: Add properties for GPIO controller
        mfd: twl: Select MFD_CORE
        mfd: core: Constify the struct device_type usage
        mfd: rk8xx-core: Fix interrupt processing order for power key button
        mfd: twl4030-power: Accept standard property for power controller
        mfd: twl-core: Add power off implementation for twl603x
        dt-bindings: mfd: ti,twl: Document system-power-controller
        mfd: altera-sysmgr: Call of_node_put() only when of_parse_phandle() takes a ref
        mfd: syscon: Remove extern from function prototypes
        mfd: syscon: Call of_node_put() only when of_parse_phandle() takes a ref
        mfd: mc13xxx: Use bitfield helpers
        mfd: rc5t583: Convert to use maple tree register cache
        ...
      8403ce70
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v6.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · a3df5d54
      Linus Torvalds authored
      Pull pin control updates from Linus Walleij:
       "No core changes this time around.
      
        New drivers:
      
         - New driver for Renesas R8A779H0 also known as R-Car V4M.
      
         - New driver for the Awinic AW9523/B I2C GPIO expander. I found this
           living out-of-tree in OpenWrt as an upstream attempt had stalled on
           the finishing line, so I picked it up and finished the job.
      
        Improvements:
      
         - The Nomadik pin control driver was for years re-used out of tree
           for the ST STA chips, and now the IP was re-used in a MIPS
           automotive SoC called MobilEyeq5, so it has been split in pin
           control and GPIO drivers so the latter can be reused by MobilEyeq5.
           (Along with a long list of cleanups)
      
         - A lot of overall cleanup and tidying up"
      
      * tag 'pinctrl-v6.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (87 commits)
        drivers/gpio/nomadik: move dummy nmk_gpio_dbg_show_one() to header
        gpio: nomadik: remove BUG_ON() in nmk_gpio_populate_chip()
        dt-bindings: pinctrl: qcom: update compatible name for match with driver
        pinctrl: aw9523: Make the driver tristate
        pinctrl: nomadik: fix dereference of error pointer
        gpio: nomadik: Back out some managed resources
        pinctrl: aw9523: Add proper terminator
        pinctrl: core: comment that pinctrl_add_gpio_range() is deprecated
        pinctrl: pinmux: Suppress error message for -EPROBE_DEFER
        pinctrl: Add driver for Awinic AW9523/B I2C GPIO Expander
        dt-bindings: pinctrl: Add bindings for Awinic AW9523/AW9523B
        gpio: nomadik: Finish conversion to use firmware node APIs
        gpio: nomadik: fix Kconfig dependencies inbetween pinctrl & GPIO
        pinctrl: da9062: Add OF table
        dt-bindings: pinctrl: at91: add sam9x7
        pinctrl: ocelot: remove redundant assignment to variable ret
        gpio: nomadik: grab optional reset control and deassert it at probe
        gpio: nomadik: support mobileye,eyeq5-gpio
        gpio: nomadik: handle variadic GPIO count
        gpio: nomadik: support shared GPIO IRQs
        ...
      a3df5d54
    • Linus Torvalds's avatar
      Merge tag 'for-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply · 44f89c6d
      Linus Torvalds authored
      Pull power supply and reset updates from Sebastian Reichel:
       "New features:
         - axp20x_usb_power: report USB type
      
        Cleanups:
         - convert lots of drivers to use devm_power_supply_register()
         - convert lots of reset drivers to use devm_register_sys_off_handler()
         - constify device_type and power_supply_class
         - axp20x_usb_power: use correct property to report input current limit
         - mm8013: correct handling of "not charging" status register
         - core: fix charge_behaviour formatting
         - minor fixes cleanups"
      
      * tag 'for-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply: (66 commits)
        power: supply: core: fix charge_behaviour formatting
        power: supply: core: ease special formatting implementations
        power: supply: mm8013: fix "not charging" detection
        power: supply: move power_supply_attr_groups definition back to sysfs
        power: supply: core: simplify power_supply_class_init
        power: supply: core: add power_supply_for_each_device()
        power: supply: core: make power_supply_class constant
        power: supply: bq2415x_charger: report online status
        power: supply: core: move power_supply_attr_group into #ifdef block
        power: supply: core: Fix power_supply_init_attrs() stub
        power: supply: bq27xxx: Report charge full state correctly
        power: reset: rmobile-reset: Make sysc_base2 local
        power: supply: core: constify the struct device_type usage
        power: supply: axp288_fuel_gauge: Deny ROCK Pi X
        power: reset: rmobile-reset: Map correct MMIO resource
        power: reset: xgene-reboot: Fix a NULL vs IS_ERR() test
        power: supply: axp288_fuel_gauge: Add STCK1A* Intel Compute Sticks to the deny-list
        power: reset: syscon-poweroff: Use devm_register_sys_off_handler(POWER_OFF)
        power: reset: syscon-poweroff: Move device data into a struct
        power: reset: restart-poweroff: Use devm_register_sys_off_handler(POWER_OFF)
        ...
      44f89c6d
    • Linus Torvalds's avatar
      Merge tag 'hsi-for-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi · 80d80de4
      Linus Torvalds authored
      Pull HSI updates from Sebastian Reichel:
      
       - fix kernel-doc warning
      
       - make hsi_bus_type const
      
      [ And as always I had to remind myself about the acronyn, so to avoid
        that for others: "HSI" is High Speed Synchronous Serial Interface,
        because of course it is.     - Linus ]
      
      * tag 'hsi-for-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi:
        HSI: ssi_protocol: fix struct members kernel-doc warnings
        hsi: hsi_core: make hsi_bus_type const
      80d80de4
    • Linus Torvalds's avatar
      Merge tag 'hid-for-linus-2024031301' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid · 3e78a6c0
      Linus Torvalds authored
      Pull HID updates from Jiri Kosina:
      
       - support for the following Bluetooth devices from Samsung: Samsung
         wireless {Keyboard, GamePad, Action Mouse, Book Cover, Universal
         Keyboard, HOGP Keyboard} (Sandeep C S)
      
       - second version of code for applying proper quirk depending on
         firmware version for lenovo/cptkbd (Mikhail Khvainitski)
      
       - lenovo/cptkbd firmware-dependent quirk (Mikhail Khvainitski)
      
       - assorted fixes and optimizations for amd-sfh (Basavaraj Natikar)
      
       - dead code and dead data structures removal (Jiri Slaby, Jiapeng
         Chong)
      
      * tag 'hid-for-linus-2024031301' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid: (25 commits)
        HID: amd_sfh: Set the AMD SFH driver to depend on x86
        HID: input: avoid polling stylus battery on Chromebook Pompom
        HID: amd_sfh: Extend MP2 register access to SFH
        HID: amd_sfh: Improve boot time when SFH is available
        HID: amd_sfh: Avoid disabling the interrupt
        HID: amd_sfh: Update HPD sensor structure elements
        HID: amd_sfh: Increase sensor command timeout
        HID: intel-ish-hid: ipc: Add Arrow Lake PCI device ID
        HID: nintendo: Remove some unused functions
        HID: hid-prodikeys: remove struct pk_device
        HID: hid-prodikeys: remove unused struct pcmidi_snd members
        HID: hid-multitouch: remove unused mt_application::dev_time
        HID: hid-lg3ff: remove unused struct lg3ff_device
        HID: protect hid_device::bpf by CONFIG_HID_BPF
        HID: wacom: remove unused hid_data::pressure
        HID: apple: remove unused members from struct apple_sc_backlight
        HID: wacom: Clean up use of struct->wacom_wac
        HID: samsung: Add Samsung wireless bookcover and universal keyboard support
        HID: samsung: Add Samsung wireless action mouse support
        HID: samsung: Add Samsung wireless gamepad support
        ...
      3e78a6c0
    • Linus Torvalds's avatar
      Merge tag 'auxdisplay-v6.9-1' of... · b345ff69
      Linus Torvalds authored
      Merge tag 'auxdisplay-v6.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/andy/linux-auxdisplay
      
      Pull auxdisplay updates from Andy Shevchenko:
      
       - New driver for GPIO based 7-segment LED display (Chris Packham)
      
       - New driver for Maxim MAX6958/6959 I²C 7-segment LED display
         controller
      
       - Refactor linedisp library to make the above happen
      
       - Update Holtek HT16k33 driver to follow the linedisp refactoring
      
       - Convert .remove to return void in platform drivers (Uwe Kleine-König)
      
       - Fix DT schemas (Krzysztof Kozlowski)
      
       - Refresh MAINTAINERS database
      
      * tag 'auxdisplay-v6.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/andy/linux-auxdisplay: (27 commits)
        auxdisplay: img-ascii-lcd: Convert to platform remove callback returning void
        auxdisplay: hd44780: Convert to platform remove callback returning void
        auxdisplay: cfag12864bfb: Convert to platform remove callback returning void
        auxdisplay: seg-led-gpio: Import linedisp namespace
        dt-bindings: auxdisplay: Add bindings for generic 7-segment LED
        auxdisplay: Add 7-segment LED display driver
        auxdisplay: Add driver for MAX695x 7-segment LED controllers
        dt-bindings: auxdisplay: Add Maxim MAX6958/6959
        auxdisplay: ht16k33: Drop struct ht16k33_seg
        auxdisplay: ht16k33: Switch to use line display character mapping
        auxdisplay: ht16k33: Define a few helper macros
        auxdisplay: ht16k33: Move ht16k33_linedisp_ops down
        auxdisplay: ht16k33: Add default to switch-cases
        auxdisplay: linedisp: Allocate buffer for the string
        auxdisplay: linedisp: Add support for overriding character mapping
        auxdisplay: linedisp: Provide struct linedisp_ops for future extension
        auxdisplay: linedisp: Move exported symbols to a namespace
        auxdisplay: linedisp: Add missing header(s)
        auxdisplay: linedisp: Unshadow error codes in ->store()
        auxdisplay: linedisp: Use unique number for id
        ...
      b345ff69
    • Ryusuke Konishi's avatar
      nilfs2: prevent kernel bug at submit_bh_wbc() · 269cdf35
      Ryusuke Konishi authored
      Fix a bug where nilfs_get_block() returns a successful status when
      searching and inserting the specified block both fail inconsistently.  If
      this inconsistent behavior is not due to a previously fixed bug, then an
      unexpected race is occurring, so return a temporary error -EAGAIN instead.
      
      This prevents callers such as __block_write_begin_int() from requesting a
      read into a buffer that is not mapped, which would cause the BUG_ON check
      for the BH_Mapped flag in submit_bh_wbc() to fail.
      
      Link: https://lkml.kernel.org/r/20240313105827.5296-3-konishi.ryusuke@gmail.com
      Fixes: 1f5abe7e ("nilfs2: replace BUG_ON and BUG calls triggerable from ioctl")
      Signed-off-by: default avatarRyusuke Konishi <konishi.ryusuke@gmail.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      269cdf35
    • Ryusuke Konishi's avatar
      nilfs2: fix failure to detect DAT corruption in btree and direct mappings · f2f26b4a
      Ryusuke Konishi authored
      Patch series "nilfs2: fix kernel bug at submit_bh_wbc()".
      
      This resolves a kernel BUG reported by syzbot.  Since there are two
      flaws involved, I've made each one a separate patch.
      
      The first patch alone resolves the syzbot-reported bug, but I think
      both fixes should be sent to stable, so I've tagged them as such.
      
      
      This patch (of 2):
      
      Syzbot has reported a kernel bug in submit_bh_wbc() when writing file data
      to a nilfs2 file system whose metadata is corrupted.
      
      There are two flaws involved in this issue.
      
      The first flaw is that when nilfs_get_block() locates a data block using
      btree or direct mapping, if the disk address translation routine
      nilfs_dat_translate() fails with internal code -ENOENT due to DAT metadata
      corruption, it can be passed back to nilfs_get_block().  This causes
      nilfs_get_block() to misidentify an existing block as non-existent,
      causing both data block lookup and insertion to fail inconsistently.
      
      The second flaw is that nilfs_get_block() returns a successful status in
      this inconsistent state.  This causes the caller __block_write_begin_int()
      or others to request a read even though the buffer is not mapped,
      resulting in a BUG_ON check for the BH_Mapped flag in submit_bh_wbc()
      failing.
      
      This fixes the first issue by changing the return value to code -EINVAL
      when a conversion using DAT fails with code -ENOENT, avoiding the
      conflicting condition that leads to the kernel bug described above.  Here,
      code -EINVAL indicates that metadata corruption was detected during the
      block lookup, which will be properly handled as a file system error and
      converted to -EIO when passing through the nilfs2 bmap layer.
      
      Link: https://lkml.kernel.org/r/20240313105827.5296-1-konishi.ryusuke@gmail.com
      Link: https://lkml.kernel.org/r/20240313105827.5296-2-konishi.ryusuke@gmail.com
      Fixes: c3a7abf0 ("nilfs2: support contiguous lookup of blocks")
      Signed-off-by: default avatarRyusuke Konishi <konishi.ryusuke@gmail.com>
      Reported-by: syzbot+cfed5b56649bddf80d6e@syzkaller.appspotmail.com
      Closes: https://syzkaller.appspot.com/bug?extid=cfed5b56649bddf80d6eTested-by: default avatarRyusuke Konishi <konishi.ryusuke@gmail.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      f2f26b4a
    • Su Yue's avatar
      ocfs2: enable ocfs2_listxattr for special files · 41e296f6
      Su Yue authored
      For special files in S_IFBLK/S_IFCHR/S_IFIFO type, we already have
      ocfs2_setattr and ocfs2_getattr enabled.  It's confusing for user space if
      it can use setattr/getattr to control one attribute appointed but can not
      list attributes using listxattr for above type files:
      
      $ mknod /mnt/b b 0 0
      $ setfattr -h -n trusted.name -v 0xbabe /mnt/b
      $ getfattr -n trusted.name  /mnt/b
      getfattr: Removing leading '/' from absolute path names
      trusted.name=0sur4=
      
      $ getfattr -m trusted  /mnt/b
      $
      
      Fix it by enabling ocfs2_listxattr for ocfs2_special_file_iops.  After the
      commit, fstests/generic/062 will pass.
      
      Link: https://lkml.kernel.org/r/20240312042908.8889-1-l@damenly.orgSigned-off-by: default avatarSu Yue <glass.su@suse.com>
      Acked-by: default avatarJoseph Qi <joseph.qi@linux.alibaba.com>
      Cc: Mark Fasheh <mark@fasheh.com>
      Cc: Joel Becker <jlbec@evilplan.org>
      Cc: Junxiao Bi <junxiao.bi@oracle.com>
      Cc: Changwei Ge <gechangwei@live.cn>
      Cc: Gang He <ghe@suse.com>
      Cc: Jun Piao <piaojun@huawei.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      41e296f6
    • Chengming Zhou's avatar
      ocfs2: remove SLAB_MEM_SPREAD flag usage · 46bd9449
      Chengming Zhou authored
      The SLAB_MEM_SPREAD flag is already a no-op as of 6.8-rc1, remove
      its usage so we can delete it from slab. No functional change.
      
      Link: https://lkml.kernel.org/r/20240224135008.829878-1-chengming.zhou@linux.devSigned-off-by: default avatarChengming Zhou <zhouchengming@bytedance.com>
      Acked-by: default avatarJoseph Qi <joseph.qi@linux.alibaba.com>
      Cc: Mark Fasheh <mark@fasheh.com>
      Cc: Joel Becker <jlbec@evilplan.org>
      Cc: Junxiao Bi <junxiao.bi@oracle.com>
      Cc: Changwei Ge <gechangwei@live.cn>
      Cc: Gang He <ghe@suse.com>
      Cc: Jun Piao <piaojun@huawei.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      46bd9449
    • Paul Moore's avatar
      lsm: handle the NULL buffer case in lsm_fill_user_ctx() · eaf0e7a3
      Paul Moore authored
      Passing a NULL buffer into the lsm_get_self_attr() syscall is a valid
      way to quickly determine the minimum size of the buffer needed to for
      the syscall to return all of the LSM attributes to the caller.
      Unfortunately we/I broke that behavior in commit d7cf3412
      ("lsm: consolidate buffer size handling into lsm_fill_user_ctx()")
      such that it returned an error to the caller; this patch restores the
      original desired behavior of using the NULL buffer as a quick way to
      correctly size the attribute buffer.
      
      Cc: stable@vger.kernel.org
      Fixes: d7cf3412 ("lsm: consolidate buffer size handling into lsm_fill_user_ctx()")
      Signed-off-by: default avatarPaul Moore <paul@paul-moore.com>
      eaf0e7a3
    • Casey Schaufler's avatar
      lsm: use 32-bit compatible data types in LSM syscalls · a5a858f6
      Casey Schaufler authored
      Change the size parameters in lsm_list_modules(), lsm_set_self_attr()
      and lsm_get_self_attr() from size_t to u32. This avoids the need to
      have different interfaces for 32 and 64 bit systems.
      
      Cc: stable@vger.kernel.org
      Fixes: a04a1198 ("LSM: syscalls for current process attributes")
      Fixes: ad4aff9e ("LSM: Create lsm_list_modules system call")
      Signed-off-by: default avatarCasey Schaufler <casey@schaufler-ca.com>
      Reported-and-reviewed-by: default avatarDmitry V. Levin <ldv@strace.io>
      [PM: subject and metadata tweaks, syscall.h fixes]
      Signed-off-by: default avatarPaul Moore <paul@paul-moore.com>
      a5a858f6
    • Darrick J. Wong's avatar
      bcachefs: time_stats: shrink time_stat_buffer for better alignment · be28368b
      Darrick J. Wong authored
      Shrink this percpu object by one array element so that the object size
      becomes exactly 512 bytes.  This will lead to more efficient memory use,
      hopefully.
      Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
      Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
      be28368b
    • Darrick J. Wong's avatar
      bcachefs: time_stats: split stats-with-quantiles into a separate structure · 273960b8
      Darrick J. Wong authored
      Currently, struct time_stats has the optional ability to quantize the
      information that it collects.  This is /probably/ useful for callers who
      want to see quantized information, but it more than doubles the size of
      the structure from 224 bytes to 464.  For users who don't care about
      that (e.g. upcoming xfs patches) and want to avoid wasting 240 bytes per
      counter, split the two into separate pieces.
      Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
      Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
      273960b8
    • Darrick J. Wong's avatar
      bcachefs: mean_and_variance: put struct mean_and_variance_weighted on a diet · 4b4f0876
      Darrick J. Wong authored
      The only caller of this code (time_stats) always knows the weights and
      whether or not any information has been collected.  Pass this
      information into the mean and variance code so that it doesn't have to
      store that information.  This reduces the structure size from 24 to 16
      bytes, which shrinks each time_stats counter to 192 bytes from 208.
      Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
      Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
      4b4f0876
    • Darrick J. Wong's avatar
      bcachefs: time_stats: add larger units · cdbfa228
      Darrick J. Wong authored
      Filesystems can stay mounted for a very long time, so add some larger
      units.
      Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
      Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
      cdbfa228
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2024-03-13' of https://gitlab.freedesktop.org/drm/kernel · 480e035f
      Linus Torvalds authored
      Pull drm updates from Dave Airlie:
       "Highlights are usual, more AMD IP blocks for future hw, i915/xe
        changes, Displayport tunnelling support for i915, msm YUV over DP
        changes, new tests for ttm, but its mostly a lot of stuff all over the
        place from lots of people.
      
        core:
         - EDID cleanups
         - scheduler error handling fixes
         - managed: add drmm_release_action() with tests
         - add ratelimited drm debug print
         - DPCD PSR early transport macro
         - DP tunneling and bandwidth allocation helpers
         - remove built-in edids
         - dp: Avoid AUX transfers on powered-down displays
         - dp: Add VSC SDP helpers
      
        cross drivers:
         - use new drm print helpers
         - switch to ->read_edid callback
         - gem: add stats for shared buffers plus updates to amdgpu, i915, xe
      
        syncobj:
         - fixes to waiting and sleeping
      
        ttm:
         - add tests
         - fix errno codes
         - simply busy-placement handling
         - fix page decryption
      
        media:
         - tc358743: fix v4l device registration
      
        video:
         - move all kernel parameters for video behind CONFIG_VIDEO
      
        sound:
         - remove <drm/drm_edid.h> include from header
      
        ci:
         - add tests for msm
         - fix apq8016 runner
      
        efifb:
         - use copy of global screen_info state
      
        vesafb:
         - use copy of global screen_info state
      
        simplefb:
         - fix logging
      
        bridge:
         - ite-6505: fix DP link-training bug
         - samsung-dsim: fix error checking in probe
         - samsung-dsim: add bsh-smm-s2/pro boards
         - tc358767: fix regmap usage
         - imx: add i.MX8MP HDMI PVI plus DT bindings
         - imx: add i.MX8MP HDMI TX plus DT bindings
         - sii902x: fix probing and unregistration
         - tc358767: limit pixel PLL input range
         - switch to new drm_bridge_read_edid() interface
      
        panel:
         - ltk050h3146w: error-handling fixes
         - panel-edp: support delay between power-on and enable; use put_sync
           in unprepare; support Mediatek MT8173 Chromebooks, BOE NV116WHM-N49
           V8.0, BOE NV122WUM-N41, CSO MNC207QS1-1 plus DT bindings
         - panel-lvds: support EDT ETML0700Z9NDHA plus DT bindings
         - panel-novatek: FRIDA FRD400B25025-A-CTK plus DT bindings
         - add BOE TH101MB31IG002-28A plus DT bindings
         - add EDT ETML1010G3DRA plus DT bindings
         - add Novatek NT36672E LCD DSI plus DT bindings
         - nt36523: support 120Hz timings, fix includes
         - simple: fix display timings on RK32FN48H
         - visionox-vtdr6130: fix initialization
         - add Powkiddy RGB10MAX3 plus DT bindings
         - st7703: support panel rotation plus DT bindings
         - add Himax HX83112A plus DT bindings
         - ltk500hd1829: add support for ltk101b4029w and admatec 9904370
         - simple: add BOE BP082WX1-100 8.2" panel plus DT bindungs
      
        panel-orientation-quirks:
         - GPD Win Mini
      
        amdgpu:
         - Validate DMABuf imports in compute VMs
         - Add RAS ACA framework
         - PSP 13 fixes
         - Misc code cleanups
         - Replay fixes
         - Atom interpretor PS, WS bounds checking
         - DML2 fixes
         - Audio fixes
         - DCN 3.5 Z state fixes
         - Remove deprecated ida_simple usage
         - UBSAN fixes
         - RAS fixes
         - Enable seq64 infrastructure
         - DC color block enablement
         - Documentation updates
         - DC documentation updates
         - DMCUB updates
         - ATHUB 4.1 support
         - LSDMA 7.0 support
         - JPEG DPG support
         - IH 7.0 support
         - HDP 7.0 support
         - VCN 5.0 support
         - SMU 13.0.6 updates
         - NBIO 7.11 updates
         - SDMA 6.1 updates
         - MMHUB 3.3 updates
         - DCN 3.5.1 support
         - NBIF 6.3.1 support
         - VPE 6.1.1 support
      
        amdkfd:
         - Validate DMABuf imports in compute VMs
         - SVM fixes
         - Trap handler updates and enhancements
         - Fix cache size reporting
         - Relocate the trap handler
      
        radeon:
         - Atom interpretor PS, WS bounds checking
         - Misc code cleanups
      
        xe:
         - new query for GuC submission version
         - Remove unused persistent exec_queues
         - Add vram frequency sysfs attributes
         - Add the flag XE_VM_BIND_FLAG_DUMPABLE
         - Drop pre-production workarounds
         - Drop kunit tests for unsupported platforms
         - Start pumbling SR-IOV support with memory based interrupts for VF
         - Allow to map BO in GGTT with PAT index corresponding to XE_CACHE_UC
           to work with memory based interrupts
         - Add GuC Doorbells Manager as prep work SR-IOV
         - Implement additional workarounds for xe2 and MTL
         - Program a few registers according to perfomance guide spec for Xe2
         - Fix remaining 32b build issues and enable it back
         - Fix build with CONFIG_DEBUG_FS=n
         - Fix warnings from GuC ABI headers
         - Introduce Relay Communication for SR-IOV for VF <-> GuC <-> PF
         - Release mmap mappings on rpm suspend
         - Disable mid-thread preemption when not properly supported by
           hardware
         - Fix xe_exec by reserving extra fence slot for CPU bind
         - Fix xe_exec with full long running exec queue
         - Canonicalize addresses where needed for Xe2 and add to devcoredum
         - Toggle USM support for Xe2
         - Only allow 1 ufence per exec / bind IOCTL
         - Add GuC firmware loading for Lunar Lake
         - Add XE_VMA_PTE_64K VMA flag
      
        i915:
         - Add more ADL-N PCI IDs
         - Enable fastboot also on older platforms
         - Early transport for panel replay and PSR
         - New ARL PCI IDs
         - DP TPS4 PHY test pattern support
         - Unify and improve VSC SDP for PSR and non-PSR cases
         - Refactor memory regions and improve debug logging
         - Rework global state serialization
         - Remove unused CDCLK divider fields
         - Unify HDCP connector logging format
         - Use display instead of graphics version in display code
         - Move VBT and opregion debugfs next to the implementation
         - Abstract opregion interface, use opaque type
         - MTL fixes
         - HPD handling fixes
         - Add GuC submission interface version query
         - Atomically invalidate userptr on mmu-notifier
         - Update handling of MMIO triggered reports
         - Don't make assumptions about intel_wakeref_t type
         - Extend driver code of Xe_LPG to Xe_LPG+
         - Add flex arrays to struct i915_syncmap
         - Allow for very slow HuC loading
         - DP tunneling and bandwidth allocation support
      
        msm:
         - Correct bindings for MSM8976 and SM8650 platforms
         - Start migration of MDP5 platforms to DPU driver
         - X1E80100 MDSS support
         - DPU:
            - Improve DSC allocation, fixing several important corner cases
            - Add support for SDM630/SDM660 platforms
            - Simplify dpu_encoder_phys_ops
            - Apply fixes targeting DSC support with a single DSC encoder
            - Apply fixes for HCTL_EN timing configuration
            - X1E80100 support
            - Add support for YUV420 over DP
         - GPU:
            - fix sc7180 UBWC config
            - fix a7xx LLC config
            - new gpu support: a305B, a750, a702
            - machine support: SM7150 (different power levels than other a618)
            - a7xx devcoredump support
      
        habanalabs:
         - configure IRQ affinity according to NUMA node
         - move HBM MMU page tables inside the HBM
         - improve device reset
         - check extended PCIe errors
      
        ivpu:
         - updates to firmware API
         - refactor BO allocation
      
        imx:
         - use devm_ functions during init
      
        hisilicon:
         - fix EDID includes
      
        mgag200:
         - improve ioremap usage
         - convert to struct drm_edid
         - Work around PCI write bursts
      
        nouveau:
         - disp: use kmemdup()
         - fix EDID includes
         - documentation fixes
      
        qaic:
         - fixes to BO handling
         - make use of DRM managed release
         - fix order of remove operations
      
        rockchip:
         - analogix_dp: get encoder port from DT
         - inno_hdmi: support HDMI for RK3128
         - lvds: error-handling fixes
      
        ssd130x:
         - support SSD133x plus DT bindings
      
        tegra:
         - fix error handling
      
        tilcdc:
         - make use of DRM managed release
      
        v3d:
         - show memory stats in debugfs
         - Support display MMU page size
      
        vc4:
         - fix error handling in plane prepare_fb
         - fix framebuffer test in plane helpers
      
        virtio:
         - add venus capset defines
      
        vkms:
         - fix OOB access when programming the LUT
         - Kconfig improvements
      
        vmwgfx:
         - unmap surface before changing plane state
         - fix memory leak in error handling
         - documentation fixes
         - list command SVGA_3D_CMD_DEFINE_GB_SURFACE_V4 as invalid
         - fix null-pointer deref in execbuf
         - refactor display-mode probing
         - fix fencing for creating cursor MOBs
         - fix cursor-memory lifetime
      
        xlnx:
         - fix live video input for ZynqMP DPSUB
      
        lima:
         - fix memory leak
      
        loongson:
         - fail if no VRAM present
      
        meson:
         - switch to new drm_bridge_read_edid() interface
      
        renesas:
         - add RZ/G2L DU support plus DT bindings
      
        mxsfb:
         - Use managed mode config
      
        sun4i:
         - HDMI: updates to atomic mode setting
      
        mediatek:
         - Add display driver for MT8188 VDOSYS1
         - DSI driver cleanups
         - Filter modes according to hardware capability
         - Fix a null pointer crash in mtk_drm_crtc_finish_page_flip
      
        etnaviv:
         - enhancements for NPU and MRT support"
      
      * tag 'drm-next-2024-03-13' of https://gitlab.freedesktop.org/drm/kernel: (1420 commits)
        drm/amd/display: Removed redundant @ symbol to fix kernel-doc warnings in -next repo
        drm/amd/pm: wait for completion of the EnableGfxImu message
        drm/amdgpu/soc21: add mode2 asic reset for SMU IP v14.0.1
        drm/amdgpu: add smu 14.0.1 support
        drm/amdgpu: add VPE 6.1.1 discovery support
        drm/amdgpu/vpe: add VPE 6.1.1 support
        drm/amdgpu/vpe: don't emit cond exec command under collaborate mode
        drm/amdgpu/vpe: add collaborate mode support for VPE
        drm/amdgpu/vpe: add PRED_EXE and COLLAB_SYNC OPCODE
        drm/amdgpu/vpe: add multi instance VPE support
        drm/amdgpu/discovery: add nbif v6_3_1 ip block
        drm/amdgpu: Add nbif v6_3_1 ip block support
        drm/amdgpu: Add pcie v6_1_0 ip headers (v5)
        drm/amdgpu: Add nbif v6_3_1 ip headers (v5)
        arch/powerpc: Remove <linux/fb.h> from backlight code
        macintosh/via-pmu-backlight: Include <linux/backlight.h>
        fbdev/chipsfb: Include <linux/backlight.h>
        drm/etnaviv: Restore some id values
        drm/amdkfd: make kfd_class constant
        drm/amdgpu: add ring timeout information in devcoredump
        ...
      480e035f
    • Kent Overstreet's avatar
      bcachefs: pull out time_stats.[ch] · f1ca1abf
      Kent Overstreet authored
      prep work for lifting out of fs/bcachefs/
      Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
      f1ca1abf
    • Kent Overstreet's avatar
      bcachefs: reconstruct_alloc cleanup · cdce1094
      Kent Overstreet authored
      Now that we've got the errors_silent mechanism, we don't have to check
      if the reconstruct_alloc option is set all over the place.
      
      Also - users no longer have to explicitly select fsck and fix_errors.
      Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
      cdce1094
    • Kent Overstreet's avatar
      3bbed372
    • Kent Overstreet's avatar
    • Kent Overstreet's avatar