/Linux-v6.1/drivers/acpi/acpica/ |
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 …]
|
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-v6.1/drivers/net/ethernet/netronome/nfp/nfpcore/ |
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-v6.1/include/linux/ |
D | mutex.h | 63 struct mutex { struct 83 extern void mutex_destroy(struct mutex *lock); argument 89 static inline void mutex_destroy(struct mutex *lock) {} in mutex_destroy() 101 #define mutex_init(mutex) \ argument 105 __mutex_init((mutex), #mutex, &__key); \ 116 struct mutex mutexname = __MUTEX_INITIALIZER(mutexname) 118 extern void __mutex_init(struct mutex *lock, const char *name, 127 extern bool mutex_is_locked(struct mutex *lock); 135 struct mutex { struct 149 struct mutex mutexname = __MUTEX_INITIALIZER(mutexname) argument [all …]
|
/Linux-v6.1/drivers/soc/mediatek/ |
D | mtk-mutex.c | 230 struct mtk_mutex mutex[10]; member 536 if (!mtx->mutex[i].claimed) { in mtk_mutex_get() 537 mtx->mutex[i].claimed = true; in mtk_mutex_get() 538 return &mtx->mutex[i]; in mtk_mutex_get() 545 void mtk_mutex_put(struct mtk_mutex *mutex) in mtk_mutex_put() argument 547 struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, in mtk_mutex_put() 548 mutex[mutex->id]); in mtk_mutex_put() 550 WARN_ON(&mtx->mutex[mutex->id] != mutex); in mtk_mutex_put() 552 mutex->claimed = false; in mtk_mutex_put() 556 int mtk_mutex_prepare(struct mtk_mutex *mutex) in mtk_mutex_prepare() argument [all …]
|
/Linux-v6.1/drivers/gpu/drm/amd/pm/ |
D | amdgpu_dpm.c | 47 mutex_lock(&adev->pm.mutex); in amdgpu_dpm_get_sclk() 50 mutex_unlock(&adev->pm.mutex); in amdgpu_dpm_get_sclk() 63 mutex_lock(&adev->pm.mutex); in amdgpu_dpm_get_mclk() 66 mutex_unlock(&adev->pm.mutex); in amdgpu_dpm_get_mclk() 83 mutex_lock(&adev->pm.mutex); in amdgpu_dpm_set_powergating_by_smu() 105 mutex_unlock(&adev->pm.mutex); in amdgpu_dpm_set_powergating_by_smu() 115 mutex_lock(&adev->pm.mutex); in amdgpu_dpm_set_gfx_power_up_by_imu() 117 mutex_unlock(&adev->pm.mutex); in amdgpu_dpm_set_gfx_power_up_by_imu() 133 mutex_lock(&adev->pm.mutex); in amdgpu_dpm_baco_enter() 138 mutex_unlock(&adev->pm.mutex); in amdgpu_dpm_baco_enter() [all …]
|
/Linux-v6.1/include/linux/soc/mediatek/ |
D | mtk-mutex.h | 36 int mtk_mutex_prepare(struct mtk_mutex *mutex); 37 void mtk_mutex_add_comp(struct mtk_mutex *mutex, 39 void mtk_mutex_enable(struct mtk_mutex *mutex); 40 int mtk_mutex_enable_by_cmdq(struct mtk_mutex *mutex, 42 void mtk_mutex_disable(struct mtk_mutex *mutex); 43 void mtk_mutex_remove_comp(struct mtk_mutex *mutex, 45 void mtk_mutex_unprepare(struct mtk_mutex *mutex); 46 void mtk_mutex_put(struct mtk_mutex *mutex); 47 void mtk_mutex_acquire(struct mtk_mutex *mutex); 48 void mtk_mutex_release(struct mtk_mutex *mutex); [all …]
|
/Linux-v6.1/Documentation/translations/zh_CN/locking/ |
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-v6.1/kernel/locking/ |
D | mutex.c | 46 __mutex_init(struct mutex *lock, const char *name, struct lock_class_key *key) in __mutex_init() 79 static inline struct task_struct *__mutex_owner(struct mutex *lock) in __mutex_owner() 89 bool mutex_is_locked(struct mutex *lock) in mutex_is_locked() 103 static inline struct task_struct *__mutex_trylock_common(struct mutex *lock, bool handoff) in __mutex_trylock_common() 142 static inline bool __mutex_trylock_or_handoff(struct mutex *lock, bool handoff) in __mutex_trylock_or_handoff() 150 static inline bool __mutex_trylock(struct mutex *lock) in __mutex_trylock() 166 static __always_inline bool __mutex_trylock_fast(struct mutex *lock) in __mutex_trylock_fast() 177 static __always_inline bool __mutex_unlock_fast(struct mutex *lock) in __mutex_unlock_fast() 185 static inline void __mutex_set_flag(struct mutex *lock, unsigned long flag) in __mutex_set_flag() 190 static inline void __mutex_clear_flag(struct mutex *lock, unsigned long flag) in __mutex_clear_flag() [all …]
|
/Linux-v6.1/drivers/vhost/ |
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-v6.1/drivers/net/wireless/realtek/rtw89/ |
D | mac80211.c | 51 mutex_lock(&rtwdev->mutex); in rtw89_ops_start() 53 mutex_unlock(&rtwdev->mutex); in rtw89_ops_start() 62 mutex_lock(&rtwdev->mutex); in rtw89_ops_stop() 64 mutex_unlock(&rtwdev->mutex); in rtw89_ops_stop() 74 mutex_lock(&rtwdev->mutex); in rtw89_ops_config() 100 mutex_unlock(&rtwdev->mutex); in rtw89_ops_config() 115 mutex_lock(&rtwdev->mutex); in rtw89_ops_add_interface() 146 mutex_unlock(&rtwdev->mutex); in rtw89_ops_add_interface() 162 mutex_lock(&rtwdev->mutex); in rtw89_ops_remove_interface() 168 mutex_unlock(&rtwdev->mutex); in rtw89_ops_remove_interface() [all …]
|
/Linux-v6.1/drivers/media/dvb-core/ |
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 …]
|
/Linux-v6.1/Documentation/locking/ |
D | mutex-design.rst | 26 Mutexes are represented by 'struct mutex', defined in include/linux/mutex.h 27 and implemented in kernel/locking/mutex.c. These locks use an atomic variable 37 When acquiring a mutex, there are three possible paths that can be 49 soon. The mutex spinners are queued up using MCS lock so that only 50 one spinner can compete for the mutex. 61 waiting to spin on mutex owner, only to go directly to slowpath upon 78 The mutex subsystem checks and enforces the following rules: 80 - Only one task can hold the mutex at a time. 81 - Only the owner can unlock the mutex. 84 - A mutex must only be initialized via the API (see below). [all …]
|
/Linux-v6.1/drivers/net/wireless/realtek/rtw88/ |
D | mac80211.c | 54 mutex_lock(&rtwdev->mutex); in rtw_ops_start() 56 mutex_unlock(&rtwdev->mutex); in rtw_ops_start() 65 mutex_lock(&rtwdev->mutex); in rtw_ops_stop() 67 mutex_unlock(&rtwdev->mutex); in rtw_ops_stop() 78 mutex_lock(&rtwdev->mutex); in rtw_ops_config() 109 mutex_unlock(&rtwdev->mutex); in rtw_ops_config() 175 mutex_lock(&rtwdev->mutex); in rtw_ops_add_interface() 198 mutex_unlock(&rtwdev->mutex); in rtw_ops_add_interface() 210 mutex_unlock(&rtwdev->mutex); in rtw_ops_add_interface() 225 mutex_lock(&rtwdev->mutex); in rtw_ops_remove_interface() [all …]
|
/Linux-v6.1/drivers/gpu/drm/i915/ |
D | intel_wakeref.h | 38 struct mutex mutex; member 49 struct lock_class_key mutex; member 129 might_lock(&wf->mutex); in intel_wakeref_might_get() 182 might_lock(&wf->mutex); in intel_wakeref_might_put() 195 __acquires(wf->mutex) in intel_wakeref_lock() 197 mutex_lock(&wf->mutex); in intel_wakeref_lock() 208 __releases(wf->mutex) in intel_wakeref_unlock() 210 mutex_unlock(&wf->mutex); in intel_wakeref_unlock() 223 mutex_lock(&wf->mutex); in intel_wakeref_unlock_wait() 224 mutex_unlock(&wf->mutex); in intel_wakeref_unlock_wait() [all …]
|
/Linux-v6.1/drivers/media/usb/uvc/ |
D | uvc_queue.c | 227 queue->queue.lock = &queue->mutex; in uvc_queue_init() 243 mutex_init(&queue->mutex); in uvc_queue_init() 253 mutex_lock(&queue->mutex); in uvc_queue_release() 255 mutex_unlock(&queue->mutex); in uvc_queue_release() 267 mutex_lock(&queue->mutex); in uvc_request_buffers() 269 mutex_unlock(&queue->mutex); in uvc_request_buffers() 278 mutex_lock(&queue->mutex); in uvc_query_buffer() 280 mutex_unlock(&queue->mutex); in uvc_query_buffer() 290 mutex_lock(&queue->mutex); in uvc_create_buffers() 292 mutex_unlock(&queue->mutex); in uvc_create_buffers() [all …]
|
/Linux-v6.1/drivers/mtd/chips/ |
D | cfi_cmdset_0020.c | 267 mutex_lock(&chip->mutex); in do_read_onechip() 299 mutex_unlock(&chip->mutex); in do_read_onechip() 305 mutex_unlock(&chip->mutex); in do_read_onechip() 307 mutex_lock(&chip->mutex); in do_read_onechip() 338 mutex_unlock(&chip->mutex); in do_read_onechip() 344 mutex_unlock(&chip->mutex); in do_read_onechip() 354 mutex_unlock(&chip->mutex); in do_read_onechip() 379 mutex_unlock(&chip->mutex); in do_read_onechip() 446 mutex_lock(&chip->mutex); in do_write_buffer() 471 mutex_unlock(&chip->mutex); in do_write_buffer() [all …]
|
/Linux-v6.1/net/ceph/ |
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-v6.1/drivers/media/cec/i2c/ |
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-v6.1/drivers/gpu/drm/ |
D | drm_modeset_lock.c | 153 mutex_lock(&config->mutex); in drm_modeset_lock_all() 211 mutex_unlock(&dev->mode_config.mutex); in drm_modeset_unlock_all() 230 WARN_ON(!drm_modeset_is_locked(&crtc->mutex)); in drm_warn_on_modeset_not_all_locked() 233 WARN_ON(!mutex_is_locked(&dev->mode_config.mutex)); in drm_warn_on_modeset_not_all_locked() 302 if (!ww_mutex_trylock(&lock->mutex, NULL)) in modeset_lock() 307 ret = ww_mutex_lock_slow_interruptible(&lock->mutex, &ctx->ww_ctx); in modeset_lock() 309 ret = ww_mutex_lock_interruptible(&lock->mutex, &ctx->ww_ctx); in modeset_lock() 311 ww_mutex_lock_slow(&lock->mutex, &ctx->ww_ctx); in modeset_lock() 314 ret = ww_mutex_lock(&lock->mutex, &ctx->ww_ctx); in modeset_lock() 368 ww_mutex_init(&lock->mutex, &crtc_ww_class); in drm_modeset_lock_init() [all …]
|
/Linux-v6.1/tools/perf/util/ |
D | mutex.h | 72 struct LOCKABLE mutex { struct 82 void mutex_init(struct mutex *mtx); 87 void mutex_init_pshared(struct mutex *mtx); 88 void mutex_destroy(struct mutex *mtx); 90 void mutex_lock(struct mutex *mtx) EXCLUSIVE_LOCK_FUNCTION(*mtx); 91 void mutex_unlock(struct mutex *mtx) UNLOCK_FUNCTION(*mtx); 93 bool mutex_trylock(struct mutex *mtx) EXCLUSIVE_TRYLOCK_FUNCTION(true, *mtx); 104 void cond_wait(struct cond *cnd, struct mutex *mtx) EXCLUSIVE_LOCKS_REQUIRED(mtx);
|
/Linux-v6.1/drivers/mtd/lpddr/ |
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-v6.1/sound/aoa/codecs/ |
D | onyx.c | 60 struct mutex mutex; member 124 mutex_lock(&onyx->mutex); in onyx_snd_vol_get() 127 mutex_unlock(&onyx->mutex); in onyx_snd_vol_get() 148 mutex_lock(&onyx->mutex); in onyx_snd_vol_put() 154 mutex_unlock(&onyx->mutex); in onyx_snd_vol_put() 164 mutex_unlock(&onyx->mutex); in onyx_snd_vol_put() 200 mutex_lock(&onyx->mutex); in onyx_snd_inputgain_get() 202 mutex_unlock(&onyx->mutex); in onyx_snd_inputgain_get() 219 mutex_lock(&onyx->mutex); in onyx_snd_inputgain_put() 226 mutex_unlock(&onyx->mutex); in onyx_snd_inputgain_put() [all …]
|
/Linux-v6.1/drivers/net/wireless/zydas/zd1211rw/ |
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-v6.1/drivers/leds/trigger/ |
D | ledtrig-tty.c | 13 struct mutex mutex; member 30 mutex_lock(&trigger_data->mutex); in ttyname_show() 35 mutex_unlock(&trigger_data->mutex); in ttyname_show() 60 mutex_lock(&trigger_data->mutex); in ttyname_store() 70 mutex_unlock(&trigger_data->mutex); in ttyname_store() 86 mutex_lock(&trigger_data->mutex); in ledtrig_tty_work() 90 mutex_unlock(&trigger_data->mutex); in ledtrig_tty_work() 119 mutex_unlock(&trigger_data->mutex); in ledtrig_tty_work() 134 mutex_unlock(&trigger_data->mutex); in ledtrig_tty_work() 156 mutex_init(&trigger_data->mutex); in ledtrig_tty_activate()
|