/linux/drivers/acpi/acpica/ |
H A D | exmutex.c | 37 struct acpi_thread_state *thread = obj_desc->mutex.owner_thread; in acpi_ex_unlink_mutex() 45 if (obj_desc->mutex.next) { in acpi_ex_unlink_mutex() 46 (obj_desc->mutex.next)->mutex.prev = obj_desc->mutex.prev; in acpi_ex_unlink_mutex() 49 if (obj_desc->mutex.prev) { in acpi_ex_unlink_mutex() 50 (obj_desc->mutex.prev)->mutex.next = obj_desc->mutex.next; in acpi_ex_unlink_mutex() 58 (obj_desc->mutex.prev)->mutex.original_sync_level = in acpi_ex_unlink_mutex() 59 obj_desc->mutex.original_sync_level; in acpi_ex_unlink_mutex() 61 thread->acquired_mutex_list = obj_desc->mutex.next; in acpi_ex_unlink_mutex() 88 obj_desc->mutex.prev = NULL; in acpi_ex_link_mutex() 89 obj_desc->mutex.next = list_head; in acpi_ex_link_mutex() [all …]
|
H A D | dsmethod.c | 263 status = acpi_os_create_mutex(&mutex_desc->mutex.os_mutex); in acpi_ds_create_method_mutex() 269 mutex_desc->mutex.sync_level = method_desc->method.sync_level; in acpi_ds_create_method_mutex() 270 method_desc->method.mutex = mutex_desc; in acpi_ds_create_method_mutex() 323 if (!obj_desc->method.mutex) { in acpi_ds_begin_method_execution() 345 obj_desc->method.mutex->mutex.sync_level)) { in acpi_ds_begin_method_execution() 360 !obj_desc->method.mutex->mutex.thread_id || in acpi_ds_begin_method_execution() 362 obj_desc->method.mutex->mutex.thread_id)) { in acpi_ds_begin_method_execution() 368 acpi_ex_system_wait_mutex(obj_desc->method.mutex-> in acpi_ds_begin_method_execution() 369 mutex.os_mutex, in acpi_ds_begin_method_execution() 378 obj_desc->method.mutex->mutex. in acpi_ds_begin_method_execution() [all …]
|
/linux/drivers/net/ethernet/netronome/nfp/nfpcore/ |
H A D | nfp_mutex.c | 128 struct nfp_cpp_mutex *mutex; in nfp_cpp_mutex_alloc() local 143 mutex = kzalloc(sizeof(*mutex), GFP_KERNEL); in nfp_cpp_mutex_alloc() 144 if (!mutex) in nfp_cpp_mutex_alloc() 147 mutex->cpp = cpp; in nfp_cpp_mutex_alloc() 148 mutex->target = target; in nfp_cpp_mutex_alloc() 149 mutex->address = address; in nfp_cpp_mutex_alloc() 150 mutex->key = key; in nfp_cpp_mutex_alloc() 151 mutex->depth = 0; in nfp_cpp_mutex_alloc() 153 return mutex; in nfp_cpp_mutex_alloc() 160 void nfp_cpp_mutex_free(struct nfp_cpp_mutex *mutex) in nfp_cpp_mutex_free() argument [all …]
|
/linux/Documentation/translations/zh_CN/locking/ |
H A D | mutex-design.rst | 4 :Original: Documentation/locking/mutex-design.rst 25 在Linux内核中,互斥锁(mutex)指的是一个特殊的加锁原语,它在共享内存系统上 36 互斥锁由“struct mutex”表示,在include/linux/mutex.h中定义,并在 37 kernel/locking/mutex.c中实现。这些锁使用一个原子变量(->owner)来跟踪 107 mutex_init(mutex); 111 void mutex_lock(struct mutex *lock); 112 void mutex_lock_nested(struct mutex *lock, unsigned int subclass); 113 int mutex_trylock(struct mutex *lock); 117 int mutex_lock_interruptible_nested(struct mutex *lock, 119 int mutex_lock_interruptible(struct mutex *lock); [all …]
|
/linux/drivers/misc/ |
H A D | ntsync.c | 64 } mutex; member 132 struct mutex wait_all_lock; 238 if (obj->u.mutex.owner && obj->u.mutex.owner != owner) in is_signaled() 240 return obj->u.mutex.count < UINT_MAX; in is_signaled() 287 if (obj->u.mutex.ownerdead) in try_wake_all() 289 obj->u.mutex.ownerdead = false; in try_wake_all() 290 obj->u.mutex.count++; in try_wake_all() 291 obj->u.mutex.owner = q->owner; in try_wake_all() 340 static void try_wake_any_mutex(struct ntsync_obj *mutex) in try_wake_any_mutex() argument 344 ntsync_assert_held(mutex); in try_wake_any_mutex() [all …]
|
/linux/include/linux/soc/mediatek/ |
H A D | mtk-mutex.h | 71 int mtk_mutex_prepare(struct mtk_mutex *mutex); 72 void mtk_mutex_add_comp(struct mtk_mutex *mutex, 74 void mtk_mutex_enable(struct mtk_mutex *mutex); 75 int mtk_mutex_enable_by_cmdq(struct mtk_mutex *mutex, 77 void mtk_mutex_disable(struct mtk_mutex *mutex); 78 void mtk_mutex_remove_comp(struct mtk_mutex *mutex, 80 void mtk_mutex_unprepare(struct mtk_mutex *mutex); 81 void mtk_mutex_put(struct mtk_mutex *mutex); 82 void mtk_mutex_acquire(struct mtk_mutex *mutex); 83 void mtk_mutex_release(struct mtk_mutex *mutex); [all …]
|
/linux/rust/helpers/ |
H A D | mutex.c | 5 void rust_helper_mutex_lock(struct mutex *lock) in rust_helper_mutex_lock() 10 int rust_helper_mutex_trylock(struct mutex *lock) in rust_helper_mutex_trylock() 15 void rust_helper___mutex_init(struct mutex *mutex, const char *name, in rust_helper___mutex_init() argument 18 __mutex_init(mutex, name, key); in rust_helper___mutex_init() 21 void rust_helper_mutex_assert_is_held(struct mutex *mutex) in rust_helper_mutex_assert_is_held() argument 23 lockdep_assert_held(mutex); in rust_helper_mutex_assert_is_held() 26 void rust_helper_mutex_destroy(struct mutex *lock) in rust_helper_mutex_destroy()
|
/linux/kernel/locking/ |
H A D | mutex.c | 47 __mutex_init(struct mutex *lock, const char *name, struct lock_class_key *key) in __mutex_init() 65 bool mutex_is_locked(struct mutex *lock) in mutex_is_locked() 77 unsigned long mutex_get_owner(struct mutex *lock) in mutex_get_owner() 87 static inline struct task_struct *__mutex_trylock_common(struct mutex *lock, bool handoff) in __mutex_trylock_common() 126 static inline bool __mutex_trylock_or_handoff(struct mutex *lock, bool handoff) in __mutex_trylock_or_handoff() 134 static inline bool __mutex_trylock(struct mutex *lock) in __mutex_trylock() 150 static __always_inline bool __mutex_trylock_fast(struct mutex *lock) in __mutex_trylock_fast() 163 static __always_inline bool __mutex_unlock_fast(struct mutex *lock) in __mutex_unlock_fast() 171 static inline void __mutex_set_flag(struct mutex *lock, unsigned long flag) in __mutex_set_flag() 176 static inline void __mutex_clear_flag(struct mutex *lock, unsigned long flag) in __mutex_clear_flag() [all …]
|
H A D | mutex-debug.c | 29 void debug_mutex_lock_common(struct mutex *lock, struct mutex_waiter *waiter) in debug_mutex_lock_common() 37 void debug_mutex_wake_waiter(struct mutex *lock, struct mutex_waiter *waiter) in debug_mutex_wake_waiter() 51 void debug_mutex_add_waiter(struct mutex *lock, struct mutex_waiter *waiter, in debug_mutex_add_waiter() 60 void debug_mutex_remove_waiter(struct mutex *lock, struct mutex_waiter *waiter, in debug_mutex_remove_waiter() 63 struct mutex *blocked_on = __get_task_blocked_on(task); in debug_mutex_remove_waiter() 73 void debug_mutex_unlock(struct mutex *lock) in debug_mutex_unlock() 81 void debug_mutex_init(struct mutex *lock, const char *name, in debug_mutex_init() 99 int __devm_mutex_init(struct device *dev, struct mutex *lock) in __devm_mutex_init() 113 void mutex_destroy(struct mutex *lock) in mutex_destroy()
|
H A D | mutex.h | 43 static inline struct task_struct *__mutex_owner(struct mutex *lock) in __mutex_owner() 51 extern void debug_mutex_lock_common(struct mutex *lock, 53 extern void debug_mutex_wake_waiter(struct mutex *lock, 56 extern void debug_mutex_add_waiter(struct mutex *lock, 59 extern void debug_mutex_remove_waiter(struct mutex *lock, struct mutex_waiter *waiter, 61 extern void debug_mutex_unlock(struct mutex *lock); 62 extern void debug_mutex_init(struct mutex *lock, const char *name,
|
/linux/drivers/media/i2c/ |
H A D | tw9900.c | 83 struct mutex mutex; member 193 mutex_lock(&tw9900->mutex); in tw9900_get_fmt() 195 mutex_unlock(&tw9900->mutex); in tw9900_get_fmt() 207 mutex_lock(&tw9900->mutex); in tw9900_set_fmt() 210 mutex_unlock(&tw9900->mutex); in tw9900_set_fmt() 216 mutex_unlock(&tw9900->mutex); in tw9900_set_fmt() 265 mutex_lock(&tw9900->mutex); in tw9900_s_stream() 268 mutex_unlock(&tw9900->mutex); in tw9900_s_stream() 272 mutex_unlock(&tw9900->mutex); in tw9900_s_stream() 279 mutex_lock(&tw9900->mutex); in tw9900_s_stream() [all …]
|
/linux/drivers/vhost/ |
H A D | test.c | 51 mutex_lock(&vq->mutex); in handle_vq() 54 mutex_unlock(&vq->mutex); in handle_vq() 93 mutex_unlock(&vq->mutex); in handle_vq() 135 mutex_lock(&vq->mutex); in vhost_test_stop_vq() 138 mutex_unlock(&vq->mutex); in vhost_test_stop_vq() 175 mutex_lock(&n->dev.mutex); in vhost_test_run() 190 mutex_lock(&vq->mutex); in vhost_test_run() 199 mutex_unlock(&vq->mutex); in vhost_test_run() 209 mutex_unlock(&n->dev.mutex); in vhost_test_run() 213 mutex_unlock(&n->dev.mutex); in vhost_test_run() [all …]
|
/linux/drivers/media/dvb-core/ |
H A D | dmxdev.c | 125 if (mutex_lock_interruptible(&dmxdev->mutex)) in dvb_dvr_open() 129 mutex_unlock(&dmxdev->mutex); in dvb_dvr_open() 153 mutex_unlock(&dmxdev->mutex); in dvb_dvr_open() 163 mutex_unlock(&dmxdev->mutex); in dvb_dvr_open() 168 mutex_unlock(&dmxdev->mutex); in dvb_dvr_open() 182 mutex_unlock(&dmxdev->mutex); in dvb_dvr_open() 189 mutex_unlock(&dmxdev->mutex); in dvb_dvr_open() 196 mutex_unlock(&dmxdev->mutex); in dvb_dvr_open() 205 mutex_lock(&dmxdev->mutex); in dvb_dvr_release() 234 mutex_unlock(&dmxdev->mutex); in dvb_dvr_release() [all …]
|
H A D | dvb_demux.c | 696 if (mutex_lock_interruptible(&demux->mutex)) in dmx_ts_feed_set() 701 mutex_unlock(&demux->mutex); in dmx_ts_feed_set() 707 mutex_unlock(&demux->mutex); in dmx_ts_feed_set() 723 mutex_unlock(&demux->mutex); in dmx_ts_feed_set() 734 if (mutex_lock_interruptible(&demux->mutex)) in dmx_ts_feed_start_filtering() 738 mutex_unlock(&demux->mutex); in dmx_ts_feed_start_filtering() 743 mutex_unlock(&demux->mutex); in dmx_ts_feed_start_filtering() 748 mutex_unlock(&demux->mutex); in dmx_ts_feed_start_filtering() 756 mutex_unlock(&demux->mutex); in dmx_ts_feed_start_filtering() 767 mutex_lock(&demux->mutex); in dmx_ts_feed_stop_filtering() [all …]
|
/linux/drivers/net/wireless/realtek/rtw88/ |
H A D | mac80211.c | 58 mutex_lock(&rtwdev->mutex); in rtw_ops_start() 60 mutex_unlock(&rtwdev->mutex); in rtw_ops_start() 69 mutex_lock(&rtwdev->mutex); in rtw_ops_stop() 71 mutex_unlock(&rtwdev->mutex); in rtw_ops_stop() 82 mutex_lock(&rtwdev->mutex); in rtw_ops_config() 104 mutex_unlock(&rtwdev->mutex); in rtw_ops_config() 168 mutex_lock(&rtwdev->mutex); in rtw_ops_add_interface() 172 mutex_unlock(&rtwdev->mutex); in rtw_ops_add_interface() 178 mutex_unlock(&rtwdev->mutex); in rtw_ops_add_interface() 207 mutex_unlock(&rtwdev->mutex); in rtw_ops_add_interface() [all …]
|
/linux/drivers/mtd/chips/ |
H A D | cfi_cmdset_0020.c | 268 mutex_lock(&chip->mutex); in do_read_onechip() 300 mutex_unlock(&chip->mutex); in do_read_onechip() 306 mutex_unlock(&chip->mutex); in do_read_onechip() 308 mutex_lock(&chip->mutex); in do_read_onechip() 339 mutex_unlock(&chip->mutex); in do_read_onechip() 345 mutex_unlock(&chip->mutex); in do_read_onechip() 355 mutex_unlock(&chip->mutex); in do_read_onechip() 380 mutex_unlock(&chip->mutex); in do_read_onechip() 447 mutex_lock(&chip->mutex); in do_write_buffer() 472 mutex_unlock(&chip->mutex); in do_write_buffer() [all …]
|
/linux/drivers/cpufreq/ |
H A D | cpufreq_userspace.c | 21 struct mutex mutex; member 38 mutex_lock(&userspace->mutex); in cpufreq_set() 46 mutex_unlock(&userspace->mutex); in cpufreq_set() 63 mutex_init(&userspace->mutex); in cpufreq_userspace_policy_init() 86 mutex_lock(&userspace->mutex); in cpufreq_userspace_policy_start() 89 mutex_unlock(&userspace->mutex); in cpufreq_userspace_policy_start() 99 mutex_lock(&userspace->mutex); in cpufreq_userspace_policy_stop() 102 mutex_unlock(&userspace->mutex); in cpufreq_userspace_policy_stop() 109 mutex_lock(&userspace->mutex); in cpufreq_userspace_policy_limits() 124 mutex_unlock(&userspace->mutex); in cpufreq_userspace_policy_limits()
|
/linux/net/ceph/ |
H A D | auth.c | 66 mutex_init(&ac->mutex); in ceph_auth_init() 94 mutex_lock(&ac->mutex); in ceph_auth_reset() 99 mutex_unlock(&ac->mutex); in ceph_auth_reset() 128 mutex_lock(&ac->mutex); in ceph_auth_build_hello() 156 mutex_unlock(&ac->mutex); in ceph_auth_build_hello() 213 mutex_lock(&ac->mutex); in ceph_handle_auth_reply() 275 mutex_unlock(&ac->mutex); in ceph_handle_auth_reply() 289 mutex_lock(&ac->mutex); in ceph_build_auth() 292 mutex_unlock(&ac->mutex); in ceph_build_auth() 300 mutex_lock(&ac->mutex); in ceph_auth_is_authenticated() [all …]
|
/linux/drivers/media/cec/i2c/ |
H A D | ch7322.c | 154 struct mutex mutex; /* device access mutex */ member 172 WARN_ON(!mutex_is_locked(&ch7322->mutex)); in ch7322_send_message() 214 WARN_ON(!mutex_is_locked(&ch7322->mutex)); in ch7322_receive_message() 243 mutex_lock(&ch7322->mutex); in ch7322_tx_done() 246 mutex_unlock(&ch7322->mutex); in ch7322_tx_done() 275 mutex_lock(&ch7322->mutex); in ch7322_rx_done() 277 mutex_unlock(&ch7322->mutex); in ch7322_rx_done() 295 mutex_lock(&ch7322->mutex); in ch7322_phys_addr() 298 mutex_unlock(&ch7322->mutex); in ch7322_phys_addr() 311 mutex_lock(&ch7322->mutex); in ch7322_irq() [all …]
|
/linux/drivers/gpu/drm/i915/ |
H A D | intel_wakeref.h | 42 struct mutex mutex; member 57 struct lock_class_key mutex; member 139 might_lock(&wf->mutex); in intel_wakeref_might_get() 190 might_lock(&wf->mutex); in intel_wakeref_might_put() 203 __acquires(wf->mutex) in intel_wakeref_lock() 205 mutex_lock(&wf->mutex); in intel_wakeref_lock() 216 __releases(wf->mutex) in intel_wakeref_unlock() 218 mutex_unlock(&wf->mutex); in intel_wakeref_unlock() 231 mutex_lock(&wf->mutex); in intel_wakeref_unlock_wait() 232 mutex_unlock(&wf->mutex); in intel_wakeref_unlock_wait() [all …]
|
/linux/drivers/mtd/lpddr/ |
H A D | lpddr_cmds.c | 88 mutex_init(&chip->mutex); in lpddr_cmdset() 152 mutex_unlock(&chip->mutex); in wait_for_ready() 167 mutex_lock(&chip->mutex); in wait_for_ready() 174 mutex_unlock(&chip->mutex); in wait_for_ready() 177 mutex_lock(&chip->mutex); in wait_for_ready() 238 ret = mutex_trylock(&contender->mutex); in get_chip() 242 mutex_unlock(&chip->mutex); in get_chip() 244 mutex_lock(&chip->mutex); in get_chip() 247 mutex_unlock(&contender->mutex); in get_chip() 251 mutex_unlock(&contender->mutex); in get_chip() [all …]
|
/linux/sound/aoa/codecs/ |
H A D | onyx.c | 61 struct mutex mutex; member 125 mutex_lock(&onyx->mutex); in onyx_snd_vol_get() 128 mutex_unlock(&onyx->mutex); in onyx_snd_vol_get() 149 mutex_lock(&onyx->mutex); in onyx_snd_vol_put() 155 mutex_unlock(&onyx->mutex); in onyx_snd_vol_put() 165 mutex_unlock(&onyx->mutex); in onyx_snd_vol_put() 201 mutex_lock(&onyx->mutex); in onyx_snd_inputgain_get() 203 mutex_unlock(&onyx->mutex); in onyx_snd_inputgain_get() 220 mutex_lock(&onyx->mutex); in onyx_snd_inputgain_put() 227 mutex_unlock(&onyx->mutex); in onyx_snd_inputgain_put() [all …]
|
/linux/drivers/net/wireless/zydas/zd1211rw/ |
H A D | zd_chip.c | 27 mutex_init(&chip->mutex); in zd_chip_init() 34 ZD_ASSERT(!mutex_is_locked(&chip->mutex)); in zd_chip_clear() 37 mutex_destroy(&chip->mutex); in zd_chip_clear() 141 ZD_ASSERT(mutex_is_locked(&chip->mutex)); in _zd_iowrite32v_async_locked() 190 ZD_ASSERT(mutex_is_locked(&chip->mutex)); in zd_iowrite16a_locked() 259 mutex_lock(&chip->mutex); in zd_ioread16() 261 mutex_unlock(&chip->mutex); in zd_ioread16() 269 mutex_lock(&chip->mutex); in zd_ioread32() 271 mutex_unlock(&chip->mutex); in zd_ioread32() 279 mutex_lock(&chip->mutex); in zd_iowrite16() [all …]
|
/linux/drivers/tee/optee/ |
H A D | call.c | 44 mutex_init(&cq->mutex); in optee_cq_init() 73 mutex_lock(&cq->mutex); in optee_cq_wait_init() 97 mutex_unlock(&cq->mutex); in optee_cq_wait_init() 101 mutex_lock(&cq->mutex); in optee_cq_wait_init() 113 mutex_unlock(&cq->mutex); in optee_cq_wait_init() 122 mutex_lock(&cq->mutex); in optee_cq_wait_for_completion() 129 mutex_unlock(&cq->mutex); in optee_cq_wait_for_completion() 160 mutex_lock(&cq->mutex); in optee_cq_wait_final() 179 mutex_unlock(&cq->mutex); in optee_cq_wait_final() 188 mutex_lock(&cq->mutex); in optee_cq_incr_sys_thread_count() [all …]
|
/linux/drivers/iio/accel/ |
H A D | mma9551.c | 45 struct mutex mutex; member 115 mutex_lock(&data->mutex); in mma9551_read_raw() 117 mutex_unlock(&data->mutex); in mma9551_read_raw() 125 mutex_lock(&data->mutex); in mma9551_read_raw() 128 mutex_unlock(&data->mutex); in mma9551_read_raw() 233 mutex_lock(&data->mutex); in mma9551_write_event_config() 236 mutex_unlock(&data->mutex); in mma9551_write_event_config() 257 mutex_lock(&data->mutex); in mma9551_write_event_value() 263 mutex_unlock(&data->mutex); in mma9551_write_event_value() 283 mutex_lock(&data->mutex); in mma9551_read_event_value() [all …]
|