1. 08 Aug, 2024 12 commits
    • Linus Torvalds's avatar
      module: warn about excessively long module waits · cb5b81bc
      Linus Torvalds authored
      Russell King reported that the arm cbc(aes) crypto module hangs when
      loaded, and Herbert Xu bisected it to commit 9b9879fc ("modules:
      catch concurrent module loads, treat them as idempotent"), and noted:
      
       "So what's happening here is that the first modprobe tries to load a
        fallback CBC implementation, in doing so it triggers a load of the
        exact same module due to module aliases.
      
        IOW we're loading aes-arm-bs which provides cbc(aes). However, this
        needs a fallback of cbc(aes) to operate, which is made out of the
        generic cbc module + any implementation of aes, or ecb(aes). The
        latter happens to also be provided by aes-arm-cb so that's why it
        tries to load the same module again"
      
      So loading the aes-arm-bs module ends up wanting to recursively load
      itself, and the recursive load then ends up waiting for the original
      module load to complete.
      
      This is a regression, in that it used to be that we just tried to load
      the module multiple times, and then as we went on to install it the
      second time we would instead just error out because the module name
      already existed.
      
      That is actually also exactly what the original "catch concurrent loads"
      patch did in commit 9828ed3f ("module: error out early on concurrent
      load of the same module file"), but it turns out that it ends up being
      racy, in that erroring out before the module has been fully initialized
      will cause failures in dependent module loading.
      
      See commit ac2263b5 (which was the revert of that "error out early")
      commit for details about why erroring out before the module has been
      initialized is actually fundamentally racy.
      
      Now, for the actual recursive module load (as opposed to just
      concurrently loading the same module twice), the race is not an issue.
      
      At the same time it's hard for the kernel to see that this is recursion,
      because the module load is always done from a usermode helper, so the
      recursion is not some simple callchain within the kernel.
      
      End result: this is not the real fix, but this at least adds a warning
      for the situation (admittedly much too late for all the debugging pain
      that Russell and Herbert went through) and if we can come to a
      resolution on how to detect the recursion properly, this re-organizes
      the code to make that easier.
      
      Link: https://lore.kernel.org/all/ZrFHLqvFqhzykuYw@shell.armlinux.org.uk/Reported-by: default avatarRussell King <linux@armlinux.org.uk>
      Debugged-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      cb5b81bc
    • Linus Torvalds's avatar
      Merge tag 'loongarch-fixes-6.11-1' of... · cf6d429e
      Linus Torvalds authored
      Merge tag 'loongarch-fixes-6.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
      
      Pull LoongArch fixes from Huacai Chen:
       "Enable general EFI poweroff method to make poweroff usable on
        hardwares which lack ACPI S5, use accessors to page table entries
        instead of direct dereference to avoid potential problems, and two
        trivial kvm cleanups"
      
      * tag 'loongarch-fixes-6.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson:
        LoongArch: KVM: Remove undefined a6 argument comment for kvm_hypercall()
        LoongArch: KVM: Remove unnecessary definition of KVM_PRIVATE_MEM_SLOTS
        LoongArch: Use accessors to page table entries instead of direct dereference
        LoongArch: Enable general EFI poweroff method
      cf6d429e
    • Linus Torvalds's avatar
      Merge tag 'mm-hotfixes-stable-2024-08-07-18-32' of... · 660e4b18
      Linus Torvalds authored
      Merge tag 'mm-hotfixes-stable-2024-08-07-18-32' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
      
      Pull misc fixes from Andrew Morton:
       "Nine hotfixes. Five are cc:stable, the others either pertain to
        post-6.10 material or aren't considered necessary for earlier kernels.
      
        Five are MM and four are non-MM. No identifiable theme here - please
        see the individual changelogs"
      
      * tag 'mm-hotfixes-stable-2024-08-07-18-32' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm:
        padata: Fix possible divide-by-0 panic in padata_mt_helper()
        mailmap: update entry for David Heidelberg
        memcg: protect concurrent access to mem_cgroup_idr
        mm: shmem: fix incorrect aligned index when checking conflicts
        mm: shmem: avoid allocating huge pages larger than MAX_PAGECACHE_ORDER for shmem
        mm: list_lru: fix UAF for memory cgroup
        kcov: properly check for softirq context
        MAINTAINERS: Update LTP members and web
        selftests: mm: add s390 to ARCH check
      660e4b18
    • Waiman Long's avatar
      padata: Fix possible divide-by-0 panic in padata_mt_helper() · 6d45e1c9
      Waiman Long authored
      We are hit with a not easily reproducible divide-by-0 panic in padata.c at
      bootup time.
      
        [   10.017908] Oops: divide error: 0000 1 PREEMPT SMP NOPTI
        [   10.017908] CPU: 26 PID: 2627 Comm: kworker/u1666:1 Not tainted 6.10.0-15.el10.x86_64 #1
        [   10.017908] Hardware name: Lenovo ThinkSystem SR950 [7X12CTO1WW]/[7X12CTO1WW], BIOS [PSE140J-2.30] 07/20/2021
        [   10.017908] Workqueue: events_unbound padata_mt_helper
        [   10.017908] RIP: 0010:padata_mt_helper+0x39/0xb0
          :
        [   10.017963] Call Trace:
        [   10.017968]  <TASK>
        [   10.018004]  ? padata_mt_helper+0x39/0xb0
        [   10.018084]  process_one_work+0x174/0x330
        [   10.018093]  worker_thread+0x266/0x3a0
        [   10.018111]  kthread+0xcf/0x100
        [   10.018124]  ret_from_fork+0x31/0x50
        [   10.018138]  ret_from_fork_asm+0x1a/0x30
        [   10.018147]  </TASK>
      
      Looking at the padata_mt_helper() function, the only way a divide-by-0
      panic can happen is when ps->chunk_size is 0.  The way that chunk_size is
      initialized in padata_do_multithreaded(), chunk_size can be 0 when the
      min_chunk in the passed-in padata_mt_job structure is 0.
      
      Fix this divide-by-0 panic by making sure that chunk_size will be at least
      1 no matter what the input parameters are.
      
      Link: https://lkml.kernel.org/r/20240806174647.1050398-1-longman@redhat.com
      Fixes: 004ed426 ("padata: add basic support for multithreaded jobs")
      Signed-off-by: default avatarWaiman Long <longman@redhat.com>
      Cc: Daniel Jordan <daniel.m.jordan@oracle.com>
      Cc: Steffen Klassert <steffen.klassert@secunet.com>
      Cc: Waiman Long <longman@redhat.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      6d45e1c9
    • David Heidelberg's avatar
      mailmap: update entry for David Heidelberg · f2087995
      David Heidelberg authored
      Link my old gmail address to my active email.
      
      Link: https://lkml.kernel.org/r/20240804054704.859503-1-david@ixit.czSigned-off-by: default avatarDavid Heidelberg <david@ixit.cz>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Jiri Kosina <jikos@kernel.org>
      Cc: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      f2087995
    • Shakeel Butt's avatar
      memcg: protect concurrent access to mem_cgroup_idr · 9972605a
      Shakeel Butt authored
      Commit 73f576c0 ("mm: memcontrol: fix cgroup creation failure after
      many small jobs") decoupled the memcg IDs from the CSS ID space to fix the
      cgroup creation failures.  It introduced IDR to maintain the memcg ID
      space.  The IDR depends on external synchronization mechanisms for
      modifications.  For the mem_cgroup_idr, the idr_alloc() and idr_replace()
      happen within css callback and thus are protected through cgroup_mutex
      from concurrent modifications.  However idr_remove() for mem_cgroup_idr
      was not protected against concurrency and can be run concurrently for
      different memcgs when they hit their refcnt to zero.  Fix that.
      
      We have been seeing list_lru based kernel crashes at a low frequency in
      our fleet for a long time.  These crashes were in different part of
      list_lru code including list_lru_add(), list_lru_del() and reparenting
      code.  Upon further inspection, it looked like for a given object (dentry
      and inode), the super_block's list_lru didn't have list_lru_one for the
      memcg of that object.  The initial suspicions were either the object is
      not allocated through kmem_cache_alloc_lru() or somehow
      memcg_list_lru_alloc() failed to allocate list_lru_one() for a memcg but
      returned success.  No evidence were found for these cases.
      
      Looking more deeply, we started seeing situations where valid memcg's id
      is not present in mem_cgroup_idr and in some cases multiple valid memcgs
      have same id and mem_cgroup_idr is pointing to one of them.  So, the most
      reasonable explanation is that these situations can happen due to race
      between multiple idr_remove() calls or race between
      idr_alloc()/idr_replace() and idr_remove().  These races are causing
      multiple memcgs to acquire the same ID and then offlining of one of them
      would cleanup list_lrus on the system for all of them.  Later access from
      other memcgs to the list_lru cause crashes due to missing list_lru_one.
      
      Link: https://lkml.kernel.org/r/20240802235822.1830976-1-shakeel.butt@linux.dev
      Fixes: 73f576c0 ("mm: memcontrol: fix cgroup creation failure after many small jobs")
      Signed-off-by: default avatarShakeel Butt <shakeel.butt@linux.dev>
      Acked-by: default avatarMuchun Song <muchun.song@linux.dev>
      Reviewed-by: default avatarRoman Gushchin <roman.gushchin@linux.dev>
      Acked-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
      Cc: Michal Hocko <mhocko@suse.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      9972605a
    • Baolin Wang's avatar
      mm: shmem: fix incorrect aligned index when checking conflicts · 4cbf320b
      Baolin Wang authored
      In the shmem_suitable_orders() function, xa_find() is used to check for
      conflicts in the pagecache to select suitable huge orders.  However, when
      checking each huge order in every loop, the aligned index is calculated
      from the previous iteration, which may cause suitable huge orders to be
      missed.
      
      We should use the original index each time in the loop to calculate a new
      aligned index for checking conflicts to avoid this issue.
      
      Link: https://lkml.kernel.org/r/07433b0f16a152bffb8cee34934a5c040e8e2ad6.1722404078.git.baolin.wang@linux.alibaba.com
      Fixes: e7a2ab7b ("mm: shmem: add mTHP support for anonymous shmem")
      Signed-off-by: default avatarBaolin Wang <baolin.wang@linux.alibaba.com>
      Acked-by: default avatarDavid Hildenbrand <david@redhat.com>
      Cc: Barry Song <21cnbao@gmail.com>
      Cc: Gavin Shan <gshan@redhat.com>
      Cc: Hugh Dickins <hughd@google.com>
      Cc: Lance Yang <ioworker0@gmail.com>
      Cc: Matthew Wilcox <willy@infradead.org>
      Cc: Ryan Roberts <ryan.roberts@arm.com>
      Cc: Zi Yan <ziy@nvidia.com>
      Cc: Barry Song <baohua@kernel.org>
      Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      4cbf320b
    • Baolin Wang's avatar
      mm: shmem: avoid allocating huge pages larger than MAX_PAGECACHE_ORDER for shmem · b66b1b71
      Baolin Wang authored
      Similar to commit d659b715 ("mm/huge_memory: avoid PMD-size page
      cache if needed"), ARM64 can support 512MB PMD-sized THP when the base
      page size is 64KB, which is larger than the maximum supported page cache
      size MAX_PAGECACHE_ORDER.
      
      This is not expected.  To fix this issue, use THP_ORDERS_ALL_FILE_DEFAULT
      for shmem to filter allowable huge orders.
      
      [baolin.wang@linux.alibaba.com: remove comment, per Barry]
        Link: https://lkml.kernel.org/r/c55d7ef7-78aa-4ed6-b897-c3e03a3f3ab7@linux.alibaba.com
      [wangkefeng.wang@huawei.com: remove local `orders']
        Link: https://lkml.kernel.org/r/87769ae8-b6c6-4454-925d-1864364af9c8@huawei.com
      Link: https://lkml.kernel.org/r/117121665254442c3c7f585248296495e5e2b45c.1722404078.git.baolin.wang@linux.alibaba.com
      Fixes: e7a2ab7b ("mm: shmem: add mTHP support for anonymous shmem")
      Signed-off-by: default avatarBaolin Wang <baolin.wang@linux.alibaba.com>
      Signed-off-by: default avatarKefeng Wang <wangkefeng.wang@huawei.com>
      Reviewed-by: default avatarBarry Song <baohua@kernel.org>
      Cc: Barry Song <21cnbao@gmail.com>
      Cc: David Hildenbrand <david@redhat.com>
      Cc: Gavin Shan <gshan@redhat.com>
      Cc: Hugh Dickins <hughd@google.com>
      Cc: Lance Yang <ioworker0@gmail.com>
      Cc: Matthew Wilcox <willy@infradead.org>
      Cc: Ryan Roberts <ryan.roberts@arm.com>
      Cc: Zi Yan <ziy@nvidia.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      b66b1b71
    • Muchun Song's avatar
      mm: list_lru: fix UAF for memory cgroup · 5161b487
      Muchun Song authored
      The mem_cgroup_from_slab_obj() is supposed to be called under rcu lock or
      cgroup_mutex or others which could prevent returned memcg from being
      freed.  Fix it by adding missing rcu read lock.
      
      Found by code inspection.
      
      [songmuchun@bytedance.com: only grab rcu lock when necessary, per Vlastimil]
        Link: https://lkml.kernel.org/r/20240801024603.1865-1-songmuchun@bytedance.com
      Link: https://lkml.kernel.org/r/20240718083607.42068-1-songmuchun@bytedance.com
      Fixes: 0a97c01c ("list_lru: allow explicit memcg and NUMA node selection")
      Signed-off-by: default avatarMuchun Song <songmuchun@bytedance.com>
      Acked-by: default avatarShakeel Butt <shakeel.butt@linux.dev>
      Acked-by: default avatarVlastimil Babka <vbabka@suse.cz>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Nhat Pham <nphamcs@gmail.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      5161b487
    • Andrey Konovalov's avatar
      kcov: properly check for softirq context · 7d4df2da
      Andrey Konovalov authored
      When collecting coverage from softirqs, KCOV uses in_serving_softirq() to
      check whether the code is running in the softirq context.  Unfortunately,
      in_serving_softirq() is > 0 even when the code is running in the hardirq
      or NMI context for hardirqs and NMIs that happened during a softirq.
      
      As a result, if a softirq handler contains a remote coverage collection
      section and a hardirq with another remote coverage collection section
      happens during handling the softirq, KCOV incorrectly detects a nested
      softirq coverate collection section and prints a WARNING, as reported by
      syzbot.
      
      This issue was exposed by commit a7f3813e ("usb: gadget: dummy_hcd:
      Switch to hrtimer transfer scheduler"), which switched dummy_hcd to using
      hrtimer and made the timer's callback be executed in the hardirq context.
      
      Change the related checks in KCOV to account for this behavior of
      in_serving_softirq() and make KCOV ignore remote coverage collection
      sections in the hardirq and NMI contexts.
      
      This prevents the WARNING printed by syzbot but does not fix the inability
      of KCOV to collect coverage from the __usb_hcd_giveback_urb when dummy_hcd
      is in use (caused by a7f3813e); a separate patch is required for that.
      
      Link: https://lkml.kernel.org/r/20240729022158.92059-1-andrey.konovalov@linux.dev
      Fixes: 5ff3b30a ("kcov: collect coverage from interrupts")
      Signed-off-by: default avatarAndrey Konovalov <andreyknvl@gmail.com>
      Reported-by: syzbot+2388cdaeb6b10f0c13ac@syzkaller.appspotmail.com
      Closes: https://syzkaller.appspot.com/bug?extid=2388cdaeb6b10f0c13acAcked-by: default avatarMarco Elver <elver@google.com>
      Cc: Alan Stern <stern@rowland.harvard.edu>
      Cc: Aleksandr Nogikh <nogikh@google.com>
      Cc: Alexander Potapenko <glider@google.com>
      Cc: Dmitry Vyukov <dvyukov@google.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Marcello Sylvester Bauer <sylv@sylv.io>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      7d4df2da
    • Petr Vorel's avatar
      MAINTAINERS: Update LTP members and web · 37bf7fbe
      Petr Vorel authored
      LTP project uses now readthedocs.org instance instead of GitHub wiki.
      
      LTP maintainers are listed in alphabetical order.
      
      Link: https://lkml.kernel.org/r/20240726072009.1021599-1-pvorel@suse.czSigned-off-by: default avatarPetr Vorel <pvorel@suse.cz>
      Reviewed-by: default avatarLi Wang <liwang@redhat.com>
      Reviewed-by: default avatarCyril Hrubis <chrubis@suse.cz>
      Cc: Jan Stancek <jstancek@redhat.com>
      Cc: Xiao Yang <yangx.jy@fujitsu.com>
      Cc: Yang Xu <xuyang2018.jy@fujitsu.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      37bf7fbe
    • Nico Pache's avatar
      selftests: mm: add s390 to ARCH check · 30b651c8
      Nico Pache authored
      commit 0518dbe9 ("selftests/mm: fix cross compilation with LLVM")
      changed the env variable for the architecture from MACHINE to ARCH.
      
      This is preventing 3 required TEST_GEN_FILES from being included when
      cross compiling s390x and errors when trying to run the test suite.  This
      is due to the ARCH variable already being set and the arch folder name
      being s390.
      
      Add "s390" to the filtered list to cover this case and have the 3 files
      included in the build.
      
      Link: https://lkml.kernel.org/r/20240724213517.23918-1-npache@redhat.com
      Fixes: 0518dbe9 ("selftests/mm: fix cross compilation with LLVM")
      Signed-off-by: default avatarNico Pache <npache@redhat.com>
      Cc: Mark Brown <broonie@kernel.org>
      Cc: Albert Ou <aou@eecs.berkeley.edu>
      Cc: Palmer Dabbelt <palmer@dabbelt.com>
      Cc: Paul Walmsley <paul.walmsley@sifive.com>
      Cc: Shuah Khan <shuah@kernel.org>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      30b651c8
  2. 07 Aug, 2024 6 commits
  3. 06 Aug, 2024 2 commits
  4. 05 Aug, 2024 2 commits
  5. 04 Aug, 2024 11 commits
    • Linus Torvalds's avatar
      Linux 6.11-rc2 · de9c2c66
      Linus Torvalds authored
      de9c2c66
    • Tetsuo Handa's avatar
      profiling: remove profile=sleep support · b88f5538
      Tetsuo Handa authored
      The kernel sleep profile is no longer working due to a recursive locking
      bug introduced by commit 42a20f86 ("sched: Add wrapper for get_wchan()
      to keep task blocked")
      
      Booting with the 'profile=sleep' kernel command line option added or
      executing
      
        # echo -n sleep > /sys/kernel/profiling
      
      after boot causes the system to lock up.
      
      Lockdep reports
      
        kthreadd/3 is trying to acquire lock:
        ffff93ac82e08d58 (&p->pi_lock){....}-{2:2}, at: get_wchan+0x32/0x70
      
        but task is already holding lock:
        ffff93ac82e08d58 (&p->pi_lock){....}-{2:2}, at: try_to_wake_up+0x53/0x370
      
      with the call trace being
      
         lock_acquire+0xc8/0x2f0
         get_wchan+0x32/0x70
         __update_stats_enqueue_sleeper+0x151/0x430
         enqueue_entity+0x4b0/0x520
         enqueue_task_fair+0x92/0x6b0
         ttwu_do_activate+0x73/0x140
         try_to_wake_up+0x213/0x370
         swake_up_locked+0x20/0x50
         complete+0x2f/0x40
         kthread+0xfb/0x180
      
      However, since nobody noticed this regression for more than two years,
      let's remove 'profile=sleep' support based on the assumption that nobody
      needs this functionality.
      
      Fixes: 42a20f86 ("sched: Add wrapper for get_wchan() to keep task blocked")
      Cc: stable@vger.kernel.org # v5.16+
      Signed-off-by: default avatarTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b88f5538
    • Linus Torvalds's avatar
      Merge tag 'x86-urgent-2024-08-04' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a5dbd76a
      Linus Torvalds authored
      Pull x86 fixes from Thomas Gleixner:
      
       - Prevent a deadlock on cpu_hotplug_lock in the aperf/mperf driver.
      
         A recent change in the ACPI code which consolidated code pathes moved
         the invocation of init_freq_invariance_cppc() to be moved to a CPU
         hotplug handler. The first invocation on AMD CPUs ends up enabling a
         static branch which dead locks because the static branch enable tries
         to acquire cpu_hotplug_lock but that lock is already held write by
         the hotplug machinery.
      
         Use static_branch_enable_cpuslocked() instead and take the hotplug
         lock read for the Intel code path which is invoked from the
         architecture code outside of the CPU hotplug operations.
      
       - Fix the number of reserved bits in the sev_config structure bit field
         so that the bitfield does not exceed 64 bit.
      
       - Add missing Zen5 model numbers
      
       - Fix the alignment assumptions of pti_clone_pgtable() and
         clone_entry_text() on 32-bit:
      
         The code assumes PMD aligned code sections, but on 32-bit the kernel
         entry text is not PMD aligned. So depending on the code size and
         location, which is configuration and compiler dependent, entry text
         can cross a PMD boundary. As the start is not PMD aligned adding PMD
         size to the start address is larger than the end address which
         results in partially mapped entry code for user space. That causes
         endless recursion on the first entry from userspace (usually #PF).
      
         Cure this by aligning the start address in the addition so it ends up
         at the next PMD start address.
      
         clone_entry_text() enforces PMD mapping, but on 32-bit the tail might
         eventually be PTE mapped, which causes a map fail because the PMD for
         the tail is not a large page mapping. Use PTI_LEVEL_KERNEL_IMAGE for
         the clone() invocation which resolves to PTE on 32-bit and PMD on
         64-bit.
      
       - Zero the 8-byte case for get_user() on range check failure on 32-bit
      
         The recend consolidation of the 8-byte get_user() case broke the
         zeroing in the failure case again. Establish it by clearing ECX
         before the range check and not afterwards as that obvioulsy can't be
         reached when the range check fails
      
      * tag 'x86-urgent-2024-08-04' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/uaccess: Zero the 8-byte get_range case on failure on 32-bit
        x86/mm: Fix pti_clone_entry_text() for i386
        x86/mm: Fix pti_clone_pgtable() alignment assumption
        x86/setup: Parse the builtin command line before merging
        x86/CPU/AMD: Add models 0x60-0x6f to the Zen5 range
        x86/sev: Fix __reserved field in sev_config
        x86/aperfmperf: Fix deadlock on cpu_hotplug_lock
      a5dbd76a
    • Linus Torvalds's avatar
      Merge tag 'timers-urgent-2024-08-04' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 61ca6c78
      Linus Torvalds authored
      Pull timer fixes from Thomas Gleixner:
       "Two fixes for the timer/clocksource code:
      
         - The recent fix to make the take over of the broadcast timer more
           reliable retrieves a per CPU pointer in preemptible context.
      
           This went unnoticed in testing as some compilers hoist the access
           into the non-preemotible section where the pointer is actually
           used, but obviously compilers can rightfully invoke it where the
           code put it.
      
           Move it into the non-preemptible section right to the actual usage
           side to cure it.
      
         - The clocksource watchdog is supposed to emit a warning when the
           retry count is greater than one and the number of retries reaches
           the limit.
      
           The condition is backwards and warns always when the count is
           greater than one. Fixup the condition to prevent spamming dmesg"
      
      * tag 'timers-urgent-2024-08-04' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        clocksource: Fix brown-bag boolean thinko in cs_watchdog_read()
        tick/broadcast: Move per CPU pointer access into the atomic section
      61ca6c78
    • Linus Torvalds's avatar
      Merge tag 'sched-urgent-2024-08-04' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 6cc82dc2
      Linus Torvalds authored
      Pull scheduler fixes from Thomas Gleixner:
      
       - When stime is larger than rtime due to accounting imprecision, then
         utime = rtime - stime becomes negative. As this is unsigned math, the
         result becomes a huge positive number.
      
         Cure it by resetting stime to rtime in that case, so utime becomes 0.
      
       - Restore consistent state when sched_cpu_deactivate() fails.
      
         When offlining a CPU fails in sched_cpu_deactivate() after the SMT
         present counter has been decremented, then the function aborts but
         fails to increment the SMT present counter and leaves it imbalanced.
         Consecutive operations cause it to underflow. Add the missing fixup
         for the error path.
      
         For SMT accounting the runqueue needs to marked online again in the
         error exit path to restore consistent state.
      
      * tag 'sched-urgent-2024-08-04' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/core: Fix unbalance set_rq_online/offline() in sched_cpu_deactivate()
        sched/core: Introduce sched_set_rq_on/offline() helper
        sched/smt: Fix unbalance sched_smt_present dec/inc
        sched/smt: Introduce sched_smt_present_inc/dec() helper
        sched/cputime: Fix mul_u64_u64_div_u64() precision for cputime
      6cc82dc2
    • Linus Torvalds's avatar
      Merge tag 'perf-urgent-2024-08-04' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1ddeb0ef
      Linus Torvalds authored
      Pull x86 perf fixes from Thomas Gleixner:
      
       - Move the smp_processor_id() invocation back into the non-preemtible
         region, so that the result is valid to use
      
       - Add the missing package C2 residency counters for Sierra Forest CPUs
         to make the newly added support actually useful
      
      * tag 'perf-urgent-2024-08-04' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/x86: Fix smp_processor_id()-in-preemptible warnings
        perf/x86/intel/cstate: Add pkg C2 residency counter for Sierra Forest
      1ddeb0ef
    • Linus Torvalds's avatar
      Merge tag 'irq-urgent-2024-08-04' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 953f7764
      Linus Torvalds authored
      Pull irq fixes from Thomas Gleixner:
       "A couple of fixes for interrupt chip drivers:
      
         - Make sure to skip the clear register space in the MBIGEN driver
           when calculating the node register index. Otherwise the clear
           register is clobbered and the wrong node registers are accessed.
      
         - Fix a signed/unsigned confusion in the loongarch CPU driver which
           converts an error code to a huge "valid" interrupt number.
      
         - Convert the mesion GPIO interrupt controller lock to a raw spinlock
           so it works on RT.
      
         - Add a missing static to a internal function in the pic32 EVIC
           driver"
      
      * tag 'irq-urgent-2024-08-04' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip/mbigen: Fix mbigen node address layout
        irqchip/meson-gpio: Convert meson_gpio_irq_controller::lock to 'raw_spinlock_t'
        irqchip/irq-pic32-evic: Add missing 'static' to internal function
        irqchip/loongarch-cpu: Fix return value of lpic_gsi_to_irq()
      953f7764
    • Linus Torvalds's avatar
      Merge tag 'locking-urgent-2024-08-04' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3bc70ad1
      Linus Torvalds authored
      Pull locking fixes from Thomas Gleixner:
       "Two fixes for locking and jump labels:
      
         - Ensure that the atomic_cmpxchg() conditions are correct and
           evaluating to true on any non-zero value except 1. The missing
           check of the return value leads to inconsisted state of the jump
           label counter.
      
         - Add a missing type conversion in the paravirt spinlock code which
           makes loongson build again"
      
      * tag 'locking-urgent-2024-08-04' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        jump_label: Fix the fix, brown paper bags galore
        locking/pvqspinlock: Correct the type of "old" variable in pv_kick_node()
      3bc70ad1
    • Rob Herring (Arm)'s avatar
      arm: dts: arm: versatile-ab: Fix duplicate clock node name · ff588380
      Rob Herring (Arm) authored
      Commit 04f08ef2 ("arm/arm64: dts: arm: Use generic clock and
      regulator nodenames") renamed nodes and created 2 "clock-24000000" nodes
      (at different paths).
      
      The kernel can't handle these duplicate names even though they are at
      different paths.  Fix this by renaming one of the nodes to "clock-pclk".
      
      This name is aligned with other Arm boards (those didn't have a known
      frequency to use in the node name).
      
      Fixes: 04f08ef2 ("arm/arm64: dts: arm: Use generic clock and regulator nodenames")
      Reported-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: default avatarRob Herring (Arm) <robh@kernel.org>
      Tested-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Tested-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ff588380
    • Linus Torvalds's avatar
      Merge tag '6.11-rc1-smb-client-fixes' of git://git.samba.org/sfrench/cifs-2.6 · 3f3f6d61
      Linus Torvalds authored
      Pull smb client fixes from Steve French:
      
       - two reparse point fixes
      
       - minor cleanup
      
       - additional trace point (to help debug a recent problem)
      
      * tag '6.11-rc1-smb-client-fixes' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: update internal version number
        smb: client: fix FSCTL_GET_REPARSE_POINT against NetApp
        smb3: add dynamic tracepoints for shutdown ioctl
        cifs: Remove cifs_aio_ctx
        smb: client: handle lack of FSCTL_GET_REPARSE_POINT support
      3f3f6d61
    • Linus Torvalds's avatar
      Merge tag 'media/v6.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · 3c41df42
      Linus Torvalds authored
      Pull media fixes from Mauro Carvalho Chehab:
      
       - two Kconfig fixes
      
       - one fix for the UVC driver addressing probing time detection of a UVC
         custom controls
      
       - one fix related to PDF generation
      
      * tag 'media/v6.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
        media: v4l: Fix missing tabular column hint for Y14P format
        media: intel/ipu6: select AUXILIARY_BUS in Kconfig
        media: ipu-bridge: fix ipu6 Kconfig dependencies
        media: uvcvideo: Fix custom control mapping probing
      3c41df42
  6. 03 Aug, 2024 5 commits
  7. 02 Aug, 2024 2 commits
    • Linus Torvalds's avatar
      Merge tag 'io_uring-6.11-20240802' of git://git.kernel.dk/linux · 17712b7e
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
       "Two minor tweaks for the NAPI handling, both from Olivier:
      
         - Kill two unused list definitions
      
         - Ensure that multishot NAPI doesn't age away"
      
      * tag 'io_uring-6.11-20240802' of git://git.kernel.dk/linux:
        io_uring: remove unused local list heads in NAPI functions
        io_uring: keep multishot request NAPI timeout current
      17712b7e
    • Linus Torvalds's avatar
      Merge tag 'thermal-6.11-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · d9ef02e5
      Linus Torvalds authored
      Pull thermal control fixes from Rafael Wysocki:
       "These fix a few issues related to the MSI IRQs management in the
        int340x thermal driver, fix a thermal core issue that may lead to
        missing trip point crossing events and update the thermal core
        documentation.
      
        Specifics:
      
         - Fix MSI error path cleanup in int340x, allow it to work with a
           subset of thermal MSI IRQs if some of them are not working and make
           it free all MSI IRQs on module exit (Srinivas Pandruvada)
      
         - Fix a thermal core issue that may lead to missing trip point
           crossing events in some cases when thermal_zone_set_trips() is used
           and update the thermal core documentation (Rafael Wysocki)"
      
      * tag 'thermal-6.11-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        thermal: core: Update thermal zone registration documentation
        thermal: trip: Avoid skipping trips in thermal_zone_set_trips()
        thermal: intel: int340x: Free MSI IRQ vectors on module exit
        thermal: intel: int340x: Allow limited thermal MSI support
        thermal: intel: int340x: Fix kernel warning during MSI cleanup
      d9ef02e5