1. 24 Jul, 2024 18 commits
    • Linus Torvalds's avatar
      Merge tag 'random-6.11-rc1-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/crng/random · 7a3fad30
      Linus Torvalds authored
      Pull random number generator updates from Jason Donenfeld:
       "This adds getrandom() support to the vDSO.
      
        First, it adds a new kind of mapping to mmap(2), MAP_DROPPABLE, which
        lets the kernel zero out pages anytime under memory pressure, which
        enables allocating memory that never gets swapped to disk but also
        doesn't count as being mlocked.
      
        Then, the vDSO implementation of getrandom() is introduced in a
        generic manner and hooked into random.c.
      
        Next, this is implemented on x86. (Also, though it's not ready for
        this pull, somebody has begun an arm64 implementation already)
      
        Finally, two vDSO selftests are added.
      
        There are also two housekeeping cleanup commits"
      
      * tag 'random-6.11-rc1-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/crng/random:
        MAINTAINERS: add random.h headers to RNG subsection
        random: note that RNDGETPOOL was removed in 2.6.9-rc2
        selftests/vDSO: add tests for vgetrandom
        x86: vdso: Wire up getrandom() vDSO implementation
        random: introduce generic vDSO getrandom() implementation
        mm: add MAP_DROPPABLE for designating always lazily freeable mappings
      7a3fad30
    • Linus Torvalds's avatar
      Merge tag 'vfs-6.11-rc1.fixes.2' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs · d1e9a63d
      Linus Torvalds authored
      Pull vfs fixes from Christian Brauner:
       "VFS:
      
         - The new 64bit mount ids start after the old mount id, i.e., at the
           first non-32 bit value. However, we started counting one id too
           late and thus lost 4294967296 as the first valid id. Fix that.
      
         - Update a few comments on some vfs_*() creation helpers.
      
         - Move copying of the xattr name out from the locks required to start
           a filesystem write.
      
         - Extend the filelock lock UAF fix to the compat code as well.
      
         - Now that we added the ability to look up an inode under RCU it's
           possible that lockless hash lookup can find and lock an inode after
           it gets I_FREEING set. It then waits until inode teardown in
           evict() is finished.
      
           The flag however is still set after evict() has woken up all
           waiters. If the inode lock is taken late enough on the waiting side
           after hash removal and wakeup happened the waiting thread will
           never be woken.
      
           Before RCU based lookup this was synchronized via the
           inode_hash_lock. But since unhashing requires the inode lock as
           well we can check whether the inode is unhashed while holding inode
           lock even without holding inode_hash_lock.
      
        pidfd:
      
         - The nsproxy structure contains nearly all of the namespaces
           associated with a task. When a namespace type isn't supported
           nsproxy might contain a NULL pointer or always point to the initial
           namespace type. The logic isn't consistent. So when deriving
           namespace fds we need to ensure that the namespace type is
           supported.
      
           First, so that we don't risk dereferncing NULL pointers. The
           correct bigger fix would be to change all namespaces to always set
           a valid namespace pointer in struct nsproxy independent of whether
           or not it is compiled in. But that requires quite a few changes.
      
           Second, so that we don't allow deriving namespace fds when the
           namespace type doesn't exist and thus when they couldn't also be
           derived via /proc/self/ns/.
      
         - Add missing selftests for the new pidfd ioctls to derive namespace
           fds. This simply extends the already existing testsuite.
      
        netfs:
      
         - Fix debug logging and fix kconfig variable name so it actually
           works.
      
         - Fix writeback that goes both to the server and cache. The streams
           are only activated once a subreq is added. When a server write
           happens the subreq doesn't need to have finished by the time the
           cache write is started. If the server write has already finished by
           the time the cache write is about to start the cache write will
           operate on a folio that might already have been reused. Fix this by
           preactivating the cache write.
      
         - Limit cachefiles subreq size for cache writes to MAX_RW_COUNT"
      
      * tag 'vfs-6.11-rc1.fixes.2' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
        inode: clarify what's locked
        vfs: Fix potential circular locking through setxattr() and removexattr()
        filelock: Fix fcntl/close race recovery compat path
        fs: use all available ids
        cachefiles: Set the max subreq size for cache writes to MAX_RW_COUNT
        netfs: Fix writeback that needs to go to both server and cache
        pidfs: add selftests for new namespace ioctls
        pidfs: handle kernels without namespaces cleanly
        pidfs: when time ns disabled add check for ioctl
        vfs: correct the comments of vfs_*() helpers
        vfs: handle __wait_on_freeing_inode() and evict() race
        netfs: Rename CONFIG_FSCACHE_DEBUG to CONFIG_NETFS_DEBUG
        netfs: Revert "netfs: Switch debug logging to pr_debug()"
      d1e9a63d
    • Linus Torvalds's avatar
      hostfs: fix folio conversion · e44be002
      Linus Torvalds authored
      Commit e3ec0fe9 ("hostfs: Convert hostfs_read_folio() to use a
      folio") simplified hostfs_read_folio(), but in the process of converting
      to using folios natively also mis-used the folio_zero_tail() function
      due to the very confusing API of that function.
      
      Very arguably it's folio_zero_tail() API itself that is buggy, since it
      would make more sense (and the documentation kind of implies) that the
      third argument would be the pointer to the beginning of the folio
      buffer.
      
      But no, the third argument to folio_zero_tail() is where we should start
      zeroing the tail (even if we already also pass in the offset separately
      as the second argument).
      
      So fix the hostfs caller, and we can leave any folio_zero_tail() sanity
      cleanup for later.
      Reported-and-tested-by: default avatarMaciej Żenczykowski <maze@google.com>
      Fixes: e3ec0fe9 ("hostfs: Convert hostfs_read_folio() to use a folio")
      Link: https://lore.kernel.org/all/CANP3RGceNzwdb7w=vPf5=7BCid5HVQDmz1K5kC9JG42+HVAh_g@mail.gmail.com/
      Cc: Matthew Wilcox <willy@infradead.org>
      Cc: Christian Brauner <brauner@kernel.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e44be002
    • Christian Brauner's avatar
      inode: clarify what's locked · f5e5e97c
      Christian Brauner authored
      In __wait_on_freeing_inode() we warn in case the inode_hash_lock is held
      but the inode is unhashed. We then release the inode_lock. So using
      "locked" as parameter name is confusing. Use is_inode_hash_locked as
      parameter name instead.
      Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
      f5e5e97c
    • David Howells's avatar
      vfs: Fix potential circular locking through setxattr() and removexattr() · c3a5e3e8
      David Howells authored
      When using cachefiles, lockdep may emit something similar to the circular
      locking dependency notice below.  The problem appears to stem from the
      following:
      
       (1) Cachefiles manipulates xattrs on the files in its cache when called
           from ->writepages().
      
       (2) The setxattr() and removexattr() system call handlers get the name
           (and value) from userspace after taking the sb_writers lock, putting
           accesses of the vma->vm_lock and mm->mmap_lock inside of that.
      
       (3) The afs filesystem uses a per-inode lock to prevent multiple
           revalidation RPCs and in writeback vs truncate to prevent parallel
           operations from deadlocking against the server on one side and local
           page locks on the other.
      
      Fix this by moving the getting of the name and value in {get,remove}xattr()
      outside of the sb_writers lock.  This also has the minor benefits that we
      don't need to reget these in the event of a retry and we never try to take
      the sb_writers lock in the event we can't pull the name and value into the
      kernel.
      
      Alternative approaches that might fix this include moving the dispatch of a
      write to the cache off to a workqueue or trying to do without the
      validation lock in afs.  Note that this might also affect other filesystems
      that use netfslib and/or cachefiles.
      
       ======================================================
       WARNING: possible circular locking dependency detected
       6.10.0-build2+ #956 Not tainted
       ------------------------------------------------------
       fsstress/6050 is trying to acquire lock:
       ffff888138fd82f0 (mapping.invalidate_lock#3){++++}-{3:3}, at: filemap_fault+0x26e/0x8b0
      
       but task is already holding lock:
       ffff888113f26d18 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x165/0x250
      
       which lock already depends on the new lock.
      
       the existing dependency chain (in reverse order) is:
      
       -> #4 (&vma->vm_lock->lock){++++}-{3:3}:
              __lock_acquire+0xaf0/0xd80
              lock_acquire.part.0+0x103/0x280
              down_write+0x3b/0x50
              vma_start_write+0x6b/0xa0
              vma_link+0xcc/0x140
              insert_vm_struct+0xb7/0xf0
              alloc_bprm+0x2c1/0x390
              kernel_execve+0x65/0x1a0
              call_usermodehelper_exec_async+0x14d/0x190
              ret_from_fork+0x24/0x40
              ret_from_fork_asm+0x1a/0x30
      
       -> #3 (&mm->mmap_lock){++++}-{3:3}:
              __lock_acquire+0xaf0/0xd80
              lock_acquire.part.0+0x103/0x280
              __might_fault+0x7c/0xb0
              strncpy_from_user+0x25/0x160
              removexattr+0x7f/0x100
              __do_sys_fremovexattr+0x7e/0xb0
              do_syscall_64+0x9f/0x100
              entry_SYSCALL_64_after_hwframe+0x76/0x7e
      
       -> #2 (sb_writers#14){.+.+}-{0:0}:
              __lock_acquire+0xaf0/0xd80
              lock_acquire.part.0+0x103/0x280
              percpu_down_read+0x3c/0x90
              vfs_iocb_iter_write+0xe9/0x1d0
              __cachefiles_write+0x367/0x430
              cachefiles_issue_write+0x299/0x2f0
              netfs_advance_write+0x117/0x140
              netfs_write_folio.isra.0+0x5ca/0x6e0
              netfs_writepages+0x230/0x2f0
              afs_writepages+0x4d/0x70
              do_writepages+0x1e8/0x3e0
              filemap_fdatawrite_wbc+0x84/0xa0
              __filemap_fdatawrite_range+0xa8/0xf0
              file_write_and_wait_range+0x59/0x90
              afs_release+0x10f/0x270
              __fput+0x25f/0x3d0
              __do_sys_close+0x43/0x70
              do_syscall_64+0x9f/0x100
              entry_SYSCALL_64_after_hwframe+0x76/0x7e
      
       -> #1 (&vnode->validate_lock){++++}-{3:3}:
              __lock_acquire+0xaf0/0xd80
              lock_acquire.part.0+0x103/0x280
              down_read+0x95/0x200
              afs_writepages+0x37/0x70
              do_writepages+0x1e8/0x3e0
              filemap_fdatawrite_wbc+0x84/0xa0
              filemap_invalidate_inode+0x167/0x1e0
              netfs_unbuffered_write_iter+0x1bd/0x2d0
              vfs_write+0x22e/0x320
              ksys_write+0xbc/0x130
              do_syscall_64+0x9f/0x100
              entry_SYSCALL_64_after_hwframe+0x76/0x7e
      
       -> #0 (mapping.invalidate_lock#3){++++}-{3:3}:
              check_noncircular+0x119/0x160
              check_prev_add+0x195/0x430
              __lock_acquire+0xaf0/0xd80
              lock_acquire.part.0+0x103/0x280
              down_read+0x95/0x200
              filemap_fault+0x26e/0x8b0
              __do_fault+0x57/0xd0
              do_pte_missing+0x23b/0x320
              __handle_mm_fault+0x2d4/0x320
              handle_mm_fault+0x14f/0x260
              do_user_addr_fault+0x2a2/0x500
              exc_page_fault+0x71/0x90
              asm_exc_page_fault+0x22/0x30
      
       other info that might help us debug this:
      
       Chain exists of:
         mapping.invalidate_lock#3 --> &mm->mmap_lock --> &vma->vm_lock->lock
      
        Possible unsafe locking scenario:
      
              CPU0                    CPU1
              ----                    ----
         rlock(&vma->vm_lock->lock);
                                      lock(&mm->mmap_lock);
                                      lock(&vma->vm_lock->lock);
         rlock(mapping.invalidate_lock#3);
      
        *** DEADLOCK ***
      
       1 lock held by fsstress/6050:
        #0: ffff888113f26d18 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x165/0x250
      
       stack backtrace:
       CPU: 0 PID: 6050 Comm: fsstress Not tainted 6.10.0-build2+ #956
       Hardware name: ASUS All Series/H97-PLUS, BIOS 2306 10/09/2014
       Call Trace:
        <TASK>
        dump_stack_lvl+0x57/0x80
        check_noncircular+0x119/0x160
        ? queued_spin_lock_slowpath+0x4be/0x510
        ? __pfx_check_noncircular+0x10/0x10
        ? __pfx_queued_spin_lock_slowpath+0x10/0x10
        ? mark_lock+0x47/0x160
        ? init_chain_block+0x9c/0xc0
        ? add_chain_block+0x84/0xf0
        check_prev_add+0x195/0x430
        __lock_acquire+0xaf0/0xd80
        ? __pfx___lock_acquire+0x10/0x10
        ? __lock_release.isra.0+0x13b/0x230
        lock_acquire.part.0+0x103/0x280
        ? filemap_fault+0x26e/0x8b0
        ? __pfx_lock_acquire.part.0+0x10/0x10
        ? rcu_is_watching+0x34/0x60
        ? lock_acquire+0xd7/0x120
        down_read+0x95/0x200
        ? filemap_fault+0x26e/0x8b0
        ? __pfx_down_read+0x10/0x10
        ? __filemap_get_folio+0x25/0x1a0
        filemap_fault+0x26e/0x8b0
        ? __pfx_filemap_fault+0x10/0x10
        ? find_held_lock+0x7c/0x90
        ? __pfx___lock_release.isra.0+0x10/0x10
        ? __pte_offset_map+0x99/0x110
        __do_fault+0x57/0xd0
        do_pte_missing+0x23b/0x320
        __handle_mm_fault+0x2d4/0x320
        ? __pfx___handle_mm_fault+0x10/0x10
        handle_mm_fault+0x14f/0x260
        do_user_addr_fault+0x2a2/0x500
        exc_page_fault+0x71/0x90
        asm_exc_page_fault+0x22/0x30
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Link: https://lore.kernel.org/r/2136178.1721725194@warthog.procyon.org.uk
      cc: Alexander Viro <viro@zeniv.linux.org.uk>
      cc: Christian Brauner <brauner@kernel.org>
      cc: Jan Kara <jack@suse.cz>
      cc: Jeff Layton <jlayton@kernel.org>
      cc: Gao Xiang <xiang@kernel.org>
      cc: Matthew Wilcox <willy@infradead.org>
      cc: netfs@lists.linux.dev
      cc: linux-erofs@lists.ozlabs.org
      cc: linux-fsdevel@vger.kernel.org
      [brauner: fix minor issues]
      Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
      c3a5e3e8
    • Jann Horn's avatar
      filelock: Fix fcntl/close race recovery compat path · f8138f2a
      Jann Horn authored
      When I wrote commit 3cad1bc0 ("filelock: Remove locks reliably when
      fcntl/close race is detected"), I missed that there are two copies of the
      code I was patching: The normal version, and the version for 64-bit offsets
      on 32-bit kernels.
      Thanks to Greg KH for stumbling over this while doing the stable
      backport...
      
      Apply exactly the same fix to the compat path for 32-bit kernels.
      
      Fixes: c293621b ("[PATCH] stale POSIX lock handling")
      Cc: stable@kernel.org
      Link: https://bugs.chromium.org/p/project-zero/issues/detail?id=2563Signed-off-by: default avatarJann Horn <jannh@google.com>
      Link: https://lore.kernel.org/r/20240723-fs-lock-recover-compatfix-v1-1-148096719529@google.comSigned-off-by: default avatarChristian Brauner <brauner@kernel.org>
      f8138f2a
    • Christian Brauner's avatar
      fs: use all available ids · 8eac5358
      Christian Brauner authored
      The counter is unconditionally incremented for each mount allocation.
      If we set it to 1ULL << 32 we're losing 4294967296 as the first valid
      non-32 bit mount id.
      
      Link: https://lore.kernel.org/r/20240719-work-mount-namespace-v1-1-834113cab0d2@kernel.orgReviewed-by: default avatarJosef Bacik <josef@toxicpanda.com>
      Reviewed-by: default avatarJeff Layton <jlayton@kernel.org>
      Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
      8eac5358
    • David Howells's avatar
      cachefiles: Set the max subreq size for cache writes to MAX_RW_COUNT · 51d37982
      David Howells authored
      Set the maximum size of a subrequest that writes to cachefiles to be
      MAX_RW_COUNT so that we don't overrun the maximum write we can make to the
      backing filesystem.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Link: https://lore.kernel.org/r/1599005.1721398742@warthog.procyon.org.uk
      cc: Jeff Layton <jlayton@kernel.org>
      cc: netfs@lists.linux.dev
      cc: linux-fsdevel@vger.kernel.org
      Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
      51d37982
    • David Howells's avatar
      netfs: Fix writeback that needs to go to both server and cache · 212be98a
      David Howells authored
      When netfslib is performing writeback (ie. ->writepages), it maintains two
      parallel streams of writes, one to the server and one to the cache, but it
      doesn't mark either stream of writes as active until it gets some data that
      needs to be written to that stream.
      
      This is done because some folios will only be written to the cache
      (e.g. copying to the cache on read is done by marking the folios and
      letting writeback do the actual work) and sometimes we'll only be writing
      to the server (e.g. if there's no cache).
      
      Now, since we don't actually dispatch uploads and cache writes in parallel,
      but rather flip between the streams, depending on which has the lowest
      so-far-issued offset, and don't wait for the subreqs to finish before
      flipping, we can end up in a situation where, say, we issue a write to the
      server and this completes before we start the write to the cache.
      
      But because we only activate a stream when we first add a subreq to it, the
      result collection code may run before we manage to activate the stream -
      resulting in the folio being cleaned and having the writeback-in-progress
      mark removed.  At this point, the folio no longer belongs to us.
      
      This is only really a problem for folios that need to be written to both
      streams - and in that case, the upload to the server is started first,
      followed by the write to the cache - and the cache write may see a bad
      folio.
      
      Fix this by activating the cache stream up front if there's a cache
      available.  If there's a cache, then all data is going to be written to it.
      
      Fixes: 288ace2f ("netfs: New writeback implementation")
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Link: https://lore.kernel.org/r/1599053.1721398818@warthog.procyon.org.uk
      cc: Jeff Layton <jlayton@kernel.org>
      cc: netfs@lists.linux.dev
      cc: linux-fsdevel@vger.kernel.org
      Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
      212be98a
    • Christian Brauner's avatar
      pidfs: add selftests for new namespace ioctls · 1bb8dce5
      Christian Brauner authored
      Add selftests to verify that deriving namespace file descriptors from
      pidfd file descriptors works correctly.
      
      Link: https://lore.kernel.org/r/20240722-work-pidfs-69dbea91edab@braunerSigned-off-by: default avatarChristian Brauner <brauner@kernel.org>
      1bb8dce5
    • Christian Brauner's avatar
      pidfs: handle kernels without namespaces cleanly · 9b3e1504
      Christian Brauner authored
      The nsproxy structure contains nearly all of the namespaces associated
      with a task. When a given namespace type is not supported by this kernel
      the rules whether the corresponding pointer in struct nsproxy is NULL or
      always init_<ns_type>_ns differ per namespace. Ideally, that wouldn't be
      the case and for all namespace types we'd always set it to
      init_<ns_type>_ns when the corresponding namespace type isn't supported.
      
      Make sure we handle all namespaces where the pointer in struct nsproxy
      can be NULL when the namespace type isn't supported.
      
      Link: https://lore.kernel.org/r/20240722-work-pidfs-e6a83030f63e@brauner
      Fixes: 5b08bd40 ("pidfs: allow retrieval of namespace file descriptors") # mainline only
      Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
      9b3e1504
    • Edward Adam Davis's avatar
      pidfs: when time ns disabled add check for ioctl · f60d38cb
      Edward Adam Davis authored
      syzbot call pidfd_ioctl() with cmd "PIDFD_GET_TIME_NAMESPACE" and disabled
      CONFIG_TIME_NS, since time_ns is NULL, it will make NULL ponter deref in
      open_namespace.
      
      Fixes: 5b08bd40 ("pidfs: allow retrieval of namespace file descriptors") # mainline only
      Reported-and-tested-by: syzbot+34a0ee986f61f15da35d@syzkaller.appspotmail.com
      Closes: https://syzkaller.appspot.com/bug?extid=34a0ee986f61f15da35dSigned-off-by: default avatarEdward Adam Davis <eadavis@qq.com>
      Link: https://lore.kernel.org/r/tencent_7FAE8DB725EE0DD69236DDABDDDE195E4F07@qq.comSigned-off-by: default avatarChristian Brauner <brauner@kernel.org>
      f60d38cb
    • Congjie Zhou's avatar
      vfs: correct the comments of vfs_*() helpers · b40c8e7a
      Congjie Zhou authored
      correct the comments of vfs_*() helpers in fs/namei.c, including:
      1. vfs_create()
      2. vfs_mknod()
      3. vfs_mkdir()
      4. vfs_rmdir()
      5. vfs_symlink()
      
      All of them come from the same commit:
      6521f891 "namei: prepare for idmapped mounts"
      
      The @dentry is actually the dentry of child directory rather than
      base directory(parent directory), and thus the @dir has to be
      modified due to the change of @dentry.
      Signed-off-by: default avatarCongjie Zhou <zcjie0802@qq.com>
      Link: https://lore.kernel.org/r/tencent_2FCF6CC9E10DC8A27AE58A5A0FE4FCE96D0A@qq.comSigned-off-by: default avatarChristian Brauner <brauner@kernel.org>
      b40c8e7a
    • Mateusz Guzik's avatar
      vfs: handle __wait_on_freeing_inode() and evict() race · 5bc9ad78
      Mateusz Guzik authored
      Lockless hash lookup can find and lock the inode after it gets the
      I_FREEING flag set, at which point it blocks waiting for teardown in
      evict() to finish.
      
      However, the flag is still set even after evict() wakes up all waiters.
      
      This results in a race where if the inode lock is taken late enough, it
      can happen after both hash removal and wakeups, meaning there is nobody
      to wake the racing thread up.
      
      This worked prior to RCU-based lookup because the entire ordeal was
      synchronized with the inode hash lock.
      
      Since unhashing requires the inode lock, we can safely check whether it
      happened after acquiring it.
      
      Link: https://lore.kernel.org/v9fs/20240717102458.649b60be@kernel.org/Reported-by: default avatarDominique Martinet <asmadeus@codewreck.org>
      Fixes: 7180f8d9 ("vfs: add rcu-based find_inode variants for iget ops")
      Signed-off-by: default avatarMateusz Guzik <mjguzik@gmail.com>
      Link: https://lore.kernel.org/r/20240718151838.611807-1-mjguzik@gmail.comReviewed-by: default avatarJan Kara <jack@suse.cz>
      Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
      5bc9ad78
    • David Howells's avatar
      netfs: Rename CONFIG_FSCACHE_DEBUG to CONFIG_NETFS_DEBUG · fcad9336
      David Howells authored
      CONFIG_FSCACHE_DEBUG should have been renamed to CONFIG_NETFS_DEBUG, so do
      that now.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Link: https://lore.kernel.org/r/1410796.1721333406@warthog.procyon.org.uk
      cc: Uwe Kleine-König <ukleinek@kernel.org>
      cc: Christian Brauner <brauner@kernel.org>
      cc: Jeff Layton <jlayton@kernel.org>
      cc: netfs@lists.linux.dev
      cc: linux-fsdevel@vger.kernel.org
      Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
      fcad9336
    • David Howells's avatar
      netfs: Revert "netfs: Switch debug logging to pr_debug()" · a9d47a50
      David Howells authored
      Revert commit 163eae0f to get back the
      original operation of the debugging macros.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Link: https://lore.kernel.org/r/20240608151352.22860-2-ukleinek@kernel.org
      Link: https://lore.kernel.org/r/1410685.1721333252@warthog.procyon.org.uk
      cc: Uwe Kleine-König <ukleinek@kernel.org>
      cc: Christian Brauner <brauner@kernel.org>
      cc: Jeff Layton <jlayton@kernel.org>
      cc: netfs@lists.linux.dev
      cc: linux-fsdevel@vger.kernel.org
      Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
      a9d47a50
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-fixes-for-v6.11-2024-07-23' of... · 786c8248
      Linus Torvalds authored
      Merge tag 'perf-tools-fixes-for-v6.11-2024-07-23' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools
      
      Pull perf tools fixes from Namhyung Kim:
       "Two fixes for building perf and other tools:
      
         - Fix breakage in tracing tools due to pkg-config for
           libtrace{event,fs}
      
         - Fix build of perf when libunwind is used"
      
      * tag 'perf-tools-fixes-for-v6.11-2024-07-23' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools:
        perf dso: Fix build when libunwind is enabled
        tools/latency: Use pkg-config in lib_setup of Makefile.config
        tools/rtla: Use pkg-config in lib_setup of Makefile.config
        tools/verification: Use pkg-config in lib_setup of Makefile.config
        tools: Make pkg-config dependency checks usable by other tools
        perf build: Warn if libtracefs is not found
      786c8248
    • Linus Torvalds's avatar
      Merge tag 'execve-v6.11-rc1-fix1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · e9e96979
      Linus Torvalds authored
      Pull execve fix from Kees Cook:
       "This moves the exec and binfmt_elf tests out of your way and into the
        tests/ subdirectory, following the newly ratified KUnit naming
        conventions. :)"
      
      * tag 'execve-v6.11-rc1-fix1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        execve: Move KUnit tests to tests/ subdirectory
      e9e96979
  2. 23 Jul, 2024 17 commits
    • Linus Torvalds's avatar
      Merge tag 'f2fs-for-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs · 5ad7ff87
      Linus Torvalds authored
      Pull f2fs updates from Jaegeuk Kim:
       "A pretty small update including mostly minor bug fixes in zoned
        storage along with the large section support.
      
        Enhancements:
         - add support for FS_IOC_GETFSSYSFSPATH
         - enable atgc dynamically if conditions are met
         - use new ioprio Macro to get ckpt thread ioprio level
         - remove unreachable lazytime mount option parsing
      
        Bug fixes:
         - fix null reference error when checking end of zone
         - fix start segno of large section
         - fix to cover read extent cache access with lock
         - don't dirty inode for readonly filesystem
         - allocate a new section if curseg is not the first seg in its zone
         - only fragment segment in the same section
         - truncate preallocated blocks in f2fs_file_open()
         - fix to avoid use SSR allocate when do defragment
         - fix to force buffered IO on inline_data inode
      
        And some minor code clean-ups and sanity checks"
      
      * tag 'f2fs-for-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (26 commits)
        f2fs: clean up addrs_per_{inode,block}()
        f2fs: clean up F2FS_I()
        f2fs: use meta inode for GC of COW file
        f2fs: use meta inode for GC of atomic file
        f2fs: only fragment segment in the same section
        f2fs: fix to update user block counts in block_operations()
        f2fs: remove unreachable lazytime mount option parsing
        f2fs: fix null reference error when checking end of zone
        f2fs: fix start segno of large section
        f2fs: remove redundant sanity check in sanity_check_inode()
        f2fs: assign CURSEG_ALL_DATA_ATGC if blkaddr is valid
        f2fs: fix to use mnt_{want,drop}_write_file replace file_{start,end}_wrtie
        f2fs: clean up set REQ_RAHEAD given rac
        f2fs: enable atgc dynamically if conditions are met
        f2fs: fix to truncate preallocated blocks in f2fs_file_open()
        f2fs: fix to cover read extent cache access with lock
        f2fs: fix return value of f2fs_convert_inline_inode()
        f2fs: use new ioprio Macro to get ckpt thread ioprio level
        f2fs: fix to don't dirty inode for readonly filesystem
        f2fs: fix to avoid use SSR allocate when do defragment
        ...
      5ad7ff87
    • Linus Torvalds's avatar
      Merge tag 'jfs-6.11' of github.com:kleikamp/linux-shaggy · 371c1414
      Linus Torvalds authored
      Pull jfs updates from David Kleikamp:
       "Folio conversion from Matthew Wilcox and a few various fixes"
      
      * tag 'jfs-6.11' of github.com:kleikamp/linux-shaggy:
        jfs: don't walk off the end of ealist
        jfs: Fix shift-out-of-bounds in dbDiscardAG
        jfs: Fix array-index-out-of-bounds in diFree
        jfs: fix null ptr deref in dtInsertEntry
        jfs: Remove use of folio error flag
        fs: Remove i_blocks_per_page
        jfs: Change metapage->page to metapage->folio
        jfs: Convert force_metapage to use a folio
        jfs: Convert inc_io to take a folio
        jfs: Convert page_to_mp to folio_to_mp
        jfs; Convert __invalidate_metapages to use a folio
        jfs: Convert dec_io to take a folio
        jfs: Convert drop_metapage and remove_metapage to take a folio
        jfs; Convert release_metapage to use a folio
        jfs: Convert insert_metapage() to take a folio
        jfs: Convert __get_metapage to use a folio
        jfs: Convert metapage_writepage to metapage_write_folio
        jfs: Convert metapage_read_folio to use folio APIs
      371c1414
    • Linus Torvalds's avatar
      Merge tag 'kbuild-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild · ca83c61c
      Linus Torvalds authored
      Pull Kbuild updates from Masahiro Yamada:
      
       - Remove tristate choice support from Kconfig
      
       - Stop using the PROVIDE() directive in the linker script
      
       - Reduce the number of links for the combination of CONFIG_KALLSYMS and
         CONFIG_DEBUG_INFO_BTF
      
       - Enable the warning for symbol reference to .exit.* sections by
         default
      
       - Fix warnings in RPM package builds
      
       - Improve scripts/make_fit.py to generate a FIT image with separate
         base DTB and overlays
      
       - Improve choice value calculation in Kconfig
      
       - Fix conditional prompt behavior in choice in Kconfig
      
       - Remove support for the uncommon EMAIL environment variable in Debian
         package builds
      
       - Remove support for the uncommon "name <email>" form for the DEBEMAIL
         environment variable
      
       - Raise the minimum supported GNU Make version to 4.0
      
       - Remove stale code for the absolute kallsyms
      
       - Move header files commonly used for host programs to scripts/include/
      
       - Introduce the pacman-pkg target to generate a pacman package used in
         Arch Linux
      
       - Clean up Kconfig
      
      * tag 'kbuild-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (65 commits)
        kbuild: doc: gcc to CC change
        kallsyms: change sym_entry::percpu_absolute to bool type
        kallsyms: unify seq and start_pos fields of struct sym_entry
        kallsyms: add more original symbol type/name in comment lines
        kallsyms: use \t instead of a tab in printf()
        kallsyms: avoid repeated calculation of array size for markers
        kbuild: add script and target to generate pacman package
        modpost: use generic macros for hash table implementation
        kbuild: move some helper headers from scripts/kconfig/ to scripts/include/
        Makefile: add comment to discourage tools/* addition for kernel builds
        kbuild: clean up scripts/remove-stale-files
        kconfig: recursive checks drop file/lineno
        kbuild: rpm-pkg: introduce a simple changelog section for kernel.spec
        kallsyms: get rid of code for absolute kallsyms
        kbuild: Create INSTALL_PATH directory if it does not exist
        kbuild: Abort make on install failures
        kconfig: remove 'e1' and 'e2' macros from expression deduplication
        kconfig: remove SYMBOL_CHOICEVAL flag
        kconfig: add const qualifiers to several function arguments
        kconfig: call expr_eliminate_yn() at least once in expr_eliminate_dups()
        ...
      ca83c61c
    • Linus Torvalds's avatar
      Merge tag 'rpmsg-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux · 643af93f
      Linus Torvalds authored
      Pull rpmsg updates from Bjorn Andersson:
      
       - fix interrupt handling in the stm32 remoteproc driver when being
         attached to an already running remote processor
      
       - fix invalid kernel-doc and add missing MODULE_DESCRIPTION() in the
         rpmsg char driver
      
      * tag 'rpmsg-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux:
        rpmsg: char: add missing MODULE_DESCRIPTION() macro
        remoteproc: stm32_rproc: Fix mailbox interrupts queuing
        rpmsg: char: Fix rpmsg_eptdev structure documentation
      643af93f
    • Linus Torvalds's avatar
      Merge tag 'rproc-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux · 60c6119c
      Linus Torvalds authored
      Pull remoteproc updates from Bjorn Andersson:
      
       - The maximum amount of DDR memory used by the Mediatek MT8188/MT8195
         SCP is increased to handle new use cases. Handling of optional L1TCM
         memory is made actually optional.
      
       - An optimization is introduced to only clear the unused portion of IPI
         shared buffers, rather than the entire buffer before writing the
         message.
      
       - Detection for IPC-only mode in the TI K3 DSP remoteproc driver is
         corrected. The loglevel of a debug print in the same is lowered from
         error.
      
       - Support for attaching to an running remote processor is added to the
         Xilinx R5F.
      
       - An in-kernel implementation of the Qualcomm "protected domain mapper"
         (aka service registry) service is introduced, to remove the
         dependency on a userspace implementation to detect when the battery
         monitor and USB Type-C port manager becomes available. This is then
         integrated with the Qualcomm remoteproc driver.
      
       - The Qualcomm PAS remoteproc driver gains support for attempting to
         bust hwspinlocks held by the remote processor when it
         crashed/stopped.
      
       - The TI OMAP remoteproc driver is transitioned to use devres helpers
         for various forms of allocations.
      
       - Parsing of memory-regions in the i.MX remoteproc driver is improved
         to avoid a NULL pointer dereference if the phandle reference is
         empty. of_node reference counting is corrected in the same.
      
      * tag 'rproc-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux:
        remoteproc: mediatek: Increase MT8188/MT8195 SCP core0 DRAM size
        remoteproc: k3-dsp: Fix log levels where appropriate
        remoteproc: xlnx: Add attach detach support
        remoteproc: qcom: select AUXILIARY_BUS
        remoteproc: k3-r5: Fix IPC-only mode detection
        remoteproc: mediatek: Don't attempt to remap l1tcm memory if missing
        remoteproc: qcom: enable in-kernel PD mapper
        dt-bindings: remoteproc: imx_rproc: Add minItems for power-domain
        remoteproc: imx_rproc: Fix refcount mistake in imx_rproc_addr_init
        remoteproc: omap: Use devm_rproc_add() helper
        remoteproc: omap: Use devm action to release reserved memory
        remoteproc: omap: Use devm_rproc_alloc() helper
        remoteproc: imx_rproc: Skip over memory region when node value is NULL
        dt-bindings: remoteproc: k3-dsp: Correct optional sram properties for AM62A SoCs
        remoteproc: qcom_q6v5_pas: Add hwspinlock bust on stop
        soc: qcom: smem: Add qcom_smem_bust_hwspin_lock_by_host()
        remoteproc: mediatek: Zero out only remaining bytes of IPI buffer
      60c6119c
    • Linus Torvalds's avatar
      Merge tag 'hwlock-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux · 58bffbac
      Linus Torvalds authored
      Pull hwspinlock updates from Bjorn Andersson:
       "This introduces a mechanism in the hardware spinlock framework, and
        the Qualcomm TCSR mutex driver, for allowing clients to bust locks
        held by a remote processor in the event that this enters a faulty
        state while holding the shared lock"
      
      * tag 'hwlock-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux:
        hwspinlock: qcom: implement bust operation
        hwspinlock: Introduce hwspin_lock_bust()
      58bffbac
    • Linus Torvalds's avatar
      Merge tag 'sh-for-v6.11-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/glaubitz/sh-linux · e9680017
      Linus Torvalds authored
      Pull sh updates from John Paul Adrian Glaubitz:
       "This is rather small this time and contains just three changes.
      
        The first change by Oscar Salvador drops support for memory hotplug
        and hotremove for sh as the kernel stopped supporting it on 32-bit
        platforms since 7ec58a2b ("mm/memory_hotplug: restrict
        CONFIG_MEMORY_HOTPLUG to 64 bit").
      
        That then results in a follow-up change to update all affected board
        config files.
      
        The third change comes from Jeff Johnson which adds the missing
        MODULE_DESCRIPTION() macro to the push-switch driver"
      
      * tag 'sh-for-v6.11-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/glaubitz/sh-linux:
        sh: push-switch: Add missing MODULE_DESCRIPTION() macro
        sh: config: Drop CONFIG_MEMORY_{HOTPLUG,HOTREMOVE}
        sh: Drop support for memory hotplug and memory hotremove
      e9680017
    • Linus Torvalds's avatar
      Merge tag 'modules-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux · f4887900
      Linus Torvalds authored
      Pull module update from Luis Chamberlain:
       "This is a super boring development cycle this time around for modules,
        there is only one patch in this pull request.
      
        The patch deals with a corner case set of dependencies which is not
        resolved today to ensure users get the module they need on initramfs.
        Currently only one module is known to exist which needs this, however
        this can grow to capture other corner cases likely escaped and not
        reported before. The kernel change is just a section update, the real
        work is done and merged already on upstream kmod.
      
        This has been on linux-next for 3 weeks now"
      
      * tag 'modules-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux:
        module: create weak dependecies
      f4887900
    • Linus Torvalds's avatar
      Merge tag 'livepatching-for-6.11' of... · d2d721e2
      Linus Torvalds authored
      Merge tag 'livepatching-for-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching
      
      Pull livepatching update from Petr Mladek:
      
       - show patch->replace flag in sysfs
      
       - add or improve few selftests
      
      * tag 'livepatching-for-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching:
        livepatch: Replace snprintf() with sysfs_emit()
        selftests/livepatch: Add selftests for "replace" sysfs attribute
        livepatch: Add "replace" sysfs attribute
        selftests: livepatch: Test atomic replace against multiple modules
        selftests/livepatch: define max test-syscall processes
      d2d721e2
    • Linus Torvalds's avatar
      Merge tag 'i2c-for-6.11-rc1-second-batch' of... · 28bbe4ea
      Linus Torvalds authored
      Merge tag 'i2c-for-6.11-rc1-second-batch' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
      
      Pull more i2c updates from Wolfram Sang:
       "The I2C core has two header documentation updates as the dependecies
        are in now.
      
        The I2C host drivers add some patches which nearly fell through the
        cracks:
      
         - Added descriptions in the DTS for the Qualcomm SM8650 and SM8550
           Camera Control Interface (CCI).
      
         - Added support for the "settle-time-us" property, which allows the
           gpio-mux device to switch from one bus to another with a
           configurable delay. The time can be set in the DTS. The latest
           change also includes file sorting.
      
         - Fixed slot numbering in the SMBus framework to prevent failures
           when more than 8 slots are occupied. It now enforces a a maximum of
           8 slots to be used. This ensures that the Intel PIIX4 device can
           register the SPDs correctly without failure, even if other slots
           are populated but not used"
      
      * tag 'i2c-for-6.11-rc1-second-batch' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        i2c: header: improve kdoc for i2c_algorithm
        i2c: header: remove unneeded stuff regarding i2c_algorithm
        i2c: piix4: Register SPDs
        i2c: smbus: remove i801 assumptions from SPD probing
        i2c: mux: gpio: Add support for the 'settle-time-us' property
        i2c: mux: gpio: Re-order #include to match alphabetic order
        dt-bindings: i2c: mux-gpio: Add 'settle-time-us' property
        dt-bindings: i2c: qcom-cci: Document sm8650 compatible
        dt-bindings: i2c: qcom-cci: Document sm8550 compatible
      28bbe4ea
    • Linus Torvalds's avatar
      Merge tag 'mailbox-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/jassibrar/mailbox · d51f8f63
      Linus Torvalds authored
      Pull mailbox updates from Jassi Brar:
       "broadcom:
         - remove unused pdc_dma_map
      
        imx:
         - fix TXDB_V2 channel race condition
      
        mediatek:
         - cleanup and refactor driver
         - add bindings for gce-props
      
        omap:
         - fix mailbox interrupt sharing
      
        qcom:
         - add bindings for SA8775p
         - add CPUCP driver
      
        zynqmp:
         - make polling period configurable"
      
      * tag 'mailbox-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/jassibrar/mailbox:
        mailbox: mtk-cmdq: Move devm_mbox_controller_register() after devm_pm_runtime_enable()
        mailbox: zynqmp-ipi: Make polling period configurable
        mailbox: qcom-cpucp: fix 64BIT dependency
        mailbox: Add support for QTI CPUCP mailbox controller
        dt-bindings: mailbox: qcom: Add CPUCP mailbox controller bindings
        dt-bindings: remoteproc: qcom,sa8775p-pas: Document the SA8775p ADSP, CDSP and GPDSP
        mailbox: mtk-cmdq: add missing MODULE_DESCRIPTION() macro
        mailbox: bcm-pdc: remove unused struct 'pdc_dma_map'
        mailbox: imx: fix TXDB_V2 channel race condition
        mailbox: omap: Fix mailbox interrupt sharing
        mailbox: mtk-cmdq: Dynamically allocate clk_bulk_data structure
        mailbox: mtk-cmdq: Move and partially refactor clocks probe
        mailbox: mtk-cmdq: Stop requiring name for GCE clock
        dt-bindings: mailbox: Add mediatek,gce-props.yaml
      d51f8f63
    • Linus Torvalds's avatar
      Merge tag 'pcmcia-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brodo/linux · 71bed1ec
      Linus Torvalds authored
      Pull PCMCIA updates from Dominik Brodowski:
       "A number of tiny cleanups of the PCMCIA subsystem by Jeff Johnson,
        Jules Irenge, and Krzysztof Kozlowski"
      
      * tag 'pcmcia-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brodo/linux:
        pcmcia: add missing MODULE_DESCRIPTION() macros
        pcmcia: Use resource_size function on resource object
        pcmcia: bcm63xx: drop driver owner assignment
      71bed1ec
    • Linus Torvalds's avatar
      Merge tag 'for-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply · fd71b9a0
      Linus Torvalds authored
      Pull power supply and reset updates from Sebastian Reichel:
       "Power-supply core:
         - new charging_orange_full_green RGB LED trigger
         - simplify and cleanup power-supply LED trigger code
         - expose power information via hwmon compatibility layer
      
        New hardware support:
         - enable battery support for Qualcomm Snapdragon X Elite
         - new battery driver for Maxim MAX17201/MAX17205
         - new battery driver for Lenovo Yoga C630 laptop (custom EC)
      
        Cleanups:
         - cleanup 'struct i2c_device_id' initializations
         - misc small battery driver cleanups and fixes"
      
      * tag 'for-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply:
        power: supply: sysfs: use power_supply_property_is_writeable()
        power: supply: qcom_battmgr: Enable battery support on x1e80100
        power: supply: add support for MAX1720x standalone fuel gauge
        dt-bindings: power: supply: add support for MAX17201/MAX17205 fuel gauge
        power: reset: piix4: add missing MODULE_DESCRIPTION() macro
        power: supply: samsung-sdi-battery: Constify struct power_supply_maintenance_charge_table
        power: supply: samsung-sdi-battery: Constify struct power_supply_vbat_ri_table
        power: supply: lenovo_yoga_c630_battery: add Lenovo C630 driver
        power: supply: ingenic: Fix some error handling paths in ingenic_battery_get_property()
        power: supply: ab8500: Clean some error messages
        power: supply: ab8500: Use iio_read_channel_processed_scale()
        power: supply: ab8500: Fix error handling when calling iio_read_channel_processed()
        power: supply: hwmon: Add support for power sensors
        power: supply: ab8500: remove unused struct 'inst_curr_result_list'
        power: supply: bd99954: remove unused struct 'battery_data'
        power: supply: leds: Add activate() callback to triggers
        power: supply: leds: Share trig pointer for online and charging_full
        power: supply: leds: Add power_supply_[un]register_led_trigger()
        power: supply: Drop explicit initialization of struct i2c_device_id::driver_data to 0
      fd71b9a0
    • Linus Torvalds's avatar
      Merge tag 'hsi-for-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi · c5d2be66
      Linus Torvalds authored
      Pull HSI update from Sebastian Reichel:
      
       - drop unused gpio.h header from SSI McSAAB protocol driver
      
      * tag 'hsi-for-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi:
        HSI: ssi_protocol: Remove unused linux/gpio.h
      c5d2be66
    • Ivan Davydov's avatar
      kbuild: doc: gcc to CC change · 13c239a2
      Ivan Davydov authored
      In this part of the documentation, $(CC) is meant, but gcc is written.
      Signed-off-by: default avatarIvan Davydov <davydoff33@yandex.ru>
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      13c239a2
    • Petr Mladek's avatar
      ea5377ec
    • Kees Cook's avatar
      execve: Move KUnit tests to tests/ subdirectory · b6f5ee4d
      Kees Cook authored
      Move the exec KUnit tests into a separate directory to avoid polluting
      the local directory namespace. Additionally update MAINTAINERS for the
      new files.
      Reviewed-by: default avatarDavid Gow <davidgow@google.com>
      Reviewed-by: default avatarSeongJae Park <sj@kernel.org>
      Acked-by: default avatarChristian Brauner <brauner@kernel.org>
      Link: https://lore.kernel.org/r/20240720170310.it.942-kees@kernel.orgSigned-off-by: default avatarKees Cook <kees@kernel.org>
      b6f5ee4d
  3. 22 Jul, 2024 5 commits
    • Linus Torvalds's avatar
      Merge tag 'irq-msi-2024-07-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 66ebbdfd
      Linus Torvalds authored
      Pull MSI interrupt updates from Thomas Gleixner:
       "Switch ARM/ARM64 over to the modern per device MSI domains.
      
        This simplifies the handling of platform MSI and wire to MSI
        controllers and removes about 500 lines of legacy code.
      
        Aside of that it paves the way for ARM/ARM64 to utilize the dynamic
        allocation of PCI/MSI interrupts and to support the upcoming non
        standard IMS (Interrupt Message Store) mechanism on PCIe devices"
      
      * tag 'irq-msi-2024-07-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (25 commits)
        irqchip/gic-v3-its: Correctly fish out the DID for platform MSI
        irqchip/gic-v3-its: Correctly honor the RID remapping
        genirq/msi: Move msi_device_data to core
        genirq/msi: Remove platform MSI leftovers
        irqchip/irq-mvebu-icu: Remove platform MSI leftovers
        irqchip/irq-mvebu-sei: Switch to MSI parent
        irqchip/mvebu-odmi: Switch to parent MSI
        irqchip/mvebu-gicp: Switch to MSI parent
        irqchip/irq-mvebu-icu: Prepare for real per device MSI
        irqchip/imx-mu-msi: Switch to MSI parent
        irqchip/gic-v2m: Switch to device MSI
        irqchip/gic_v3_mbi: Switch over to parent domain
        genirq/msi: Remove platform_msi_create_device_domain()
        irqchip/mbigen: Remove platform_msi_create_device_domain() fallback
        irqchip/gic-v3-its: Switch platform MSI to MSI parent
        irqchip/irq-msi-lib: Prepare for DOMAIN_BUS_WIRED_TO_MSI
        irqchip/mbigen: Prepare for real per device MSI
        irqchip/irq-msi-lib: Prepare for DEVICE MSI to replace platform MSI
        irqchip/gic-v3-its: Provide MSI parent for PCI/MSI[-X]
        irqchip/irq-msi-lib: Prepare for PCI MSI/MSIX
        ...
      66ebbdfd
    • Linus Torvalds's avatar
      Merge tag 'irq-core-2024-07-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ac7473a1
      Linus Torvalds authored
      Pull interrupt subsystem updates from Thomas Gleixner:
       "Core:
      
         - Provide a new mechanism to create interrupt domains. The existing
           interfaces have already too many parameters and it's a pain to
           expand any of this for new required functionality.
      
           The new function takes a pointer to a data structure as argument.
           The data structure combines all existing parameters and allows for
           easy extension.
      
           The first extension for this is to handle the instantiation of
           generic interrupt chips at the core level and to allow drivers to
           provide extra init/exit callbacks.
      
           This is necessary to do the full interrupt chip initialization
           before the new domain is published, so that concurrent usage sites
           won't see a half initialized interrupt domain. Similar problems
           exist on teardown.
      
           This has turned out to be a real problem due to the deferred and
           parallel probing which was added in recent years.
      
           Handling this at the core level allows to remove quite some accrued
           boilerplate code in existing drivers and avoids horrible
           workarounds at the driver level.
      
         - The usual small improvements all over the place
      
        Drivers:
      
         - Add support for LAN966x OIC and RZ/Five SoC
      
         - Split the STM ExtI driver into a microcontroller and a SMP version
           to allow building the latter as a module for multi-platform
           kernels
      
         - Enable MSI support for Armada 370XP on platforms which do not
           support IPIs
      
         - The usual small fixes and enhancements all over the place"
      
      * tag 'irq-core-2024-07-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (59 commits)
        irqdomain: Fix the kernel-doc and plug it into Documentation
        genirq: Set IRQF_COND_ONESHOT in request_irq()
        irqchip/imx-irqsteer: Handle runtime power management correctly
        irqchip/gic-v3: Pass #redistributor-regions to gic_of_setup_kvm_info()
        irqchip/bcm2835: Enable SKIP_SET_WAKE and MASK_ON_SUSPEND
        irqchip/gic-v4: Make sure a VPE is locked when VMAPP is issued
        irqchip/gic-v4: Substitute vmovp_lock for a per-VM lock
        irqchip/gic-v4: Always configure affinity on VPE activation
        Revert "irqchip/dw-apb-ictl: Support building as module"
        Revert "Loongarch: Support loongarch avec"
        arm64: Kconfig: Allow build irq-stm32mp-exti driver as module
        ARM: stm32: Allow build irq-stm32mp-exti driver as module
        irqchip/stm32mp-exti: Allow building as module
        irqchip/stm32mp-exti: Rename internal symbols
        irqchip/stm32-exti: Split MCU and MPU code
        arm64: Kconfig: Select STM32MP_EXTI on STM32 platforms
        ARM: stm32: Use different EXTI driver on ARMv7m and ARMv7a
        irqchip/stm32-exti: Add CONFIG_STM32MP_EXTI
        irqchip/dw-apb-ictl: Support building as module
        irqchip/riscv-aplic: Simplify the initialization code
        ...
      ac7473a1
    • Linus Torvalds's avatar
      Merge tag 'loongarch-6.11' of... · a362ade8
      Linus Torvalds authored
      Merge tag 'loongarch-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
      
      Pull LoongArch updates from Huacai Chen:
      
       - Define __ARCH_WANT_NEW_STAT in unistd.h
      
       - Always enumerate MADT and setup logical-physical CPU mapping
      
       - Add irq_work support via self IPIs
      
       - Add RANDOMIZE_KSTACK_OFFSET support
      
       - Add ARCH_HAS_PTE_DEVMAP support
      
       - Add ARCH_HAS_DEBUG_VM_PGTABLE support
      
       - Add writecombine support for DMW-based ioremap()
      
       - Add architectural preparation for CPUFreq
      
       - Add ACPI standard hardware register based S3 support
      
       - Add support for relocating the kernel with RELR relocation
      
       - Some bug fixes and other small changes
      
      * tag 'loongarch-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson:
        LoongArch: Make the users of larch_insn_gen_break() constant
        LoongArch: Check TIF_LOAD_WATCH to enable user space watchpoint
        LoongArch: Use rustc option -Zdirect-access-external-data
        LoongArch: Add support for relocating the kernel with RELR relocation
        LoongArch: Remove a redundant checking in relocator
        LoongArch: Use correct API to map cmdline in relocate_kernel()
        LoongArch: Automatically disable KASLR for hibernation
        LoongArch: Add ACPI standard hardware register based S3 support
        LoongArch: Add architectural preparation for CPUFreq
        LoongArch: Add writecombine support for DMW-based ioremap()
        LoongArch: Add ARCH_HAS_DEBUG_VM_PGTABLE support
        LoongArch: Add ARCH_HAS_PTE_DEVMAP support
        LoongArch: Add RANDOMIZE_KSTACK_OFFSET support
        LoongArch: Add irq_work support via self IPIs
        LoongArch: Always enumerate MADT and setup logical-physical CPU mapping
        LoongArch: Define __ARCH_WANT_NEW_STAT in unistd.h
      a362ade8
    • Linus Torvalds's avatar
      Merge tag 'thermal-6.11-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 539fbb91
      Linus Torvalds authored
      Pull thermal control fix from Rafael Wysocki:
       "Fix a flood of kernel messages coming from the thermal core on systems
        where iwlwifi is loaded, but the network interfaces controlled by it
        are down (Rafael Wysocki)"
      
      * tag 'thermal-6.11-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        thermal: core: Allow thermal zones to tell the core to ignore them
      539fbb91
    • Linus Torvalds's avatar
      Merge tag 'io_uring-6.11-20240722' of git://git.kernel.dk/linux · 9deed1d5
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
       "Two minor fixes in here, both heading to stable. In detail:
      
         - Fix error where forced async uring_cmd getsockopt returns the wrong
           value on execution, leading to it never being completed (Pavel)
      
         - Fix io_alloc_pbuf_ring() using a NULL check rather than IS_ERR
           (Pavel)"
      
      * tag 'io_uring-6.11-20240722' of git://git.kernel.dk/linux:
        io_uring: fix error pbuf checking
        io_uring: fix lost getsockopt completions
      9deed1d5