1. 19 Jul, 2024 6 commits
    • Linus Torvalds's avatar
      Merge tag 'for-linus-iommufd' of git://git.kernel.org/pub/scm/linux/kernel/git/jgg/iommufd · ef7c8f2b
      Linus Torvalds authored
      Pull iommufd updates from Jason Gunthorpe:
      
       - The iova_bitmap logic for efficiently reporting dirty pages back to
         userspace has a few more tricky corner case bugs that have been
         resolved and backed with new tests.
      
         The revised version has simpler logic.
      
       - Shared branch with iommu for handle support when doing domain attach.
      
         Handles allow the domain owner to include additional private data on
         a per-device basis.
      
       - IO Page Fault Reporting to userspace via iommufd. Page faults can be
         generated on fault capable HWPTs when a translation is not present.
      
         Routing them to userspace would allow a VMM to be able to virtualize
         them into an emulated vIOMMU. This is the next step to fully enabling
         vSVA support.
      
      * tag 'for-linus-iommufd' of git://git.kernel.org/pub/scm/linux/kernel/git/jgg/iommufd: (26 commits)
        iommufd: Put constants for all the uAPI enums
        iommufd: Fix error pointer checking
        iommufd: Add check on user response code
        iommufd: Remove IOMMUFD_PAGE_RESP_FAILURE
        iommufd: Require drivers to supply the cache_invalidate_user ops
        iommufd/selftest: Add coverage for IOPF test
        iommufd/selftest: Add IOPF support for mock device
        iommufd: Associate fault object with iommufd_hw_pgtable
        iommufd: Fault-capable hwpt attach/detach/replace
        iommufd: Add iommufd fault object
        iommufd: Add fault and response message definitions
        iommu: Extend domain attach group with handle support
        iommu: Add attach handle to struct iopf_group
        iommu: Remove sva handle list
        iommu: Introduce domain attachment handle
        iommufd/iova_bitmap: Remove iterator logic
        iommufd/iova_bitmap: Dynamic pinning on iova_bitmap_set()
        iommufd/iova_bitmap: Consolidate iova_bitmap_set exit conditionals
        iommufd/iova_bitmap: Move initial pinning to iova_bitmap_for_each()
        iommufd/iova_bitmap: Cache mapped length in iova_bitmap_map struct
        ...
      ef7c8f2b
    • Linus Torvalds's avatar
      Merge tag 'tpmdd-next-6.11-rc1-roundtwo' of... · 07e773db
      Linus Torvalds authored
      Merge tag 'tpmdd-next-6.11-rc1-roundtwo' of git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd
      
      Pull tpm fix from Jarkko Sakkinen:
       "An additional fix that supplements my earlier fixes for handling auth,
        which I unfortunately missed last time"
      
      * tag 'tpmdd-next-6.11-rc1-roundtwo' of git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd:
        tpm: Use auth only after NULL check in tpm_buf_check_hmac_response()
      07e773db
    • Linus Torvalds's avatar
      Merge tag 'v6.11-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · c434e25b
      Linus Torvalds authored
      Pull crypto update from Herbert Xu:
       "API:
         - Test setkey in no-SIMD context
         - Add skcipher speed test for user-specified algorithm
      
        Algorithms:
         - Add x25519 support on ppc64le
         - Add VAES and AVX512 / AVX10 optimized AES-GCM on x86
         - Remove sm2 algorithm
      
        Drivers:
         - Add Allwinner H616 support to sun8i-ce
         - Use DMA in stm32
         - Add Exynos850 hwrng support to exynos"
      
      * tag 'v6.11-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (81 commits)
        hwrng: core - remove (un)register_miscdev()
        crypto: lib/mpi - delete unnecessary condition
        crypto: testmgr - generate power-of-2 lengths more often
        crypto: mxs-dcp - Ensure payload is zero when using key slot
        hwrng: Kconfig - Do not enable by default CN10K driver
        crypto: starfive - Fix nent assignment in rsa dec
        crypto: starfive - Align rsa input data to 32-bit
        crypto: qat - fix unintentional re-enabling of error interrupts
        crypto: qat - extend scope of lock in adf_cfg_add_key_value_param()
        Documentation: qat: fix auto_reset attribute details
        crypto: sun8i-ce - add Allwinner H616 support
        crypto: sun8i-ce - wrap accesses to descriptor address fields
        dt-bindings: crypto: sun8i-ce: Add compatible for H616
        hwrng: core - Fix wrong quality calculation at hw rng registration
        hwrng: exynos - Enable Exynos850 support
        hwrng: exynos - Add SMC based TRNG operation
        hwrng: exynos - Implement bus clock control
        hwrng: exynos - Use devm_clk_get_enabled() to get the clock
        hwrng: exynos - Improve coding style
        dt-bindings: rng: Add Exynos850 support to exynos-trng
        ...
      c434e25b
    • Linus Torvalds's avatar
      Merge tag 'bcachefs-2024-07-18.2' of https://evilpiepirate.org/git/bcachefs · 720261cf
      Linus Torvalds authored
      Pull bcachefs updates from Kent Overstreet:
      
       - Metadata version 1.8: Stripe sectors accounting, BCH_DATA_unstriped
      
         This splits out the accounting of dirty sectors and stripe sectors in
         alloc keys; this lets us see stripe buckets that still have unstriped
         data in them.
      
         This is needed for ensuring that erasure coding is working correctly,
         as well as completing stripe creation after a crash.
      
       - Metadata version 1.9: Disk accounting rewrite
      
         The previous disk accounting scheme relied heavily on percpu counters
         that were also sharded by outstanding journal buffer; it was fast but
         not extensible or scalable, and meant that all accounting counters
         were recorded in every journal entry.
      
         The new disk accounting scheme stores accounting as normal btree
         keys; updates are deltas until they are flushed by the btree write
         buffer.
      
         This means we have no practical limit on the number of counters, and
         a new tagged union format that's easy to extend.
      
         We now have counters for compression type/ratio, per-snapshot-id
         usage, per-btree-id usage, and pending rebalance work.
      
       - Self healing on read IO/checksum error
      
         Data is now automatically rewritten if we get a read error and then a
         successful retry
      
       - Mount API conversion (thanks to Thomas Bertschinger)
      
       - Better lockdep coverage
      
         Previously, btree node locks were tracked individually by lockdep,
         like any other lock. But we may take _many_ btree node locks
         simultaneously, we easily blow through the limit of 48 locks that
         lockdep can track, leading to lockdep turning itself off.
      
         Tracking each btree node lock individually isn't really necessary
         since we have our own cycle detector for deadlock avoidance and
         centralized tracking of btree node locks, so we now have a single
         lockdep_map in btree_trans for "any btree nodes are locked".
      
       - Some more small incremental work towards online check_allocations
      
       - Lots more debugging improvements
      
       - Fixes, including:
          - undefined behaviour fixes, originally noted as breaking userspace
            LTO builds
          - fix a spurious warning in fsck_err, reported by Marcin
          - fix an integer overflow on trans->nr_updates, also reported by
            Marcin; this broke during deletion of highly fragmented indirect
            extents
      
      * tag 'bcachefs-2024-07-18.2' of https://evilpiepirate.org/git/bcachefs: (120 commits)
        lockdep: Add comments for lockdep_set_no{validate,track}_class()
        bcachefs: Fix integer overflow on trans->nr_updates
        bcachefs: silence silly kdoc warning
        bcachefs: Fix fsck warning about btree_trans not passed to fsck error
        bcachefs: Add an error message for insufficient rw journal devs
        bcachefs: varint: Avoid left-shift of a negative value
        bcachefs: darray: Don't pass NULL to memcpy()
        bcachefs: Kill bch2_assert_btree_nodes_not_locked()
        bcachefs: Rename BCH_WRITE_DONE -> BCH_WRITE_SUBMITTED
        bcachefs: __bch2_read(): call trans_begin() on every loop iter
        bcachefs: show none if label is not set
        bcachefs: drop packed, aligned from bkey_inode_buf
        bcachefs: btree node scan: fall back to comparing by journal seq
        bcachefs: Add lockdep support for btree node locks
        lockdep: lockdep_set_notrack_class()
        bcachefs: Improve copygc_wait_to_text()
        bcachefs: Convert clock code to u64s
        bcachefs: Improve startup message
        bcachefs: Self healing on read IO error
        bcachefs: Make read_only a mount option again, but hidden
        ...
      720261cf
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-6.11-1' of git://git.linux-nfs.org/projects/anna/linux-nfs · 4f40c636
      Linus Torvalds authored
      Pull NFS client updates from Anna Schumaker:
       "New Features:
         - Add support for large folios
         - Implement rpcrdma generic device removal notification
         - Add client support for attribute delegations
         - Use a LAYOUTRETURN during reboot recovery to report layoutstats
           and errors
         - Improve throughput for random buffered writes
         - Add NVMe support to pnfs/blocklayout
      
        Bugfixes:
         - Fix rpcrdma_reqs_reset()
         - Avoid soft lockups when using UDP
         - Fix an nfs/blocklayout premature PR key unregestration
         - Another fix for EXCHGID4_FLAG_USE_PNFS_DS for DS server
         - Do not extend writes to the entire folio
         - Pass explicit offset and count values to tracepoints
         - Fix a race to wake up sleeping SUNRPC sync tasks
         - Fix gss_status tracepoint output
      
        Cleanups:
         - Add missing MODULE_DESCRIPTION() macros
         - Add blocklayout / SCSI layout tracepoints
         - Remove asm-generic headers from xprtrdma verbs.c
         - Remove unused 'struct mnt_fhstatus'
         - Other delegation related cleanups
         - Other folio related cleanups
         - Other pNFS related cleanups
         - Other xprtrdma cleanups"
      
      * tag 'nfs-for-6.11-1' of git://git.linux-nfs.org/projects/anna/linux-nfs: (63 commits)
        SUNRPC: Fixup gss_status tracepoint error output
        SUNRPC: Fix a race to wake a sync task
        nfs: split nfs_read_folio
        nfs: pass explicit offset/count to trace events
        nfs: do not extend writes to the entire folio
        nfs/blocklayout: add support for NVMe
        nfs: remove nfs_page_length
        nfs: remove the unused max_deviceinfo_size field from struct pnfs_layoutdriver_type
        nfs: don't reuse partially completed requests in nfs_lock_and_join_requests
        nfs: move nfs_wait_on_request to write.c
        nfs: fold nfs_page_group_lock_subrequests into nfs_lock_and_join_requests
        nfs: fold nfs_folio_find_and_lock_request into nfs_lock_and_join_requests
        nfs: simplify nfs_folio_find_and_lock_request
        nfs: remove nfs_folio_private_request
        nfs: remove dead code for the old swap over NFS implementation
        NFSv4.1 another fix for EXCHGID4_FLAG_USE_PNFS_DS for DS server
        nfs: Block on write congestion
        nfs: Properly initialize server->writeback
        nfs: Drop pointless check from nfs_commit_release_pages()
        nfs/blocklayout: SCSI layout trace points for reservation key reg/unreg
        ...
      4f40c636
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 51ed42a8
      Linus Torvalds authored
      Pull ext4 updates from Ted Ts'o:
       "Many cleanups and bug fixes in ext4, especially for the fast commit
        feature.
      
        Also some performance improvements; in particular, improving IOPS and
        throughput on fast devices running Async Direct I/O by up to 20% by
        optimizing jbd2_transaction_committed()"
      
      * tag 'ext4_for_linus-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (40 commits)
        ext4: make sure the first directory block is not a hole
        ext4: check dot and dotdot of dx_root before making dir indexed
        ext4: sanity check for NULL pointer after ext4_force_shutdown
        jbd2: increase maximum transaction size
        jbd2: drop pointless shrinker batch initialization
        jbd2: avoid infinite transaction commit loop
        jbd2: precompute number of transaction descriptor blocks
        jbd2: make jbd2_journal_get_max_txn_bufs() internal
        jbd2: avoid mount failed when commit block is partial submitted
        ext4: avoid writing unitialized memory to disk in EA inodes
        ext4: don't track ranges in fast_commit if inode has inlined data
        ext4: fix possible tid_t sequence overflows
        ext4: use ext4_update_inode_fsync_trans() helper in inode creation
        ext4: add missing MODULE_DESCRIPTION()
        jbd2: add missing MODULE_DESCRIPTION()
        ext4: use memtostr_pad() for s_volume_name
        jbd2: speed up jbd2_transaction_committed()
        ext4: make ext4_da_map_blocks() buffer_head unaware
        ext4: make ext4_insert_delayed_block() insert multi-blocks
        ext4: factor out a helper to check the cluster allocation state
        ...
      51ed42a8
  2. 18 Jul, 2024 34 commits
    • Linus Torvalds's avatar
      Merge tag 'vfs-6.11-rc1.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs · dddebdec
      Linus Torvalds authored
      Pull vfs fixes from Christian Brauner:
      
       - Fix a missing rcu_read_unlock() in nsfs by switching to a cleanup
         guard
      
       - Add missing module descriptor for adfs
      
      * tag 'vfs-6.11-rc1.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
        nsfs: use cleanup guard
        fs/adfs: add MODULE_DESCRIPTION
      dddebdec
    • Linus Torvalds's avatar
      Merge tag 'docs-6.11' of git://git.lwn.net/linux · cf05e93a
      Linus Torvalds authored
      Pull documentation updates from Jonathan Corbet:
       "Nothing hugely exciting happening in the documentation tree this time
        around, mostly more of the usual:
      
         - More Spanish, Italian, and Chinese translations
      
         - A new script, scripts/checktransupdate.py, can be used to see which
           commits have touched an (English) document since a given
           translation was last updated.
      
         - A couple of "best practices" suggestions (on Link: tags and
           off-list discussions) that were not entirely at consensus level,
           but I concluded they were close enough to accept.
      
         - Some nice cleanups removing documentation for kernel parameters
           that have not been recognized for ... a long time.
      
        ...along with the usual updates, typo fixes, and such"
      
      * tag 'docs-6.11' of git://git.lwn.net/linux: (57 commits)
        Documentation: Document user_events ioctl code
        docs/pinctrl: fix typo in mapping example
        docs: maintainer: discourage taking conversations off-list
        docs: driver-model: platform: update the definition of platform_driver
        docs/sp_SP: Add translation for scheduler/sched-design-CFS.rst
        writing_musb_glue_layer.rst: Fix broken URL
        zh_CN/admin-guide: one typo fix
        docs/zh_CN/virt: Update the translation of guest-halt-polling.rst
        Documentation: add reference from dynamic debug to loglevel kernel params
        Documentation: best practices for using Link trailers
        Documentation: fix links to mailing list services
        Documentation: exception-tables.rst: Fix the wrong steps referenced
        docs/zh_CN: add process/researcher-guidelines Chinese translation
        Documentation/tools/rv: fix document header
        docs/sp_SP: Add translation of process/maintainer-kvm-x86.rst
        docs/admin-guide/mm: correct typo 'quired' to 'queried'
        Add libps2 to the input section of driver-api
        Docs/mm/index: move allocation profiling document to unsorted documents chapter
        Docs/mm/index: rename 'Legacy Documentation' to 'Unsorted Documentation'
        Docs/mm/index: Remove 'Memory Management Guide' chapter marker
        ...
      cf05e93a
    • Linus Torvalds's avatar
      Merge tag 'sparc-for-6.11-tag1' of... · 7dd894c1
      Linus Torvalds authored
      Merge tag 'sparc-for-6.11-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/alarsson/linux-sparc
      
      Pull sparc updates from Andreas Larsson:
      
       - Add MODULE_DESCRIPTION for a number of sbus drivers
      
       - Fix linking error for large sparc32 kernels
      
       - Fix incorrect functions signature and prototype warnings for sparc64
      
      * tag 'sparc-for-6.11-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/alarsson/linux-sparc:
        sparc64: Fix prototype warnings in hibernate.c
        sparc64: Fix prototype warning for prom_get_mmu_ihandle
        sparc64: Fix incorrect function signature and add prototype for prom_cif_init
        sparc64: Fix prototype warnings for floppy_64.h
        sparc32: Fix truncated relocation errors when linking large kernels
        sbus: add missing MODULE_DESCRIPTION() macros
      7dd894c1
    • Linus Torvalds's avatar
      Merge tag 's390-6.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 1c7d0c3a
      Linus Torvalds authored
      Pull s390 updates from Vasily Gorbik:
      
       - Remove restrictions on PAI NNPA and crypto counters, enabling
         concurrent per-task and system-wide sampling and counting events
      
       - Switch to GENERIC_CPU_DEVICES by setting up the CPU present mask in
         the architecture code and letting the generic code handle CPU
         bring-up
      
       - Add support for the diag204 busy indication facility to prevent
         undesirable blocking during hypervisor logical CPU utilization
         queries. Implement results caching
      
       - Improve the handling of Store Data SCLP events by suppressing
         unnecessary warning, preventing buffer release in I/O during
         failures, and adding timeout handling for Store Data requests to
         address potential firmware issues
      
       - Provide optimized __arch_hweight*() implementations
      
       - Remove the unnecessary CPU KOBJ_CHANGE uevents generated during
         topology updates, as they are unused and also not present on other
         architectures
      
       - Cleanup atomic_ops, optimize __atomic_set() for small values and
         __atomic_cmpxchg_bool() for compilers supporting flag output
         constraint
      
       - Couple of cleanups for KVM:
           - Move and improve KVM struct definitions for DAT tables from
             gaccess.c to a new header
           - Pass the asce as parameter to sie64a()
      
       - Make the crdte() and cspg() page table handling wrappers return a
         boolean to indicate success, like the other existing "compare and
         swap" wrappers
      
       - Add documentation for HWCAP flags
      
       - Switch to obtaining total RAM pages from memblock instead of
         totalram_pages() during mm init, to ensure correct calculation of
         zero page size, when defer_init is enabled
      
       - Refactor lowcore access and switch to using the get_lowcore()
         function instead of the S390_lowcore macro
      
       - Cleanups for PG_arch_1 and folio handling in UV and hugetlb code
      
       - Add missing MODULE_DESCRIPTION() macros
      
       - Fix VM_FAULT_HWPOISON handling in do_exception()
      
      * tag 's390-6.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (54 commits)
        s390/mm: Fix VM_FAULT_HWPOISON handling in do_exception()
        s390/kvm: Move bitfields for dat tables
        s390/entry: Pass the asce as parameter to sie64a()
        s390/sthyi: Use cached data when diag is busy
        s390/sthyi: Move diag operations
        s390/hypfs_diag: Diag204 busy loop
        s390/diag: Add busy-indication-facility requirements
        s390/diag: Diag204 add busy return errno
        s390/diag: Return errno's from diag204
        s390/sclp: Diag204 busy indication facility detection
        s390/atomic_ops: Make use of flag output constraint
        s390/atomic_ops: Improve __atomic_set() for small values
        s390/atomic_ops: Use symbolic names
        s390/smp: Switch to GENERIC_CPU_DEVICES
        s390/hwcaps: Add documentation for HWCAP flags
        s390/pgtable: Make crdte() and cspg() return a value
        s390/topology: Remove CPU KOBJ_CHANGE uevents
        s390/sclp: Add timeout to Store Data requests
        s390/sclp: Prevent release of buffer in I/O
        s390/sclp: Suppress unnecessary Store Data warning
        ...
      1c7d0c3a
    • Kent Overstreet's avatar
      lockdep: Add comments for lockdep_set_no{validate,track}_class() · a97b43fa
      Kent Overstreet authored
      Cc: Waiman Long <longman@redhat.com>
      Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
      a97b43fa
    • Kent Overstreet's avatar
      bcachefs: Fix integer overflow on trans->nr_updates · 6f719cbe
      Kent Overstreet authored
      We can't have more updates than paths, so btree_path_idx_t is the
      correct type to use.
      Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
      6f719cbe
    • Kent Overstreet's avatar
      f05a0b9c
    • Kent Overstreet's avatar
      bcachefs: Fix fsck warning about btree_trans not passed to fsck error · 2c4c17fe
      Kent Overstreet authored
      If a btree_trans is in use it's supposed to be passed to fsck_err so
      that it can be unlocked if we're waiting on userspace input; but the
      btree IO paths do call fsck errors where a btree_trans exists on the
      stack but it's not passed through.
      
      But it's ok, because it's unlocked while doing IO.
      
      Fixes: a850bde6 ("bcachefs: fsck_err() may now take a btree_trans")
      Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
      2c4c17fe
    • Kent Overstreet's avatar
      bcachefs: Add an error message for insufficient rw journal devs · f12410bb
      Kent Overstreet authored
      This causes us to go read-only - need an error message saying why.
      Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
      f12410bb
    • Tavian Barnes's avatar
      bcachefs: varint: Avoid left-shift of a negative value · ee1b8dc1
      Tavian Barnes authored
      Shifting a negative value left is undefined.
      Signed-off-by: default avatarTavian Barnes <tavianator@tavianator.com>
      Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
      ee1b8dc1
    • Linus Torvalds's avatar
      Merge tag 'x86-percpu-2024-07-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · dde1a0e1
      Linus Torvalds authored
      Pull x86 percpu updates from Ingo Molnar:
      
       - Enable the named address spaces based percpu accessors optimization
         on all GCC versions that contain this feature, detected through a
         build-time testcase.
      
         This effectively enables the feature on GCC 6, GCC 7 and GCC 8
         versions.
      
       - Fix operand constraint modifier in __raw_cpu_write()
      
       - Reorganize the per-CPU headers for better readability
      
       - Misc cleanups and fixes
      
      * tag 'x86-percpu-2024-07-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/percpu: Enable named address spaces for all capable GCC versions
        x86/percpu: Clean up <asm/percpu.h> vertical alignment details
        x86/percpu: Clean up <asm/percpu.h> a bit
        x86/percpu: Move some percpu accessors around to reduce ifdeffery
        x86/percpu: Rename percpu_stable_op() to __raw_cpu_read_stable()
        x86/percpu: Fix operand constraint modifier in __raw_cpu_write()
        x86/percpu: Introduce the __raw_cpu_read_const() macro
        x86/percpu: Unify percpu read-write accessors
        x86/percpu: Move some percpu macros around for readability
        x86/percpu: Introduce the pcpu_binary_op() macro
      dde1a0e1
    • Linus Torvalds's avatar
      Merge tag 'slab-for-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab · 76d9b92e
      Linus Torvalds authored
      Pull slab updates from Vlastimil Babka:
       "The most prominent change this time is the kmem_buckets based
        hardening of kmalloc() allocations from Kees Cook.
      
        We have also extended the kmalloc() alignment guarantees for
        non-power-of-two sizes in a way that benefits rust.
      
        The rest are various cleanups and non-critical fixups.
      
         - Dedicated bucket allocator (Kees Cook)
      
           This series [1] enhances the probabilistic defense against heap
           spraying/grooming of CONFIG_RANDOM_KMALLOC_CACHES from last year.
      
           kmalloc() users that are known to be useful for exploits can get
           completely separate set of kmalloc caches that can't be shared with
           other users. The first converted users are alloc_msg() and
           memdup_user().
      
           The hardening is enabled by CONFIG_SLAB_BUCKETS.
      
         - Extended kmalloc() alignment guarantees (Vlastimil Babka)
      
           For years now we have guaranteed natural alignment for power-of-two
           allocations, but nothing was defined for other sizes (in practice,
           we have two such buckets, kmalloc-96 and kmalloc-192).
      
           To avoid unnecessary padding in the rust layer due to its alignment
           rules, extend the guarantee so that the alignment is at least the
           largest power-of-two divisor of the requested size.
      
           This fits what rust needs, is a superset of the existing
           power-of-two guarantee, and does not in practice change the layout
           (and thus does not add overhead due to padding) of the kmalloc-96
           and kmalloc-192 caches, unless slab debugging is enabled for them.
      
         - Cleanups and non-critical fixups (Chengming Zhou, Suren
           Baghdasaryan, Matthew Willcox, Alex Shi, and Vlastimil Babka)
      
           Various tweaks related to the new alloc profiling code, folio
           conversion, debugging and more leftovers after SLAB"
      
      Link: https://lore.kernel.org/all/20240701190152.it.631-kees@kernel.org/ [1]
      
      * tag 'slab-for-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab:
        mm/memcg: alignment memcg_data define condition
        mm, slab: move prepare_slab_obj_exts_hook under CONFIG_MEM_ALLOC_PROFILING
        mm, slab: move allocation tagging code in the alloc path into a hook
        mm/util: Use dedicated slab buckets for memdup_user()
        ipc, msg: Use dedicated slab buckets for alloc_msg()
        mm/slab: Introduce kmem_buckets_create() and family
        mm/slab: Introduce kvmalloc_buckets_node() that can take kmem_buckets argument
        mm/slab: Plumb kmem_buckets into __do_kmalloc_node()
        mm/slab: Introduce kmem_buckets typedef
        slab, rust: extend kmalloc() alignment guarantees to remove Rust padding
        slab: delete useless RED_INACTIVE and RED_ACTIVE
        slab: don't put freepointer outside of object if only orig_size
        slab: make check_object() more consistent
        mm: Reduce the number of slab->folio casts
        mm, slab: don't wrap internal functions with alloc_hooks()
      76d9b92e
    • Linus Torvalds's avatar
      Merge tag 'memblock-v6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock · b2fc97c1
      Linus Torvalds authored
      Pull memblock updates from Mike Rapoport:
      
       - 'reserve_mem' command line parameter to allow creation of named
         memory reservation at boot time.
      
         The driving use-case is to improve the ability of pstore to retain
         ramoops data across reboots.
      
       - cleanups and small improvements in memblock and mm_init
      
       - new tests cases in memblock test suite
      
      * tag 'memblock-v6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock:
        memblock tests: fix implicit declaration of function 'numa_valid_node'
        memblock: Move late alloc warning down to phys alloc
        pstore/ramoops: Add ramoops.mem_name= command line option
        mm/memblock: Add "reserve_mem" to reserved named memory at boot up
        mm/mm_init.c: don't initialize page->lru again
        mm/mm_init.c: not always search next deferred_init_pfn from very beginning
        mm/mm_init.c: use deferred_init_mem_pfn_range_in_zone() to decide loop condition
        mm/mm_init.c: get the highest zone directly
        mm/mm_init.c: move nr_initialised reset down a bit
        mm/memblock: fix a typo in description of for_each_mem_region()
        mm/mm_init.c: use memblock_region_memory_base_pfn() to get startpfn
        mm/memblock: use PAGE_ALIGN_DOWN to get pgend in free_memmap
        mm/memblock: return true directly on finding overlap region
        memblock tests: add memblock_overlaps_region_checks
        mm/memblock: fix comment for memblock_isolate_range()
        memblock tests: add memblock_reserve_many_may_conflict_check()
        memblock tests: add memblock_reserve_all_locations_check()
        mm/memblock: remove empty dummy entry
      b2fc97c1
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-for-v6.11-2024-07-16' of... · 68b59730
      Linus Torvalds authored
      Merge tag 'perf-tools-for-v6.11-2024-07-16' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools
      
      Pull perf tools updates from Namhyung Kim:
       "Build:
      
         - Build each directory as a library so that depedency check for the
           python extension module can be automatic
      
         - Use pkg-config to check libtraceevent and libtracefs
      
        perf sched:
      
         - Add --task-name and --fuzzy-name options for `perf sched map`
      
           It focuses on selected tasks only by removing unrelated tasks in
           the output. It matches the task comm with the given string and the
           --fuzzy-name option allows the partial matching:
      
             $ sudo perf sched record -a sleep 1
      
             $ sudo perf sched map --task-name kworker --fuzzy-name
                .   .   .   .   -  *A0  .   .    481065.315131 secs A0 => kworker/5:2-i91:438521
                .   .   .   .   -  *-   .   .    481065.315160 secs
               *B0  .   .   .   -   .   .   .    481065.316435 secs B0 => kworker/0:0-i91:437860
               *-   .   .   .   .   .   .   .    481065.316441 secs
                .   .   .   .   .  *A0  .   .    481065.318703 secs
                .   .   .   .   .  *-   .   .    481065.318717 secs
                .   .  *C0  .   .   .   .   .    481065.320544 secs C0 => kworker/u16:30-:430186
                .   .  *-   .   .   .   .   .    481065.320555 secs
                .   .  *D0  .   .   .   .   .    481065.328524 secs D0 => kworker/2:0-kdm:429654
               *B0  .   D0  .   -   .   .   .    481065.328527 secs
               *-   .   D0  .   -   .   .   .    481065.328535 secs
                .   .  *-   .   .   .   .   .    481065.328535 secs
      
         - Fix -r/--repeat option of perf sched replay
      
           The documentation said -1 will work as infinity but it didn't
           accept the value. Update the code and document to use 0 instead
      
         - Fix perf sched timehist to account the delay time for preempted
           tasks
      
        Perf event filtering:
      
         - perf top gained filtering support on regular events using BPF like
           perf record. Previously it was able to use it for tracepoints only
      
         - The BPF filter now supports filtering by UID/GID. This should be
           preferred than -u <UID> option as it's racy to scan /proc to check
           tasks for the user and fails to open an event for the task if it's
           already gone
      
             $ sudo perf top -e cycles --filter "uid == $(id -u)"
      
        perf report:
      
         - Skip dummy events in the group output by default. The --skip-empty
           option controls display of empty events without samples. But perf
           report can force display all events in a group
      
           In this case, auto-added a dummy event (for a system-wide record)
           ends up in the output. Now it can skip those empty events even in
           the group display mode
      
           To preserve the old behavior, run this:
      
             $ perf report --group --no-skip-empty
      
        perf stat:
      
         - Choose the most disaggregate option when multiple aggregation
           options are given. It used to pick the last option in the command
           line but it can be confusing and not consistent. Now it'll choose
           the smallest unit
      
           For example, it'd aggregate the result per-core when the user gave
           both --per-socket and --per-core options at the same time
      
        Internals:
      
         - Fix `perf bench` when some CPUs are offline
      
         - Fix handling of JIT symbol mappings to accept "/tmp/perf-${PID}.map
           patterns only so that it can not be confused by other /tmp/perf-*
           files
      
         - Many improvements and fixes for `perf test`
      
        Others:
      
         - Support some new instructions for Intel-PT
      
         - Fix syscall ID mapping in perf trace
      
         - Document AMD IBS PMU usages
      
         - Change `perf lock info` to show map and thread info by default
      
        Vendor JSON events:
      
         - Update Intel events and metrics
      
         - Add i.MX9[35] DDR metrics"
      
      * tag 'perf-tools-for-v6.11-2024-07-16' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools: (125 commits)
        perf trace: Fix iteration of syscall ids in syscalltbl->entries
        perf dso: Fix address sanitizer build
        perf mem: Warn if memory events are not supported on all CPUs
        perf arm-spe: Support multiple Arm SPE PMUs
        perf build x86: Fix SC2034 error in syscalltbl.sh
        perf record: Fix memset out-of-range error
        perf sched map: Add --fuzzy-name option for fuzzy matching in task names
        perf sched map: Add support for multiple task names using CSV
        perf sched map: Add task-name option to filter the output map
        perf build: Conditionally add feature check flags for libtrace{event,fs}
        perf install: Don't propagate subdir to Documentation submake
        perf vendor events arm64:: Add i.MX95 DDR Performance Monitor metrics
        perf vendor events arm64:: Add i.MX93 DDR Performance Monitor metrics
        perf dsos: When adding a dso into sorted dsos maintain the sort order
        perf comm str: Avoid sort during insert
        perf report: Calling available function for stats printing
        perf intel-pt: Fix exclude_guest setting
        perf intel-pt: Fix aux_watermark calculation for 64-bit size
        perf sched replay: Fix -r/--repeat command line option for infinity
        perf: pmus: Remove unneeded semicolon
        ...
      68b59730
    • Linus Torvalds's avatar
      Merge tag 'trace-v6.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · f669aac3
      Linus Torvalds authored
      Pull tracing CREDITS file update from Steven Rostedt:
       "Update of MAINTAINERS and CREDITS file
      
         - Update Daniel Bristot de Oliveira's entry in MAINTAINERS with
           respect to his tracing code.
      
         - Add more credits to him in CREDITS file and move his entry to be
           alphabetical"
      
      * tag 'trace-v6.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        tracing: Update MAINTAINERS file
      f669aac3
    • Linus Torvalds's avatar
      Merge tag 'trace-tools-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · 1777e471
      Linus Torvalds authored
      Pull tracing tools updates from Steven Rostedt:
       "Trivial updates for 6.11:
      
         - Use pretty formatting only on interactive tty in rtla/osnoise
      
         - Better reporting when histogram is empty in rtla/osnoise
      
         - Use the correct library name for "libtracefs" in feature detection"
      
      * tag 'trace-tools-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        tools: build: use correct lib name for libtracefs feature detection
        rtla/osnoise: Better report when histogram is empty
        rtla/osnoise: Use pretty formatting only on interactive tty
      1777e471
    • Linus Torvalds's avatar
      Merge tag 'ftrace-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · 70045bfc
      Linus Torvalds authored
      Pull ftrace updates from Steven Rostedt:
       "Rewrite of function graph tracer to allow multiple users
      
        Up until now, the function graph tracer could only have a single user
        attached to it. If another user tried to attach to the function graph
        tracer while one was already attached, it would fail. Allowing
        function graph tracer to have more than one user has been asked for
        since 2009, but it required a rewrite to the logic to pull it off so
        it never happened. Until now!
      
        There's three systems that trace the return of a function. That is
        kretprobes, function graph tracer, and BPF. kretprobes and function
        graph tracing both do it similarly. The difference is that kretprobes
        uses a shadow stack per callback and function graph tracer creates a
        shadow stack for all tasks. The function graph tracer method makes it
        possible to trace the return of all functions. As kretprobes now needs
        that feature too, allowing it to use function graph tracer was needed.
        BPF also wants to trace the return of many probes and its method
        doesn't scale either. Having it use function graph tracer would
        improve that.
      
        By allowing function graph tracer to have multiple users allows both
        kretprobes and BPF to use function graph tracer in these cases. This
        will allow kretprobes code to be removed in the future as it's version
        will no longer be needed.
      
        Note, function graph tracer is only limited to 16 simultaneous users,
        due to shadow stack size and allocated slots"
      
      * tag 'ftrace-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace: (49 commits)
        fgraph: Use str_plural() in test_graph_storage_single()
        function_graph: Add READ_ONCE() when accessing fgraph_array[]
        ftrace: Add missing kerneldoc parameters to unregister_ftrace_direct()
        function_graph: Everyone uses HAVE_FUNCTION_GRAPH_RET_ADDR_PTR, remove it
        function_graph: Fix up ftrace_graph_ret_addr()
        function_graph: Make fgraph_update_pid_func() a stub for !DYNAMIC_FTRACE
        function_graph: Rename BYTE_NUMBER to CHAR_NUMBER in selftests
        fgraph: Remove some unused functions
        ftrace: Hide one more entry in stack trace when ftrace_pid is enabled
        function_graph: Do not update pid func if CONFIG_DYNAMIC_FTRACE not enabled
        function_graph: Make fgraph_do_direct static key static
        ftrace: Fix prototypes for ftrace_startup/shutdown_subops()
        ftrace: Assign RCU list variable with rcu_assign_ptr()
        ftrace: Assign ftrace_list_end to ftrace_ops_list type cast to RCU
        ftrace: Declare function_trace_op in header to quiet sparse warning
        ftrace: Add comments to ftrace_hash_move() and friends
        ftrace: Convert "inc" parameter to bool in ftrace_hash_rec_update_modify()
        ftrace: Add comments to ftrace_hash_rec_disable/enable()
        ftrace: Remove "filter_hash" parameter from __ftrace_hash_rec_update()
        ftrace: Rename dup_hash() and comment it
        ...
      70045bfc
    • Linus Torvalds's avatar
      Merge tag 'trace-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · 2fd4130e
      Linus Torvalds authored
      Pull tracing updates from Steven Rostedt:
       "Trivial updates for 6.11:
      
         - Set rtla/osnoise default threshold to 1us from 5us
      
           The 5us default was missing noise that people cared about. Changing
           it to 1us makes it work as expected.
      
         - Restructure how sched_switch prev_comm and next_comm was being saved
      
           The prev_comm was being saved along with the other next fields, and
           the next_comm was being saved along with the other prev fields.
           This is just a cosmetic change.
      
         - Have the allocation of pid_list use GFP_NOWAIT instead of GFP_KERNEL
      
           The allocation can happen in irq_work context, but luckily, the
           size was by default so large, it was never triggered. But in case
           it ever is, use the NOWAIT allocation in the interrupt context.
      
         - Fix some kernel doc errors"
      
      * tag 'trace-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        trace/pid_list: Change gfp flags in pid_list_fill_irq()
        tracing/sched: sched_switch: place prev_comm and next_comm in right order
        rtla/osnoise: set the default threshold to 1us
        tracing: Fix trace_pid_list_free() kernel-doc
      2fd4130e
    • Linus Torvalds's avatar
      Merge tag 'bootconfig-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · db2451e7
      Linus Torvalds authored
      Pull bootconfig update from Masami Hiramatsu:
      
       - Remove duplicate included header file linux/bootconfig.h from
         lib/bootconfig.c. This is a cleanup, no behavior change.
      
      * tag 'bootconfig-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        bootconfig: Remove duplicate included header file linux/bootconfig.h
      db2451e7
    • Linus Torvalds's avatar
      Merge tag 'probes-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · 91bd008d
      Linus Torvalds authored
      Pull probes updates from Masami Hiramatsu:
       "Uprobes:
      
         - x86/shstk: Make return uprobe work with shadow stack
      
         - Add uretprobe syscall which speeds up the uretprobe 10-30% faster.
           This syscall is automatically used from user-space trampolines
           which are generated by the uretprobe. If this syscall is used by
           normal user program, it will cause SIGILL. Note that this is
           currently only implemented on x86_64.
      
           (This also has two fixes for adjusting the syscall number to avoid
           conflict with new *attrat syscalls.)
      
         - uprobes/perf: fix user stack traces in the presence of pending
           uretprobe. This corrects the uretprobe's trampoline address in the
           stacktrace with correct return address
      
         - selftests/x86: Add a return uprobe with shadow stack test
      
         - selftests/bpf: Add uretprobe syscall related tests.
            - test case for register integrity check
            - test case with register changing case
            - test case for uretprobe syscall without uprobes (expected to fail)
            - test case for uretprobe with shadow stack
      
         - selftests/bpf: add test validating uprobe/uretprobe stack traces
      
         - MAINTAINERS: Add uprobes entry. This does not specify the tree but
           to clarify who maintains and reviews the uprobes
      
        Kprobes:
      
         - tracing/kprobes: Test case cleanups.
      
           Replace redundant WARN_ON_ONCE() + pr_warn() with WARN_ONCE() and
           remove unnecessary code from selftest
      
         - tracing/kprobes: Add symbol counting check when module loads.
      
           This checks the uniqueness of the probed symbol on modules. The
           same check has already done for kernel symbols
      
           (This also has a fix for build error with CONFIG_MODULES=n)
      
        Cleanup:
      
         - Add MODULE_DESCRIPTION() macros for fprobe and kprobe examples"
      
      * tag 'probes-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        MAINTAINERS: Add uprobes entry
        selftests/bpf: Change uretprobe syscall number in uprobe_syscall test
        uprobe: Change uretprobe syscall scope and number
        tracing/kprobes: Fix build error when find_module() is not available
        tracing/kprobes: Add symbol counting check when module loads
        selftests/bpf: add test validating uprobe/uretprobe stack traces
        perf,uprobes: fix user stack traces in the presence of pending uretprobes
        tracing/kprobe: Remove cleanup code unrelated to selftest
        tracing/kprobe: Integrate test warnings into WARN_ONCE
        selftests/bpf: Add uretprobe shadow stack test
        selftests/bpf: Add uretprobe syscall call from user space test
        selftests/bpf: Add uretprobe syscall test for regs changes
        selftests/bpf: Add uretprobe syscall test for regs integrity
        selftests/x86: Add return uprobe shadow stack test
        uprobe: Add uretprobe syscall to speed up return probe
        uprobe: Wire up uretprobe system call
        x86/shstk: Make return uprobe work with shadow stack
        samples: kprobes: add missing MODULE_DESCRIPTION() macros
        fprobe: add missing MODULE_DESCRIPTION() macro
      91bd008d
    • Linus Torvalds's avatar
      Merge tag 'fbdev-for-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev · cb273eb7
      Linus Torvalds authored
      Pull fbdev updates from Helge Deller:
      
       - Detect VGA compatibility from VESA attributes (Thomas Zimmermann)
      
       - Make I2C terminology more inclusive in smscufx and viafb (Easwar
         Hariharan)
      
       - Add lots of missing MODULE_DESCRIPTION() macros (Jeff Johnson)
      
       - Logo code cleanups (Geert Uytterhoeven)
      
       - Minor fixes by Chen Ni, Kuninori Morimoto, Uwe Kleine-König and
         Christophe Jaillett
      
      * tag 'fbdev-for-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev: (21 commits)
        fbdev: viafb: Make I2C terminology more inclusive
        fbdev: smscufx: Make I2C terminology more inclusive
        fbdev: omap2: Return clk_prepare_enable to transfer the error
        fbdev: mmp: Constify struct mmp_overlay_ops
        fbdev: Drop explicit initialization of struct i2c_device_id::driver_data to 0
        video: agp: add remaining missing MODULE_DESCRIPTION() macros
        video: console: add missing MODULE_DESCRIPTION() macros
        fbdev: amifb: add missing MODULE_DESCRIPTION() macro
        fbdev: c2p_planar: add missing MODULE_DESCRIPTION() macro
        fbdev: vesafb: Detect VGA compatibility from screen info's VESA attributes
        fbdev: omapfb: use of_graph_get_remote_port()
        fbdev: omapdss: use for_each_endpoint_of_node()
        fbdev: offb: add missing MODULE_DESCRIPTION() macro
        fbdev: vfb: add missing MODULE_DESCRIPTION() macro
        fbdev: macmodes: add missing MODULE_DESCRIPTION() macro
        fbdev: goldfishfb: add missing MODULE_DESCRIPTION() macro
        fbdev: kyro: add missing MODULE_DESCRIPTION() macro
        fbdev: viafb: add missing MODULE_DESCRIPTION() macro
        fbdev: matroxfb: add missing MODULE_DESCRIPTION() macros
        video/logo: Remove linux_serial_image comments
        ...
      cb273eb7
    • Manivannan Sadhasivam's avatar
      PCI: Check for the existence of 'dev.of_node' before calling of_platform_populate() · 24777bac
      Manivannan Sadhasivam authored
      Commit 50b040ef ("PCI/pwrctl: only call of_platform_populate() if
      CONFIG_OF is enabled") added the CONFIG_OF guard for the
      of_platform_populate() API.  But it missed the fact that the CONFIG_OF
      platforms can also run on ACPI without devicetree (so dev.of_node will
      be NULL).  In those cases, of_platform_populate() will fail with below
      error messages as seen on the Ampere Altra box:
      
        pci 000c:00:01.0: failed to populate child OF nodes (-22)
        pci 000c:00:02.0: failed to populate child OF nodes (-22)
      
      Fix this by checking for the existence of 'dev.of_node' before calling
      the of_platform_populate() API.  This also warrants the removal of
      CONFIG_OF check, since dev_of_node() helper will return NULL if
      CONFIG_OF is not enabled.
      
      While at it, let's also use dev_of_node() to pass device OF node pointer
      to of_platform_populate().
      
      Fixes: 50b040ef ("PCI/pwrctl: only call of_platform_populate() if CONFIG_OF is enabled")
      Reported-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Closes: https://lore.kernel.org/linux-arm-msm/CAHk-=wjcO_9dkNf-bNda6bzykb5ZXWtAYA97p7oDsXPHmMRi6g@mail.gmail.comReviewed-by: default avatarBartosz Golaszewski <bartosz.golaszewski@linaro.org>
      Signed-off-by: default avatarManivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      24777bac
    • Mark Rutland's avatar
      init/Kconfig: remove CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND · f2f6a8e8
      Mark Rutland authored
      Several versions of GCC mis-compile asm goto with outputs. We try to
      workaround this, but our workaround is demonstrably incomplete and
      liable to result in subtle bugs, especially on arm64 where get_user()
      has recently been moved over to using asm goto with outputs.
      
      From discussion(s) with Linus at:
      
        https://lore.kernel.org/linux-arm-kernel/Zpfv2tnlQ-gOLGac@J2N7QTR9R3.cambridge.arm.com/
        https://lore.kernel.org/linux-arm-kernel/ZpfxLrJAOF2YNqCk@J2N7QTR9R3.cambridge.arm.com/
      
      ... it sounds like the best thing to do for now is to remove the
      workaround and make CC_HAS_ASM_GOTO_OUTPUT depend on working compiler
      versions.
      
      The issue was originally reported to GCC by Sean Christopherson:
      
        https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113921
      
      ... and Jakub Jelinek fixed this for GCC 14, with the fix backported to
      13.3.0, 12.4.0, and 11.5.0.
      
      In the kernel, we tried to workaround broken compilers in commits:
      
        4356e9f8 ("work around gcc bugs with 'asm goto' with outputs")
        68fb3ca0 ("update workarounds for gcc "asm goto" issue")
      
      ... but the workaround of adding an empty asm("") after the asm volatile
      goto(...) demonstrably does not always avoid the problem, as can be seen
      in the following test case:
      
      | #define asm_goto_output(x...) \
      |         do { asm volatile goto(x); asm (""); } while (0)
      |
      | #define __good_or_bad(__val, __key)                                     \
      | do {                                                                    \
      |         __label__ __failed;                                             \
      |         unsigned long __tmp;                                            \
      |         asm_goto_output(                                                \
      |         "       cbnz    %[key], %l[__failed]\n"                         \
      |         "       mov     %[val], #0x900d\n"                              \
      |         : [val] "=r" (__tmp)                                            \
      |         : [key] "r" (__key)                                             \
      |         :                                                               \
      |         : __failed);                                                    \
      |         (__val) = __tmp;                                                \
      |         break;                                                          \
      | __failed:                                                               \
      |         (__val) = 0xbad;                                                \
      | } while (0)
      |
      | unsigned long get_val(unsigned long key);
      | unsigned long get_val(unsigned long key)
      | {
      |         unsigned long val = 0xbad;
      |
      |         __good_or_bad(val, key);
      |
      |         return val;
      | }
      
      GCC 13.2.0 (at -O2) compiles this to:
      
      | 	cbnz    x0, .Lfailed
      | 	mov     x0, #0x900d
      | .Lfailed:
      | 	ret
      
      GCC 14.1.0 (at -O2) compiles this to:
      
      | 	cbnz    x0, .Lfailed
      | 	mov     x0, #0x900d
      | 	ret
      | .Lfailed:
      | 	mov     x0, #0xbad
      | 	ret
      
      Note that GCC 13.2.0 erroneously omits the assignment to 'val' in the
      error path (even though this does not depend on an output of the asm
      goto). GCC 14.1.0 correctly retains the assignment.
      
      This problem can be seen within the kernel with the following test case:
      
      | #include <linux/uaccess.h>
      | #include <linux/types.h>
      |
      | noinline unsigned long test_unsafe_get_user(unsigned long __user *ptr);
      | noinline unsigned long test_unsafe_get_user(unsigned long __user *ptr)
      | {
      |         unsigned long val;
      |
      |         unsafe_get_user(val, ptr, Efault);
      |         return val;
      |
      | Efault:
      |         val = 0x900d;
      |         return val;
      | }
      
      GCC 13.2.0 (arm64 defconfig) compiles this to:
      
      |         and     x0, x0, #0xff7fffffffffffff
      |         ldtr    x0, [x0]
      | .Lextable_fixup:
      |         ret
      
      GCC 13.2.0 (x86_64 defconfig + MITIGATION_RETPOLINE=n) compiles this to:
      
      |         endbr64
      |         mov    (%rdi),%rax
      | .Lextable_fixup:
      |         ret
      
      ... omitting the assignment to 'val' in the error path, and leaving
      garbage in the result register returned by the function (which happens
      to contain the faulting address in the generated code).
      
      GCC 14.1.0 (arm64 defconfig) compiles this to:
      
      |         and     x0, x0, #0xff7fffffffffffff
      |         ldtr    x0, [x0]
      |         ret
      | .Lextable_fixup:
      |         mov     x0, #0x900d                     // #36877
      |         ret
      
      GCC 14.1.0 (x86_64 defconfig + MITIGATION_RETPOLINE=n) compiles this to:
      
      |         endbr64
      |         mov    (%rdi),%rax
      |         ret
      | .Lextable_fixup:
      |         mov    $0x900d,%eax
      |         ret
      
      ... retaining the expected assignment to 'val' in the error path.
      
      We don't have a complete and reasonable workaround. While placing empty
      asm("") blocks after each goto label *might* be sufficient, we don't
      know for certain, this is tedious and error-prone, and there doesn't
      seem to be a neat way to wrap this up (which is especially painful for
      cases with multiple goto labels).
      
      Avoid this issue by disabling CONFIG_CC_HAS_ASM_GOTO_OUTPUT for
      known-broken compiler versions and removing the workaround (along with
      the CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND config option).
      
      For the moment I've left the default implementation of asm_goto_output()
      unchanged. This should now be redundant since any compiler with the fix
      for the clobbering issue whould also have a fix for the (earlier)
      volatile issue, but it's far less churny to leave it around, which makes
      it easier to backport this patch if necessary.
      Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
      Cc: Alex Coplan <alex.coplan@arm.com>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Jakub Jelinek <jakub@gcc.gnu.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Sean Christopherson <seanjc@google.com>
      Cc: Szabolcs Nagy <szabolcs.nagy@arm.com>
      Cc: Will Deacon <will@kernel.org>
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f2f6a8e8
    • Masahiro Yamada's avatar
      kbuild: fix rebuild of generic syscall headers · 49208b67
      Masahiro Yamada authored
      Commit fbb5c060 ("kbuild: add syscall table generation to
      scripts/Makefile.asm-headers") started to generate syscall headers
      for architectures using generic syscalls.
      
      However, these headers are always rebuilt using GNU Make 4.4.1 or newer.
      
      When using GNU Make 4.4 or older, these headers are not rebuilt when the
      command to generate them is changed, despite the use of the if_changed
      macro.
      
      scripts/Makefile.asm-headers now uses FORCE, but it is not marked as
      .PHONY. To handle the command line change correctly, .*.cmd files must
      be included.
      
      Fixes: fbb5c060 ("kbuild: add syscall table generation to scripts/Makefile.asm-headers")
      Reported-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Closes: https://lore.kernel.org/lkml/CAHk-=wibB7SvXnUftBgAt+4-3vEKRpvEgBeDEH=i=j2GvDitoA@mail.gmail.com/Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      Tested-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      49208b67
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2024-07-18' of https://gitlab.freedesktop.org/drm/kernel · b3ce7a30
      Linus Torvalds authored
      Pull drm updates from Dave Airlie:
       "There's a lot of stuff in here, amd, i915 and xe have new platform
        work, lots of core rework around EDID handling, some new COMPILE_TEST
        options, maintainer changes and a lots of other stuff. Summary:
      
        core:
         - deprecate DRM data and return 0 date
         - connector: Create a set of helpers to help with HDMI support
         - Remove driver owner assignments
         - Allow more drivers to compile with COMPILE_TEST
         - Conversions to drm_edid
         - Sprinkle MODULE_DESCRIPTIONS everywhere they are missing
         - Remove drm_mm_replace_node
         - print: Add a drm prefix to warn level messages too, remove
                  ___drm_dbg, consolidate prefix handling
         - New monochrome TV mode variant
      
        ttm:
         - improve number of page faults on some platforms
         - fix test builds under PREEMPT_RT
         - more test coverage
      
        ci:
         - Require a more recent version of mesa
         - improve farm setup and test generation
      
        dma-buf:
         - warn if reserving 0 fence slots
         - internal API heap enhancements
      
        fbdev:
         - Create memory manager optimized fbdev emulation
      
        panic:
         - Allow to select fonts
         - improve drm_fb_dma_get_scanout_buffer
         - Allow to dump kmsg to the screen
      
        bridge:
         - Remove redundant checks on bridge->encoder
         - Remove drm_bridge_chain_mode_fixup
         - bridge-connector: Plumb in the new HDMI helper
         - analogix_dp: Various improvements, handle AUX transfers timeout
         - samsung-dsim: Fix timings calculation
         - tc358767: Plenty of small fixes, fix no connector attach, fix
                     clocks
         - sii902x: state validation improvements
      
        panels:
         - Switch panels from register table initialization to proper code
         - Now that the panel code tracks the panel state, remove every ad-hoc
           implementation in the panel drivers
         - More cleanup of prepare / enable state tracking in drivers
         - edp: Drop legacy panel compatibles
         - simple-bridge: Switch to devm_drm_bridge_add
         - New panels: Lincoln Tech Sol LCD185-101CT, Microtips Technology
                       13-101HIEBCAF0-C, Microtips Technology MF-103HIEB0GA0,
                       BOE nv110wum-l60, IVO t109nw41, WL-355608-A8, PrimeView
                       PM070WL4, Lincoln Technologies LCD197, Ortustech
                       COM35H3P70ULC, AUO G104STN01, K&d kd101ne3-40ti
      
        amdgpu:
         - DCN 4.0.x support
         - GC 12.0 support
         - GMC 12.0 support
         - SDMA 7.0 support
         - MES12 support
         - MMHUB 4.1 support
         - GFX12 modifier and DCC support
         - lots of IP fixes/updates
      
        amdkfd:
         - Contiguous VRAM allocations
         - GC 12.0 support
         - SDMA 7.0 support
         - SR-IOV fixes
         - KFD GFX ALU exceptions
      
        i915:
         - Battlemage Xe2 HPD display enablement
         - Panel Replay enabling
         - DP AUX-less ALPM/LOBF
         - Enable link training failure fallback for DP MST links
         - CMRR (Content Match Refresh Rate) enabling
         - Increase ADL-S/ADL-P/DG2+ max TMDS bitrate to 6 Gbps
         - Enable eDP AUX based HDR backlight
         - Support replaying GPU hangs with captured context image
         - Automate CCS Mode setting during engine resets
         - lots of refactoring
         - Support replaying GPU hangs with captured context image
         - Increase FLR timeout from 3s to 9s
         - Enable w/a 16021333562 for DG2, MTL and ARL [guc]
      
        xe:
         - update MAINATINERS
         - New uapi adding OA functionality to Xe
         - expose l3 bank mask
         - fix display detect on ADL-N
         - runtime PM Fixes
         - Fix silent backmerge issues
         - More prep for SR-IOV
         - HWmon additions
         - per client usage info
         - Rework GPU page fault handling
         - Drop EXEC_QUEUE_FLAG_BANNED
         - Add BMG PCI IDs
         - Scheduler fixes and improvements
         - Rename xe_exec_queue::compute to xe_exec_queue::lr
         - Use ttm_uncached for BO with NEEDS_UC flag
         - Rename xe perf layer as xe observation layer
         - lots of refactoring
      
        radeon:
         - Backlight workaround for iMac
         - Silence UBSAN flex array warnings
      
        msm:
         - Validate registers XML description against schema in CI
         - core/dpu: SM7150 support
         - mdp5: Add support for MSM8937
         - gpu: Add param for userspace to know if raytracing is supported
         - gpu: X185 support (aka gpu in X1 laptop chips)
         - gpu: a505 support
      
        ivpu:
         - hardware scheduler support
         - profiling support
         - improvements to the platform support layer
         - firmware handling improvements
         - clocks/power mgmt improvements
         - scheduler/logging improvements
      
        habanalabs:
         - Gradual sleep in polling memory macro
         - Reduce Gaudi2 MSI-X interrupt count to 128
         - Add Gaudi2-D revision support
         - Add timestamp to CPLD info
         - Gaudi2: Assume hard-reset by firmware upon MC SEI severe error
         - Align Gaudi2 interrupt names
         - Check for errors after preboot is ready
         - Change habanalabs maintainer and git repo path
      
        mgag200:
         - refactoring and improvements
         - Add BMC output
         - enable polling
      
        nouveau:
         - add registry command line
      
        v3d:
         - perf counters improvements
      
        zynqmp:
         - irq and debugfs improvements
      
        atmel-hlcdc:
         - Support XLCDC in sam9x7
      
        mipi-dbi:
         - Remove mipi_dbi_machine_little_endian
         - make SPI bits per word configurable
         - support RGB888
         - allow pixel formats to be specified in the DT
      
        sun4i:
         - Rework the blender setup for DE2
      
        panfrost:
         - Enable MT8188 support
      
        vc4:
         - Monochrome TV support
      
        exynos:
         - fix fallback mode regression
         - fix memory leak
         - Use drm_edid_duplicate() instead of kmemdup()
      
        etnaviv:
         - fix i.MX8MP NPU clock gating
         - workaround FE register cdc issues on some cores
         - fix DMA sync handling for cached buffers
         - fix job timeout handling
         - keep TS enabled on MMUv2 cores for improved performance
      
        mediatek:
         - Convert to platform remove callback returning void-
         - Drop chain_mode_fixup call in mode_valid()
         - Fixes the errors of MediaTek display driver found by IGT
         - Add display support for the MT8365-EVK board
         - Fix bit depth overwritten for mtk_ovl_set bit_depth()
         - Fix possible_crtcs calculation
         - Fix spurious kfree()
      
        ast:
         - refactor mode setting code
      
        stm:
         - Add LVDS support
         - DSI PHY updates"
      
      * tag 'drm-next-2024-07-18' of https://gitlab.freedesktop.org/drm/kernel: (2501 commits)
        drm/amdgpu/mes12: add missing opcode string
        drm/amdgpu/mes11: update opcode strings
        Revert "drm/amd/display: Reset freesync config before update new state"
        drm/omap: Restrict compile testing to PAGE_SIZE less than 64KB
        drm/xe: Drop trace_xe_hw_fence_free
        drm/xe/uapi: Rename xe perf layer as xe observation layer
        drm/amdgpu: remove exp hw support check for gfx12
        drm/amdgpu: timely save bad pages to eeprom after gpu ras reset is completed
        drm/amdgpu: flush all cached ras bad pages to eeprom
        drm/amdgpu: select compute ME engines dynamically
        drm/amd/display: Allow display DCC for DCN401
        drm/amdgpu: select compute ME engines dynamically
        drm/amdgpu/job: Replace DRM_INFO/ERROR logging
        drm/amdgpu: select compute ME engines dynamically
        drm/amd/pm: Ignore initial value in smu response register
        drm/amdgpu: Initialize VF partition mode
        drm/amd/amdgpu: fix SDMA IRQ client ID <-> req mapping
        MAINTAINERS: fix Xinhui's name
        MAINTAINERS: update powerplay and swsmu
        drm/qxl: Pin buffer objects for internal mappings
        ...
      b3ce7a30
    • Benjamin Coddington's avatar
      SUNRPC: Fixup gss_status tracepoint error output · b9fae9f0
      Benjamin Coddington authored
      The GSS routine errors are values, not flags.
      
      Fixes: 0c77668d ("SUNRPC: Introduce trace points in rpc_auth_gss.ko")
      Signed-off-by: default avatarBenjamin Coddington <bcodding@redhat.com>
      Reviewed-by: default avatarChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: default avatarAnna Schumaker <Anna.Schumaker@Netapp.com>
      b9fae9f0
    • Benjamin Coddington's avatar
      SUNRPC: Fix a race to wake a sync task · ed0172af
      Benjamin Coddington authored
      We've observed NFS clients with sync tasks sleeping in __rpc_execute
      waiting on RPC_TASK_QUEUED that have not responded to a wake-up from
      rpc_make_runnable().  I suspect this problem usually goes unnoticed,
      because on a busy client the task will eventually be re-awoken by another
      task completion or xprt event.  However, if the state manager is draining
      the slot table, a sync task missing a wake-up can result in a hung client.
      
      We've been able to prove that the waker in rpc_make_runnable() successfully
      calls wake_up_bit() (ie- there's no race to tk_runstate), but the
      wake_up_bit() call fails to wake the waiter.  I suspect the waker is
      missing the load of the bit's wait_queue_head, so waitqueue_active() is
      false.  There are some very helpful comments about this problem above
      wake_up_bit(), prepare_to_wait(), and waitqueue_active().
      
      Fix this by inserting smp_mb__after_atomic() before the wake_up_bit(),
      which pairs with prepare_to_wait() calling set_current_state().
      Signed-off-by: default avatarBenjamin Coddington <bcodding@redhat.com>
      Reviewed-by: default avatarJeff Layton <jlayton@kernel.org>
      Signed-off-by: default avatarAnna Schumaker <Anna.Schumaker@Netapp.com>
      ed0172af
    • Christian Brauner's avatar
      nsfs: use cleanup guard · 280e36f0
      Christian Brauner authored
      Ensure that rcu read lock is given up before returning.
      
      Link: https://lore.kernel.org/r/20240716-elixier-fliesen-1ab342151a61@brauner
      Fixes: ca567df7 ("nsfs: add pid translation ioctls")
      Reported-by: syzbot+a3e82ae343b26b4d2335@syzkaller.appspotmail.com
      Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
      280e36f0
    • Jeff Johnson's avatar
      fs/adfs: add MODULE_DESCRIPTION · 400e4064
      Jeff Johnson authored
      Fix the 'make W=1' issue:
      WARNING: modpost: missing MODULE_DESCRIPTION() in fs/adfs/adfs.o
      Signed-off-by: default avatarJeff Johnson <quic_jjohnson@quicinc.com>
      Link: https://lore.kernel.org/r/20240523-md-adfs-v1-1-364268e38370@quicinc.comSigned-off-by: default avatarChristian Brauner <brauner@kernel.org>
      400e4064
    • Linus Torvalds's avatar
      Merge tag 'media/v6.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · b1bc554e
      Linus Torvalds authored
      Pull media updates from Mauro Carvalho Chehab:
      
       - New sensor drivers: gc05a2, gc08a3 and imx283
      
       - New serializer/deserializer drivers: max96714 and max96717
      
       - New JPEG encoder driver: e5010
      
       - Support for Raspberry Pi PiSP Backend (BE) ISP driver
      
       - Old documentation for av7110 driver removed, as a new version was
         added as Documentation/userspace-api/media/dvb/legacy*.rst
      
       - atompisp: Linux firmwares are now available, so drop firmware-related
         task from TODO and update firmware logic
      
       - The imx258 driver has gained several improvements
      
       - wave5 driver has gained support for HEVC decoding
      
       - em28xx gained support for MyGica UTV3
      
       - av7110 budget-patch driver removed
      
       - Lots of other cleanups, improvements and fixes
      
      * tag 'media/v6.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (301 commits)
        media: raspberrypi: Switch to remove_new
        media: uapi: pisp_be_config: Add extra config fields
        media: uapi: pisp_be_config: Re-sort pisp_be_tiles_config
        media: uapi: pisp_common: Capitalize all macros
        media: uapi: pisp_common: Add 32 bpp format test
        media: uapi: pisp_be_config: Drop BIT() from uAPI
        media: stm32: dcmipp: correct error handling in dcmipp_create_subdevs
        media: atomisp: Fix spelling mistakes in sh_css_sp.c
        media: atomisp: Fix spelling mistake in ia_css_debug.c
        media: atomisp: Fix spelling mistake in hmm_bo.c
        media: atomisp: Fix spelling mistake in ia_css_eed1_8.host.c
        media: atomisp: Fix spelling mistake in sh_css_internal.h
        media: atomisp: Fix spelling mistake "pipline" -> "pipeline"
        media: atomisp: Remove unused GPIO related defines and APIs
        media: atomisp: Replace COMPILATION_ERROR_IF() by static_assert()
        media: atomisp: Clean up unused macros from math_support.h
        media: atomisp: csi2-bridge: Add DMI quirk for OV5693 on Xiaomi Mipad2
        media: atomisp: Update TODO
        media: atomisp: Prefix firmware paths with "intel/ipu/"
        media: atomisp: Remove firmware_name module parameter
        ...
      b1bc554e
    • Linus Torvalds's avatar
      Merge tag 'devicetree-for-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · 0ffb8a4c
      Linus Torvalds authored
      Pull devicetree updates from Rob Herring:
       "DT Bindings:
      
         - Convert and add a bunch of IBM FSI related bindings
      
         - Add a new schema listing legacy compatibles which will (probably)
           never be documented. This will silence various checks warning about
           them.
      
         - Add bindings for Sierra Wireless mangOH Green SPI IoT interface,
           new Arm 2024 Cortex and Neoverse CPUs, QCom sc8180x PDC, QCom SDX75
           GPI DMA, imx8mp/imx8qxp fsl,irqsteer, and Renesas RZ/G2UL CRU and
           CSI-2 blocks
      
         - Convert Spreadtrum sprd-timer, FSL cpm_qe, FSL fsl,ls-scfg-msi, FSL
           q(b)man-*, FSL qoriq-mc, and img,pdc-wdt bindings to DT schema
      
         - Drop obsolete stericsson,abx500.txt
      
        DT core:
      
         - Update dtc to upstream version v1.7.0-93-g1df7b047fe43
      
         - Add support to run DT validation on DTs with applied overlays
      
         - Add helper for creating boolean properties in dynamic nodes and use
           that for dynamic PCI nodes
      
         - Clean-up early parsing of '#{address,size}-cells'"
      
      * tag 'devicetree-for-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (39 commits)
        dt-bindings: timer: sprd-timer: convert to YAML
        dt-bindings: incomplete-devices: document devices without bindings
        dt-bindings: trivial-devices: document the Sierra Wireless mangOH Green SPI IoT interface
        scripts/dtc: Update to upstream version v1.7.0-93-g1df7b047fe43
        dt-bindings: soc: fsl: Add fsl,ls1028a-reset for reset syscon node
        dt-bindings: soc: fsl: cpm_qe: convert to yaml format
        dt-bindings: i2c: i2c-fsi: Convert to json-schema
        dt-bindings: fsi: Document the FSI Hub Controller
        dt-bindings: fsi: Document the AST2700 FSI controller
        dt-bindings: fsi: ast2600-fsi-master: Convert to json-schema
        dt-bindings: fsi: ibm,i2cr-fsi-master: Reference common FSI controller
        dt-bindings: fsi: Document the FSI controller common properties
        dt-bindings: fsi: Document the IBM SBEFIFO engine
        dt-bindings: fsi: p9-occ: Convert to json-schema
        dt-bindings: fsi: Document the IBM SCOM engine
        dt-bindings: fsi: fsi2spi: Document SPI controller child nodes
        dt-bindings: interrupt-controller: convert fsl,ls-scfg-msi to yaml
        dt-bindings: soc: fsl: Convert q(b)man-* to yaml format
        dt-bindings: misc: fsl,qoriq-mc: convert to yaml format
        dt-bindings: drop stale Anson Huang from maintainers
        ...
      0ffb8a4c
    • Linus Torvalds's avatar
      Merge tag 'for-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/pateldipen1984/linux · 5b9ac6c2
      Linus Torvalds authored
      Pull hardware timestamp update from Dipen Patel:
      
       - Add module description in hte test to silence modpost warnings
      
      * tag 'for-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/pateldipen1984/linux:
        hte: tegra-194: add missing MODULE_DESCRIPTION() macro
      5b9ac6c2
    • Linus Torvalds's avatar
      Merge tag 'leds-next-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/leds · fea17683
      Linus Torvalds authored
      Pull LED updates from Lee Jones:
       "Core Frameworks:
         - New trigger for Input Events
         - New led_mc_set_brightness() call to adapt colour/brightness for
           mutli-colour LEDs
         - New lled_mc_trigger_event() call to call the above based on given
           trigger conditions
         - New led_get_color_name() call, a wrapper around the existing
           led_colors[] array
         - A new flag to avoid automatic renaming of LED devices
      
        New Drivers:
         - Silergy SY7802 Flash LED Controller
         - Texas Instruments LP5569 LED Controller
         - ChromeOS EC LED Controller
      
        New Device Support:
         - KTD202{6,7} support for Kinetic KTD2026/7 LEDs
      
        Fix-ups:
         - Replace ACPI/DT firmware helpers with agnostic variants
         - Make use of resource managed devm_* API calls
         - Device Tree binding adaptions/conversions/creation
         - Constify/staticise applicable data structures
         - Trivial; spelling, whitespace, coding-style adaptions
         - Drop i2c_device_id::driver_data where the value is unused
         - Utilise centrally provided helpers and macros to aid simplicity and
           avoid duplication
         - Use generic platform device properties instead of OF/ACPI specific
           ones
         - Consolidate/de-duplicate various functionality
         - Remove superfluous/duplicated/unused sections
         - Make use of the new *_scoped() guard APIs
         - Improve/simplify error handling
      
        Bug Fixes:
         - Flush pending brightness changes before activating the trigger
         - Repair incorrect device naming preventing matches
         - Prevent memory leaks by correctly free resources during error
           handling routines
         - Repair locking issue causing circular dependency splats and
           lock-ups
         - Unregister sysfs entries before deactivating triggers to prevent
           use-after issues
         - Supply a bunch of MODULE_DESCRIPTIONs to silence modpost warnings
         - Use correct return codes expected by the callers
         - Omit set_brightness() error message for a LEDs that support only HW
           triggers"
      
      * tag 'leds-next-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/leds: (65 commits)
        leds: leds-lp5569: Enable chip after chip configuration
        leds: leds-lp5569: Better handle enabling clock internal setting
        leds: leds-lp5569: Fix typo in driver name
        leds: flash: leds-qcom-flash: Test the correct variable in init
        leds: leds-lp55xx: Convert mutex lock/unlock to guard API
        leds: leds-lp5523: Convert to sysfs_emit API
        leds: leds-lp5569: Convert to sysfs_emit API
        Revert "leds: led-core: Fix refcount leak in of_led_get()"
        leds: leds-lp5569: Add support for Texas Instruments LP5569
        leds: leds-lp55xx: Drop deprecated defines
        leds: leds-lp55xx: Support ENGINE program up to 128 bytes
        leds: leds-lp55xx: Generalize sysfs master_fader
        leds: leds-lp55xx: Generalize sysfs engine_leds
        leds: leds-lp55xx: Generalize sysfs engine_load and engine_mode
        leds: leds-lp55xx: Generalize stop_engine function
        leds: leds-lp55xx: Generalize turn_off_channels function
        leds: leds-lp55xx: Generalize set_led_current function
        leds: leds-lp55xx: Generalize multicolor_brightness function
        leds: leds-lp55xx: Generalize led_brightness function
        leds: leds-lp55xx: Generalize firmware_loaded function
        ...
      fea17683
    • Linus Torvalds's avatar
      Merge tag 'backlight-next-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight · e0d97b04
      Linus Torvalds authored
      Pull backlight updates from Lee Jones:
       "New Drivers:
         - Texas Instruments LM3509 Backlight Driver
      
        Fix-ups:
         - Device Tree binding adaptions/conversions/creation
         - Drop i2c_device_id::driver_data where the value is unused
         - Make use of the new *_scoped() guard APIs
         - Decouple from fbdev by providing Backlight with its own
           BACKLIGHT_POWER_* constrains
      
        Bug Fixes:
         - Correctly assess return values (NULL vs IS_ERR())
         - Supply a bunch of MODULE_DESCRIPTIONs to silence modpost warnings"
      
      * tag 'backlight-next-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight: (23 commits)
        backlight: sky81452-backlight: Use backlight power constants
        backlight: rave-sp-backlight: Use backlight power constants
        backlight: pwm-backlight: Use backlight power constants
        backlight: pcf50633-backlight: Use backlight power constants
        backlight: pandora-backlight: Use backlight power constants
        backlight: mp3309c: Use backlight power constants
        backlight: lm3533-backlight: Use backlight power constants
        backlight: led-backlight: Use backlight power constants
        backlight: ktd253-backlight: Use backlight power constants
        backlight: kb3886-bl: Use backlight power constants
        backlight: journada_bl: Use backlight power constants
        backlight: ipaq-micro-backlight: Use backlight power constants
        backlight: gpio-backlight: Use backlight power constants
        backlight: corgi-lcd: Use backlight power constants
        backlight: ams369fb06: Use backlight power constants
        backlight: aat2870-backlight: Use blacklight power constants
        backlight: Add BACKLIGHT_POWER_ constants for power states
        backlight: lm3509_bl: Fix early returns in for_each_child_of_node()
        backlight: Drop explicit initialization of struct i2c_device_id::driver_data to 0
        backlight: Add missing MODULE_DESCRIPTION() macros
        ...
      e0d97b04