/linux/include/linux/ |
A D | ww_mutex.h | 47 struct ww_mutex { struct 98 static inline void ww_mutex_init(struct ww_mutex *lock, in ww_mutex_init() 234 extern int /* __must_check */ ww_mutex_lock(struct ww_mutex *lock, struct ww_acquire_ctx *ctx); 266 extern int __must_check ww_mutex_lock_interruptible(struct ww_mutex *lock, 293 ww_mutex_lock_slow(struct ww_mutex *lock, struct ww_acquire_ctx *ctx) in ww_mutex_lock_slow() 329 ww_mutex_lock_slow_interruptible(struct ww_mutex *lock, in ww_mutex_lock_slow_interruptible() 338 extern void ww_mutex_unlock(struct ww_mutex *lock); 340 extern int __must_check ww_mutex_trylock(struct ww_mutex *lock, 351 static inline void ww_mutex_destroy(struct ww_mutex *lock) in ww_mutex_destroy() 364 static inline bool ww_mutex_is_locked(struct ww_mutex *lock) in ww_mutex_is_locked()
|
A D | seqlock.h | 187 #define seqcount_ww_mutex_init(s, lock) seqcount_LOCKNAME_init(s, lock, ww_mutex) 280 SEQCOUNT_LOCKNAME(ww_mutex, struct ww_mutex, true, &s->lock->base, ww_mutex, ww_mutex_lock(… 308 __seqprop_case((s), ww_mutex, prop))
|
A D | dma-resv.h | 91 struct ww_mutex lock;
|
/linux/kernel/locking/ |
A D | ww_rt_mutex.c | 12 int ww_mutex_trylock(struct ww_mutex *lock, struct ww_acquire_ctx *ww_ctx) in ww_mutex_trylock() 38 __ww_rt_mutex_lock(struct ww_mutex *lock, struct ww_acquire_ctx *ww_ctx, in __ww_rt_mutex_lock() 79 ww_mutex_lock(struct ww_mutex *lock, struct ww_acquire_ctx *ctx) in ww_mutex_lock() 86 ww_mutex_lock_interruptible(struct ww_mutex *lock, struct ww_acquire_ctx *ctx) in ww_mutex_lock_interruptible() 92 void __sched ww_mutex_unlock(struct ww_mutex *lock) in ww_mutex_unlock()
|
A D | ww_mutex.h | 181 ww_mutex_lock_acquired(struct ww_mutex *ww, struct ww_acquire_ctx *ww_ctx) in ww_mutex_lock_acquired() 378 ww_mutex_set_context_fastpath(struct ww_mutex *lock, struct ww_acquire_ctx *ctx) in ww_mutex_set_context_fastpath() 417 struct ww_mutex *ww; in __ww_mutex_kill() 419 ww = container_of(lock, struct ww_mutex, base); in __ww_mutex_kill() 444 struct ww_mutex *ww = container_of(lock, struct ww_mutex, base); in __ww_mutex_check_kill() 545 struct ww_mutex *ww = container_of(lock, struct ww_mutex, base); in __ww_mutex_add_waiter() 559 static inline void __ww_mutex_unlock(struct ww_mutex *lock) in __ww_mutex_unlock()
|
A D | mutex.c | 304 struct ww_mutex *ww; in ww_mutex_spin_on_owner() 306 ww = container_of(lock, struct ww_mutex, base); in ww_mutex_spin_on_owner() 562 void __sched ww_mutex_unlock(struct ww_mutex *lock) in ww_mutex_unlock() 578 struct ww_mutex *ww; in __mutex_lock_common() 588 ww = container_of(lock, struct ww_mutex, base); in __mutex_lock_common() 763 int ww_mutex_trylock(struct ww_mutex *ww, struct ww_acquire_ctx *ww_ctx) in ww_mutex_trylock() 833 ww_mutex_deadlock_injection(struct ww_mutex *lock, struct ww_acquire_ctx *ctx) in ww_mutex_deadlock_injection() 859 ww_mutex_lock(struct ww_mutex *lock, struct ww_acquire_ctx *ctx) in ww_mutex_lock() 1044 __ww_mutex_lock_slowpath(struct ww_mutex *lock, struct ww_acquire_ctx *ctx) in __ww_mutex_lock_slowpath() 1051 __ww_mutex_lock_interruptible_slowpath(struct ww_mutex *lock, in __ww_mutex_lock_interruptible_slowpath() [all …]
|
A D | test-ww_mutex.c | 30 struct ww_mutex mutex; 123 struct ww_mutex mutex; in test_aa() 178 struct ww_mutex a_mutex; 179 struct ww_mutex b_mutex; 279 struct ww_mutex a_mutex; 280 struct ww_mutex *b_mutex; 384 struct ww_mutex *locks; 422 struct ww_mutex *locks = stress->locks; in stress_inorder_work() 474 struct ww_mutex *lock; 541 struct ww_mutex *lock = stress->locks + (get_random_int() % nlocks); in stress_one_work() [all …]
|
A D | Makefile | 33 obj-$(CONFIG_WW_MUTEX_SELFTEST) += test-ww_mutex.o
|
A D | rtmutex.c | 45 static inline void ww_mutex_lock_acquired(struct ww_mutex *lock, in ww_mutex_lock_acquired() 59 # define ww_container_of(rtm) container_of(rtm, struct ww_mutex, base) 1564 struct ww_mutex *ww = ww_container_of(rtm); in __rt_mutex_slowlock()
|
A D | locktorture.c | 376 static struct ww_mutex torture_ww_mutex_0, torture_ww_mutex_1, torture_ww_mutex_2; 405 struct ww_mutex *lock; in torture_ww_mutex_lock()
|
A D | .mutex.o.cmd | 375 include/linux/ww_mutex.h \ 875 kernel/locking/ww_mutex.h \
|
/linux/tools/testing/selftests/locking/ |
A D | ww_mutex.sh | 8 if ! /sbin/modprobe -q -n test-ww_mutex; then 13 if /sbin/modprobe -q test-ww_mutex; then 14 /sbin/modprobe -q -r test-ww_mutex
|
A D | Makefile | 8 TEST_PROGS := ww_mutex.sh
|
/linux/Documentation/locking/ |
A D | ww-mutex-design.rst | 125 struct ww_mutex lock; 236 e.g. when adjusting edges in a graph where each node has its own ww_mutex lock, 270 struct ww_mutex ww_mutex; 284 ww_mutex_unlock(entry->ww_mutex) 300 ret = ww_mutex_lock(obj->ww_mutex, ctx); 338 ww_mutex currently encapsulates a struct mutex, this means no extra overhead for
|
A D | locktypes.rst | 43 - ww_mutex
|
/linux/include/drm/ |
A D | drm_modeset_lock.h | 88 struct ww_mutex mutex;
|
/linux/include/linux/regulator/ |
A D | driver.h | 621 struct ww_mutex mutex; /* consumer lock */
|
/linux/Documentation/gpu/ |
A D | i915.rst | 362 dma_resv ww_mutex to serialize against other operations. 379 * -EDEADLK handling with ww_mutex
|
/linux/kernel/power/ |
A D | .poweroff.o.cmd | 491 include/linux/ww_mutex.h \
|
/linux/drivers/base/firmware_loader/builtin/ |
A D | .main.o.cmd | 456 include/linux/ww_mutex.h \
|
/linux/crypto/ |
A D | .memneq.o.cmd | 470 include/linux/ww_mutex.h \
|
/linux/crypto/asymmetric_keys/ |
A D | .x509_cert_parser.o.cmd | 465 include/linux/ww_mutex.h \
|
A D | .pkcs7_trust.o.cmd | 465 include/linux/ww_mutex.h \
|
/linux/drivers/video/ |
A D | .display_timing.o.cmd | 465 include/linux/ww_mutex.h \
|
/linux/lib/ |
A D | .xarray.o.cmd | 466 include/linux/ww_mutex.h \
|