lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <aYhfK3tB0X6Y_GyV@gmail.com>
Date: Sun, 8 Feb 2026 11:02:19 +0100
From: Ingo Molnar <mingo@...nel.org>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: linux-kernel@...r.kernel.org, Peter Zijlstra <peterz@...radead.org>,
	Thomas Gleixner <tglx@...utronix.de>, Will Deacon <will@...nel.org>,
	Waiman Long <longman@...hat.com>, Boqun Feng <boqun.feng@...il.com>,
	Borislav Petkov <bp@...en8.de>, Uros Bizjak <ubizjak@...il.com>,
	Sebastian Andrzej Siewior <bigeasy@...utronix.de>,
	Gary Guo <gary@...yguo.net>, Oleg Nesterov <oleg@...hat.com>,
	Marco Elver <elver@...gle.com>
Subject: [GIT PULL] locking updates for v6.20

Linus,

Please pull the latest locking/core Git tree from:

   git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git locking-core-2026-02-08

for you to fetch changes up to 7a562d5d2396c9c78fbbced7ae81bcfcfa0fde3f:

[ MERGE NOTE: please note the default-enabled nature of the new
  locking context analysis feature, and its justification described
  below. If that's too aggressive, please disregard this pull request. ]

Locking updates for v6.20:

Lock debugging:

 - Implement compiler-driven static analysis locking context
   checking, using the upcoming Clang 22 compiler's context
   analysis features. (Marco Elver)

   We removed Sparse context analysis support, because prior to
   removal even a defconfig kernel produced 1,700+ context
   tracking Sparse warnings, the overwhelming majority of which
   are false positives. On an allmodconfig kernel the number of
   false positive context tracking Sparse warnings grows to
   over 5,200... On the plus side of the balance actual locking
   bugs found by Sparse context analysis is also rather ... sparse:
   I found only 3 such commits in the last 3 years. So the
   rate of false positives and the maintenance overhead is
   rather high and there appears to be no active policy in
   place to achieve a zero-warnings baseline to move the
   annotations & fixers to developers who introduce new code.

   Clang context analysis is more complete and more aggressive
   in trying to find bugs, at least in principle. Plus it has
   a different model to enabling it: it's enabled subsystem by
   subsystem, which results in zero warnings on all relevant
   kernel builds (as far as our testing managed to cover it).
   Which allowed us to enable it by default, similar to other
   compiler warnings, with the expectation that there are no
   warnings going forward. This enforces a zero-warnings baseline
   on clang-22+ builds. (Which are still limited in distribution,
   admittedly.)

   Hopefully the Clang approach can lead to a more maintainable
   zero-warnings status quo and policy, with more and more
   subsystems and drivers enabling the feature. Context tracking
   can be enabled for all kernel code via WARN_CONTEXT_ANALYSIS_ALL=y
   (default disabled), but this will generate a lot of false positives.

   ( Having said that, Sparse support could still be added back,
     if anyone is interested - the removal patch is still
     relatively straightforward to revert at this stage. )

Rust integration updates: (Alice Ryhl, Fujita Tomonori, Boqun Feng)

  - Add support for Atomic<i8/i16/bool> and replace most Rust native
    AtomicBool usages with Atomic<bool>

  - Clean up LockClassKey and improve its documentation

  - Add missing Send and Sync trait implementation for SetOnce

  - Make ARef Unpin as it is supposed to be

  - Add __rust_helper to a few Rust helpers as a preparation for
    helper LTO

  - Inline various lock related functions to avoid additional
    function calls.

WW mutexes:

  - Extend ww_mutex tests and other test-ww_mutex updates (John Stultz)

Misc fixes and cleanups:

  - rcu: Mark lockdep_assert_rcu_helper() __always_inline
    (Arnd Bergmann)

  - locking/local_lock: Include more missing headers (Peter Zijlstra)

  - seqlock: fix scoped_seqlock_read kernel-doc (Randy Dunlap)

  - rust: sync: Replace `kernel::c_str!` with C-Strings
    (Tamir Duberstein)

 Thanks,

	Ingo

------------------>
Alice Ryhl (16):
      rust: sync: Refactor static_lock_class!() macro
      rust: sync: Clean up LockClassKey and its docs
      rust: sync: Implement Unpin for ARef
      rust: barrier: Add __rust_helper to helpers
      rust: blk: Add __rust_helper to helpers
      rust: completion: Add __rust_helper to helpers
      rust: cpu: Add __rust_helper to helpers
      rust: processor: Add __rust_helper to helpers
      rust: rcu: Add __rust_helper to helpers
      rust: refcount: Add __rust_helper to helpers
      rust: sync: Add __rust_helper to helpers
      rust: task: Add __rust_helper to helpers
      rust: time: Add __rust_helper to helpers
      rust: wait: Add __rust_helper to helpers
      rust: helpers: Move #define __rust_helper out of atomic.c
      rust: sync: Inline various lock related methods

Arnd Bergmann (1):
      rcu: Mark lockdep_assert_rcu_helper() __always_inline

Boqun Feng (1):
      arch: um/x86: Select ARCH_SUPPORTS_ATOMIC_RMW for UML_X86

FUJITA Tomonori (19):
      rust: sync: set_once: Implement Send and Sync
      rust: helpers: Add i8/i16 atomic_read_acquire/atomic_set_release helpers
      rust: helpers: Add i8/i16 relaxed atomic helpers
      rust: helpers: Add i8/i16 atomic xchg helpers
      rust: helpers: Add i8/i16 atomic xchg_acquire helpers
      rust: helpers: Add i8/i16 atomic xchg_release helpers
      rust: helpers: Add i8/i16 atomic xchg_relaxed helpers
      rust: helpers: Add i8/i16 atomic try_cmpxchg helpers
      rust: helpers: Add i8/i16 atomic try_cmpxchg_acquire helpers
      rust: helpers: Add i8/i16 atomic try_cmpxchg_release helpers
      rust: helpers: Add i8/i16 atomic try_cmpxchg_relaxed helpers
      rust: sync: atomic: Prepare AtomicOps macros for i8/i16 support
      rust: sync: atomic: Add i8/i16 load and store support
      rust: sync: atomic: Add store_release/load_acquire tests
      rust: sync: atomic: Add i8/i16 xchg and cmpxchg support
      rust: sync: atomic: Add atomic bool support via i8 representation
      rust: sync: atomic: Add atomic bool tests
      rust: list: Switch to kernel::sync atomic primitives
      rust_binder: Switch to kernel::sync atomic primitives

John Stultz (3):
      test-ww_mutex: Extend ww_mutex tests to test both classes of ww_mutexes
      test-ww_mutex: Move work to its own UNBOUND workqueue
      test-ww_mutex: Allow test to be run (and re-run) from userland

Marco Elver (45):
      compiler_types: Move lock checking attributes to compiler-context-analysis.h
      compiler-context-analysis: Add infrastructure for Context Analysis with Clang
      compiler-context-analysis: Add test stub
      Documentation: Add documentation for Compiler-Based Context Analysis
      checkpatch: Warn about context_unsafe() without comment
      cleanup: Basic compatibility with context analysis
      lockdep: Annotate lockdep assertions for context analysis
      locking/rwlock, spinlock: Support Clang's context analysis
      compiler-context-analysis: Change __cond_acquires to take return value
      locking/mutex: Support Clang's context analysis
      locking/seqlock: Support Clang's context analysis
      bit_spinlock: Include missing <asm/processor.h>
      bit_spinlock: Support Clang's context analysis
      rcu: Support Clang's context analysis
      srcu: Support Clang's context analysis
      kref: Add context-analysis annotations
      locking/rwsem: Support Clang's context analysis
      locking/local_lock: Include missing headers
      locking/local_lock: Support Clang's context analysis
      locking/ww_mutex: Support Clang's context analysis
      debugfs: Make debugfs_cancellation a context lock struct
      um: Fix incorrect __acquires/__releases annotations
      compiler-context-analysis: Remove Sparse support
      compiler-context-analysis: Remove __cond_lock() function-like helper
      compiler-context-analysis: Introduce header suppressions
      compiler: Let data_race() imply disabled context analysis
      MAINTAINERS: Add entry for Context Analysis
      kfence: Enable context analysis
      kcov: Enable context analysis
      kcsan: Enable context analysis
      stackdepot: Enable context analysis
      rhashtable: Enable context analysis
      printk: Move locking annotation to printk.c
      security/tomoyo: Enable context analysis
      crypto: Enable context analysis
      sched: Enable context analysis for core.c and fair.c
      compiler-context-analysys: Fix CONFIG_MODVERSION
      tools: Update context analysis macros in compiler_types.h
      cleanup: Make __DEFINE_LOCK_GUARD handle commas in initializers
      compiler-context-analysis: Introduce scoped init guards
      kcov: Use scoped init guard
      crypto: Use scoped init guard
      tomoyo: Use scoped init guard
      compiler-context-analysis: Remove __assume_ctx_lock from initializers
      locking/rwlock: Fix write_trylock_irqsave() with CONFIG_INLINE_WRITE_TRYLOCK

Peter Zijlstra (2):
      tags: Add regex for context_lock_struct
      locking/local_lock: Include more missing headers

Randy Dunlap (1):
      seqlock: fix scoped_seqlock_read kernel-doc

Tamir Duberstein (1):
      rust: sync: Replace `kernel::c_str!` with C-Strings

oldzhu (1):
      scripts/atomic: Fix kerneldoc spelling in try_cmpxchg()


 Documentation/dev-tools/context-analysis.rst       | 169 ++++++
 Documentation/dev-tools/index.rst                  |   1 +
 Documentation/dev-tools/sparse.rst                 |  19 -
 Documentation/mm/process_addrs.rst                 |   6 +-
 MAINTAINERS                                        |  11 +
 Makefile                                           |   1 +
 arch/um/include/shared/skas/mm_id.h                |   5 +-
 arch/um/kernel/skas/mmu.c                          |  13 +-
 arch/x86/um/Kconfig                                |   1 +
 crypto/Makefile                                    |   2 +
 crypto/acompress.c                                 |   6 +-
 crypto/algapi.c                                    |   2 +
 crypto/api.c                                       |   1 +
 crypto/crypto_engine.c                             |   2 +-
 crypto/drbg.c                                      |   7 +-
 crypto/internal.h                                  |   2 +-
 crypto/proc.c                                      |   3 +
 crypto/scompress.c                                 |  24 +-
 drivers/android/binder/rust_binder_main.rs         |  20 +-
 drivers/android/binder/stats.rs                    |   8 +-
 drivers/android/binder/thread.rs                   |  24 +-
 drivers/android/binder/transaction.rs              |  16 +-
 drivers/net/wireless/intel/iwlwifi/iwl-trans.c     |   4 +-
 drivers/net/wireless/intel/iwlwifi/iwl-trans.h     |   6 +-
 .../wireless/intel/iwlwifi/pcie/gen1_2/internal.h  |   5 +-
 .../net/wireless/intel/iwlwifi/pcie/gen1_2/trans.c |   4 +-
 fs/dlm/lock.c                                      |   2 +-
 include/crypto/internal/acompress.h                |   7 +-
 include/crypto/internal/engine.h                   |   2 +-
 include/linux/atomic/atomic-arch-fallback.h        |  18 +-
 include/linux/atomic/atomic-instrumented.h         |  26 +-
 include/linux/atomic/atomic-long.h                 |  10 +-
 include/linux/bit_spinlock.h                       |  24 +-
 include/linux/cleanup.h                            |  58 +-
 include/linux/compiler-context-analysis.h          | 436 +++++++++++++++
 include/linux/compiler.h                           |   2 +
 include/linux/compiler_types.h                     |  18 +-
 include/linux/console.h                            |   4 +-
 include/linux/debugfs.h                            |  12 +-
 include/linux/kref.h                               |   2 +
 include/linux/list_bl.h                            |   2 +
 include/linux/local_lock.h                         |  59 +-
 include/linux/local_lock_internal.h                |  72 ++-
 include/linux/lockdep.h                            |  12 +-
 include/linux/lockref.h                            |   4 +-
 include/linux/mm.h                                 |  33 +-
 include/linux/mutex.h                              |  40 +-
 include/linux/mutex_types.h                        |   4 +-
 include/linux/rcupdate.h                           |  90 ++--
 include/linux/refcount.h                           |   6 +-
 include/linux/rhashtable.h                         |  16 +-
 include/linux/rwlock.h                             |  19 +-
 include/linux/rwlock_api_smp.h                     |  43 +-
 include/linux/rwlock_rt.h                          |  43 +-
 include/linux/rwlock_types.h                       |  10 +-
 include/linux/rwsem.h                              |  78 ++-
 include/linux/sched.h                              |   6 +-
 include/linux/sched/signal.h                       |  16 +-
 include/linux/sched/task.h                         |   6 +-
 include/linux/sched/wake_q.h                       |   3 +
 include/linux/seqlock.h                            |  57 +-
 include/linux/seqlock_types.h                      |   5 +-
 include/linux/spinlock.h                           | 119 ++--
 include/linux/spinlock_api_smp.h                   |  34 +-
 include/linux/spinlock_api_up.h                    | 112 ++--
 include/linux/spinlock_rt.h                        |  36 +-
 include/linux/spinlock_types.h                     |  10 +-
 include/linux/spinlock_types_raw.h                 |   5 +-
 include/linux/srcu.h                               |  73 ++-
 include/linux/srcutiny.h                           |   6 +
 include/linux/srcutree.h                           |  10 +-
 include/linux/ww_mutex.h                           |  21 +-
 kernel/Makefile                                    |   2 +
 kernel/kcov.c                                      |  36 +-
 kernel/kcsan/Makefile                              |   2 +
 kernel/kcsan/report.c                              |  11 +-
 kernel/locking/test-ww_mutex.c                     | 165 ++++--
 kernel/printk/printk.c                             |   2 +
 kernel/sched/Makefile                              |   3 +
 kernel/sched/core.c                                |  89 ++-
 kernel/sched/fair.c                                |   7 +-
 kernel/sched/sched.h                               | 126 +++--
 kernel/signal.c                                    |   4 +-
 kernel/time/posix-timers.c                         |  13 +-
 lib/Kconfig.debug                                  |  44 ++
 lib/Makefile                                       |   6 +
 lib/dec_and_lock.c                                 |   8 +-
 lib/lockref.c                                      |   1 -
 lib/rhashtable.c                                   |   5 +-
 lib/stackdepot.c                                   |  20 +-
 lib/test_context-analysis.c                        | 598 +++++++++++++++++++++
 mm/kfence/Makefile                                 |   2 +
 mm/kfence/core.c                                   |  20 +-
 mm/kfence/kfence.h                                 |  14 +-
 mm/kfence/report.c                                 |   4 +-
 mm/memory.c                                        |   4 +-
 mm/pgtable-generic.c                               |  19 +-
 net/ipv4/tcp_sigpool.c                             |   2 +-
 rust/helpers/atomic.c                              |   7 +-
 rust/helpers/atomic_ext.c                          | 139 +++++
 rust/helpers/barrier.c                             |   6 +-
 rust/helpers/blk.c                                 |   4 +-
 rust/helpers/completion.c                          |   2 +-
 rust/helpers/cpu.c                                 |   2 +-
 rust/helpers/helpers.c                             |   3 +
 rust/helpers/mutex.c                               |  13 +-
 rust/helpers/processor.c                           |   2 +-
 rust/helpers/rcu.c                                 |   4 +-
 rust/helpers/refcount.c                            |  10 +-
 rust/helpers/signal.c                              |   2 +-
 rust/helpers/spinlock.c                            |  13 +-
 rust/helpers/sync.c                                |   4 +-
 rust/helpers/task.c                                |  24 +-
 rust/helpers/time.c                                |  14 +-
 rust/helpers/wait.c                                |   2 +-
 rust/kernel/list/arc.rs                            |  14 +-
 rust/kernel/sync.rs                                |  73 ++-
 rust/kernel/sync/aref.rs                           |   3 +
 rust/kernel/sync/atomic/internal.rs                | 114 +++-
 rust/kernel/sync/atomic/predefine.rs               |  55 +-
 rust/kernel/sync/lock.rs                           |   7 +
 rust/kernel/sync/lock/global.rs                    |   2 +
 rust/kernel/sync/lock/mutex.rs                     |   5 +
 rust/kernel/sync/lock/spinlock.rs                  |   5 +
 rust/kernel/sync/set_once.rs                       |   8 +
 scripts/Makefile.context-analysis                  |  11 +
 scripts/Makefile.lib                               |  10 +
 scripts/atomic/gen-rust-atomic-helpers.sh          |   5 -
 scripts/atomic/kerneldoc/try_cmpxchg               |   2 +-
 scripts/checkpatch.pl                              |   7 +
 scripts/context-analysis-suppression.txt           |  33 ++
 scripts/tags.sh                                    |   1 +
 security/tomoyo/Makefile                           |   2 +
 security/tomoyo/common.c                           |  54 +-
 security/tomoyo/common.h                           |  77 +--
 security/tomoyo/domain.c                           |   1 +
 security/tomoyo/environ.c                          |   1 +
 security/tomoyo/file.c                             |   5 +
 security/tomoyo/gc.c                               |  28 +-
 security/tomoyo/mount.c                            |   2 +
 security/tomoyo/network.c                          |   3 +
 tools/include/linux/compiler-context-analysis.h    |  42 ++
 tools/include/linux/compiler_types.h               |  18 +-
 tools/testing/shared/linux/kernel.h                |   4 -
 144 files changed, 3222 insertions(+), 861 deletions(-)
 create mode 100644 Documentation/dev-tools/context-analysis.rst
 create mode 100644 include/linux/compiler-context-analysis.h
 create mode 100644 lib/test_context-analysis.c
 create mode 100644 rust/helpers/atomic_ext.c
 create mode 100644 scripts/Makefile.context-analysis
 create mode 100644 scripts/context-analysis-suppression.txt
 create mode 100644 tools/include/linux/compiler-context-analysis.h


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ