| /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/drivers/gpu/drm/amd/pm/ |
| H A D | amdgpu_dpm.c | 49 mutex_lock(&adev->pm.mutex); in amdgpu_dpm_get_sclk() 52 mutex_unlock(&adev->pm.mutex); in amdgpu_dpm_get_sclk() 65 mutex_lock(&adev->pm.mutex); in amdgpu_dpm_get_mclk() 68 mutex_unlock(&adev->pm.mutex); in amdgpu_dpm_get_mclk() 90 mutex_lock(&adev->pm.mutex); in amdgpu_dpm_set_powergating_by_smu() 118 mutex_unlock(&adev->pm.mutex); in amdgpu_dpm_set_powergating_by_smu() 128 mutex_lock(&adev->pm.mutex); in amdgpu_dpm_set_gfx_power_up_by_imu() 130 mutex_unlock(&adev->pm.mutex); in amdgpu_dpm_set_gfx_power_up_by_imu() 146 mutex_lock(&adev->pm.mutex); in amdgpu_dpm_baco_enter() 151 mutex_unlock(&adev->pm.mutex); in amdgpu_dpm_baco_enter() [all …]
|
| /linux/drivers/soc/mediatek/ |
| H A D | mtk-mutex.c | 41 #define DISP_REG_MUTEX_MOD(mutex, id, n) ({ \ argument 42 const typeof(mutex) _mutex = (mutex); \ 365 struct mtk_mutex mutex[MTK_MUTEX_MAX_HANDLES]; member 854 if (!mtx->mutex[i].claimed) { in mtk_mutex_get() 855 mtx->mutex[i].claimed = true; in mtk_mutex_get() 856 return &mtx->mutex[i]; in mtk_mutex_get() 863 void mtk_mutex_put(struct mtk_mutex *mutex) in mtk_mutex_put() argument 865 struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, in mtk_mutex_put() 866 mutex[mutex->id]); in mtk_mutex_put() 868 WARN_ON(&mtx->mutex[mutex->id] != mutex); in mtk_mutex_put() [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/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/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 | 57 mutex_lock(&vq->mutex); in handle_vq() 60 mutex_unlock(&vq->mutex); in handle_vq() 99 mutex_unlock(&vq->mutex); in handle_vq() 141 mutex_lock(&vq->mutex); in vhost_test_stop_vq() 144 mutex_unlock(&vq->mutex); in vhost_test_stop_vq() 181 mutex_lock(&n->dev.mutex); in vhost_test_run() 196 mutex_lock(&vq->mutex); in vhost_test_run() 205 mutex_unlock(&vq->mutex); in vhost_test_run() 215 mutex_unlock(&n->dev.mutex); in vhost_test_run() 219 mutex_unlock(&n->dev.mutex); in vhost_test_run() [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/Documentation/locking/ |
| H A 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/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/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/tools/perf/util/ |
| H A D | mutex.h | 91 struct LOCKABLE mutex { struct 101 void mutex_init(struct mutex *mtx); 106 void mutex_init_pshared(struct mutex *mtx); 108 void mutex_init_recursive(struct mutex *mtx); 109 void mutex_destroy(struct mutex *mtx); 111 void mutex_lock(struct mutex *mtx) EXCLUSIVE_LOCK_FUNCTION(*mtx); 112 void mutex_unlock(struct mutex *mtx) UNLOCK_FUNCTION(*mtx); 114 bool mutex_trylock(struct mutex *mtx) EXCLUSIVE_TRYLOCK_FUNCTION(true, *mtx); 125 void cond_wait(struct cond *cnd, struct mutex *mtx) EXCLUSIVE_LOCKS_REQUIRED(mtx);
|
| H A D | mutex.c | 20 static void __mutex_init(struct mutex *mtx, bool pshared, bool recursive) in __mutex_init() 38 void mutex_init(struct mutex *mtx) in mutex_init() 43 void mutex_init_pshared(struct mutex *mtx) in mutex_init_pshared() 48 void mutex_init_recursive(struct mutex *mtx) in mutex_init_recursive() 53 void mutex_destroy(struct mutex *mtx) in mutex_destroy() 58 void mutex_lock(struct mutex *mtx) in mutex_lock() 64 void mutex_unlock(struct mutex *mtx) in mutex_unlock() 70 bool mutex_trylock(struct mutex *mtx) in mutex_trylock() 112 void cond_wait(struct cond *cnd, struct mutex *mtx) in cond_wait()
|
| /linux/fs/kernfs/ |
| H A D | file.c | 43 static inline struct mutex *kernfs_open_file_mutex_ptr(struct kernfs_node *kn) in kernfs_open_file_mutex_ptr() 50 static inline struct mutex *kernfs_open_file_mutex_lock(struct kernfs_node *kn) in kernfs_open_file_mutex_lock() 52 struct mutex *lock; in kernfs_open_file_mutex_lock() 172 mutex_lock(&of->mutex); in kernfs_seq_start() 214 mutex_unlock(&of->mutex); in kernfs_seq_stop() 258 mutex_lock(&of->mutex); in kernfs_file_read_iter() 261 mutex_unlock(&of->mutex); in kernfs_file_read_iter() 274 mutex_unlock(&of->mutex); in kernfs_file_read_iter() 343 mutex_lock(&of->mutex); in kernfs_fop_write_iter() 345 mutex_unlock(&of->mutex); in kernfs_fop_write_iter() [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 …]
|
| H A D | mma9553.c | 176 struct mutex mutex; member 452 mutex_lock(&data->mutex); in mma9553_read_status_word() 455 mutex_unlock(&data->mutex); in mma9553_read_status_word() 531 mutex_lock(&data->mutex); in mma9553_read_raw() 534 mutex_unlock(&data->mutex); in mma9553_read_raw() 613 mutex_lock(&data->mutex); in mma9553_write_raw() 616 mutex_unlock(&data->mutex); in mma9553_write_raw() 620 mutex_unlock(&data->mutex); in mma9553_write_raw() 627 mutex_lock(&data->mutex); in mma9553_write_raw() 632 mutex_unlock(&data->mutex); in mma9553_write_raw() [all …]
|
| /linux/Documentation/translations/zh_CN/core-api/ |
| H A D | kref.rst | 169 这违反了规则3,因为你还没有持有一个有效的指针。你必须添加一个mutex(或其他锁)。 172 static DEFINE_MUTEX(mutex); 183 mutex_lock(&mutex); 188 mutex_unlock(&mutex); 202 mutex_lock(&mutex); 204 mutex_unlock(&mutex); 218 mutex_lock(&mutex); 221 mutex_unlock(&mutex); 224 mutex_unlock(&mutex); 236 mutex_lock(&mutex); [all …]
|
| /linux/drivers/gpu/drm/i915/selftests/ |
| H A D | i915_gem_evict.c | 121 mutex_lock(&ggtt->vm.mutex); in igt_evict_something() 126 mutex_unlock(&ggtt->vm.mutex); in igt_evict_something() 136 mutex_lock(&ggtt->vm.mutex); in igt_evict_something() 141 mutex_unlock(&ggtt->vm.mutex); in igt_evict_something() 208 mutex_lock(&ggtt->vm.mutex); in igt_evict_for_vma() 210 mutex_unlock(&ggtt->vm.mutex); in igt_evict_for_vma() 220 mutex_lock(&ggtt->vm.mutex); in igt_evict_for_vma() 222 mutex_unlock(&ggtt->vm.mutex); in igt_evict_for_vma() 301 mutex_lock(&ggtt->vm.mutex); in igt_evict_for_cache_color() 303 mutex_unlock(&ggtt->vm.mutex); in igt_evict_for_cache_color() [all …]
|
| /linux/drivers/phy/ |
| H A D | phy-core.c | 240 mutex_lock(&phy->mutex); in phy_init() 254 mutex_unlock(&phy->mutex); in phy_init() 280 mutex_lock(&phy->mutex); in phy_exit() 291 mutex_unlock(&phy->mutex); in phy_exit() 324 mutex_lock(&phy->mutex); in phy_power_on() 333 mutex_unlock(&phy->mutex); in phy_power_on() 337 mutex_unlock(&phy->mutex); in phy_power_on() 362 mutex_lock(&phy->mutex); in phy_power_off() 367 mutex_unlock(&phy->mutex); in phy_power_off() 372 mutex_unlock(&phy->mutex); in phy_power_off() [all …]
|