| /linux/kernel/locking/ |
| H A D | rwsem.c | 69 # define DEBUG_RWSEMS_WARN_ON(c, sem) do { \ argument 72 #c, atomic_long_read(&(sem)->count), \ 73 (unsigned long) sem->magic, \ 74 atomic_long_read(&(sem)->owner), (long)current, \ 75 list_empty(&(sem)->wait_list) ? "" : "not ")) \ 79 # define DEBUG_RWSEMS_WARN_ON(c, sem) argument 141 static inline void rwsem_set_owner(struct rw_semaphore *sem) in rwsem_set_owner() argument 144 atomic_long_set(&sem->owner, (long)current); in rwsem_set_owner() 147 static inline void rwsem_clear_owner(struct rw_semaphore *sem) in rwsem_clear_owner() argument 150 atomic_long_set(&sem->owner, 0); in rwsem_clear_owner() [all …]
|
| H A D | semaphore.c | 39 static noinline void __down(struct semaphore *sem); 40 static noinline int __down_interruptible(struct semaphore *sem); 41 static noinline int __down_killable(struct semaphore *sem); 42 static noinline int __down_timeout(struct semaphore *sem, long timeout); 43 static noinline void __up(struct semaphore *sem, struct wake_q_head *wake_q); 46 static inline void hung_task_sem_set_holder(struct semaphore *sem) in hung_task_sem_set_holder() argument 48 WRITE_ONCE((sem)->last_holder, (unsigned long)current); in hung_task_sem_set_holder() 51 static inline void hung_task_sem_clear_if_holder(struct semaphore *sem) in hung_task_sem_clear_if_holder() argument 53 if (READ_ONCE((sem)->last_holder) == (unsigned long)current) in hung_task_sem_clear_if_holder() 54 WRITE_ONCE((sem)->last_holder, 0UL); in hung_task_sem_clear_if_holder() [all …]
|
| /linux/tools/perf/util/ |
| H A D | rwsem.c | 9 int init_rwsem(struct rw_semaphore *sem) in init_rwsem() argument 12 mutex_init(&sem->mtx); in init_rwsem() 15 return pthread_rwlock_init(&sem->lock, NULL); in init_rwsem() 19 int exit_rwsem(struct rw_semaphore *sem) in exit_rwsem() argument 22 mutex_destroy(&sem->mtx); in exit_rwsem() 25 return pthread_rwlock_destroy(&sem->lock); in exit_rwsem() 29 int down_read(struct rw_semaphore *sem) in down_read() argument 33 mutex_lock(&sem->mtx); in down_read() 36 return perf_singlethreaded ? 0 : pthread_rwlock_rdlock(&sem->lock); in down_read() 40 int up_read(struct rw_semaphore *sem) in up_read() argument [all …]
|
| H A D | rwsem.h | 21 int init_rwsem(struct rw_semaphore *sem); 22 int exit_rwsem(struct rw_semaphore *sem); 24 int down_read(struct rw_semaphore *sem) SHARED_LOCK_FUNCTION(sem); 25 int up_read(struct rw_semaphore *sem) UNLOCK_FUNCTION(sem); 27 int down_write(struct rw_semaphore *sem) EXCLUSIVE_LOCK_FUNCTION(sem); 28 int up_write(struct rw_semaphore *sem) UNLOCK_FUNCTION(sem);
|
| /linux/tools/include/linux/ |
| H A D | rwsem.h | 11 static inline int init_rwsem(struct rw_semaphore *sem) in init_rwsem() argument 13 return pthread_rwlock_init(&sem->lock, NULL); in init_rwsem() 16 static inline int exit_rwsem(struct rw_semaphore *sem) in exit_rwsem() argument 18 return pthread_rwlock_destroy(&sem->lock); in exit_rwsem() 21 static inline int down_read(struct rw_semaphore *sem) in down_read() argument 23 return pthread_rwlock_rdlock(&sem->lock); in down_read() 26 static inline int up_read(struct rw_semaphore *sem) in up_read() argument 28 return pthread_rwlock_unlock(&sem->lock); in up_read() 31 static inline int down_write(struct rw_semaphore *sem) in down_write() argument 33 return pthread_rwlock_wrlock(&sem->lock); in down_write() [all …]
|
| /linux/include/linux/ |
| H A D | semaphore.h | 49 static inline void sema_init(struct semaphore *sem, int val) in sema_init() argument 52 *sem = (struct semaphore) __SEMAPHORE_INITIALIZER(*sem, val); in sema_init() 53 lockdep_init_map(&sem->lock.dep_map, "semaphore->lock", &__key, 0); in sema_init() 56 extern void down(struct semaphore *sem); 57 extern int __must_check down_interruptible(struct semaphore *sem); 58 extern int __must_check down_killable(struct semaphore *sem); 59 extern int __must_check down_trylock(struct semaphore *sem); 60 extern int __must_check down_timeout(struct semaphore *sem, long jiffies); 61 extern void up(struct semaphore *sem); 62 extern unsigned long sem_last_holder(struct semaphore *sem);
|
| /linux/drivers/net/ethernet/mellanox/mlx5/core/lib/ |
| H A D | devcom.c | 40 struct rw_semaphore sem; member 133 init_rwsem(&comp->sem); in mlx5_devcom_comp_alloc() 135 lockdep_set_class(&comp->sem, &comp->lock_key); in mlx5_devcom_comp_alloc() 170 down_write(&comp->sem); in devcom_alloc_comp_dev() 172 up_write(&comp->sem); in devcom_alloc_comp_dev() 182 down_write(&comp->sem); in devcom_free_comp_dev() 184 up_write(&comp->sem); in devcom_free_comp_dev() 302 down_write(&comp->sem); in mlx5_devcom_send_event() 304 data = rcu_dereference_protected(pos->data, lockdep_is_held(&comp->sem)); in mlx5_devcom_send_event() 313 up_write(&comp->sem); in mlx5_devcom_send_event() [all …]
|
| /linux/drivers/misc/ |
| H A D | ntsync.c | 59 } sem; member 236 return !!obj->u.sem.count; in is_signaled() 284 obj->u.sem.count--; in try_wake_all() 319 static void try_wake_any_sem(struct ntsync_obj *sem) in try_wake_any_sem() argument 323 ntsync_assert_held(sem); in try_wake_any_sem() 324 lockdep_assert(sem->type == NTSYNC_TYPE_SEM); in try_wake_any_sem() 326 list_for_each_entry(entry, &sem->any_waiters, node) { in try_wake_any_sem() 330 if (!sem->u.sem.count) in try_wake_any_sem() 334 sem->u.sem.count--; in try_wake_any_sem() 393 static int release_sem_state(struct ntsync_obj *sem, __u32 count) in release_sem_state() argument [all …]
|
| /linux/tools/power/acpi/os_specific/service_layers/ |
| H A D | osunixxf.c | 630 sem_t *sem; in acpi_os_create_semaphore() local 643 sem = in acpi_os_create_semaphore() 646 if (!sem) { in acpi_os_create_semaphore() 653 sem = acpi_os_allocate(sizeof(sem_t)); in acpi_os_create_semaphore() 654 if (!sem) { in acpi_os_create_semaphore() 658 if (sem_init(sem, 0, initial_units) == -1) { in acpi_os_create_semaphore() 659 acpi_os_free(sem); in acpi_os_create_semaphore() 664 *out_handle = (acpi_handle)sem; in acpi_os_create_semaphore() 682 sem_t *sem = (sem_t *) handle; in acpi_os_delete_semaphore() local 684 if (!sem) { in acpi_os_delete_semaphore() [all …]
|
| /linux/fs/jffs2/ |
| H A D | write.c | 145 mutex_unlock(&f->sem); in jffs2_write_dnode() 150 mutex_lock(&f->sem); in jffs2_write_dnode() 297 mutex_unlock(&f->sem); in jffs2_write_dirent() 302 mutex_lock(&f->sem); in jffs2_write_dirent() 368 mutex_lock(&f->sem); in jffs2_write_inode_range() 397 mutex_unlock(&f->sem); in jffs2_write_inode_range() 420 mutex_unlock(&f->sem); in jffs2_write_inode_range() 424 mutex_unlock(&f->sem); in jffs2_write_inode_range() 460 mutex_lock(&f->sem); in jffs2_do_create() 473 mutex_unlock(&f->sem); in jffs2_do_create() [all …]
|
| H A D | fs.c | 60 mutex_lock(&f->sem); in jffs2_do_setattr() 64 mutex_unlock(&f->sem); in jffs2_do_setattr() 69 mutex_unlock(&f->sem); in jffs2_do_setattr() 73 mutex_unlock(&f->sem); in jffs2_do_setattr() 93 mutex_lock(&f->sem); in jffs2_do_setattr() 146 mutex_unlock(&f->sem); in jffs2_do_setattr() 177 mutex_unlock(&f->sem); in jffs2_do_setattr() 275 mutex_lock(&f->sem); in jffs2_iget() 358 mutex_unlock(&f->sem); in jffs2_iget() 367 mutex_unlock(&f->sem); in jffs2_iget() [all …]
|
| /linux/drivers/gpu/drm/gma500/ |
| H A D | mmu.c | 89 down_write(&driver->sem); 91 up_write(&driver->sem); 101 down_write(&driver->sem); in psb_mmu_flush() 118 up_write(&driver->sem); in psb_mmu_flush() 128 down_write(&pd->driver->sem); in psb_mmu_set_pd_context() 133 up_write(&pd->driver->sem); in psb_mmu_set_pd_context() 238 down_write(&driver->sem); in psb_mmu_free_pagedir() 258 up_write(&driver->sem); in psb_mmu_free_pagedir() 403 down_read(&driver->sem); in psb_mmu_get_default_pd() 405 up_read(&driver->sem); in psb_mmu_get_default_pd() [all …]
|
| /linux/drivers/gpu/drm/radeon/ |
| H A D | radeon_trace.h | 170 TP_PROTO(int ring, struct radeon_semaphore *sem), 172 TP_ARGS(ring, sem), 182 __entry->waiters = sem->waiters; 183 __entry->gpu_addr = sem->gpu_addr; 192 TP_PROTO(int ring, struct radeon_semaphore *sem), 194 TP_ARGS(ring, sem) 199 TP_PROTO(int ring, struct radeon_semaphore *sem), 201 TP_ARGS(ring, sem)
|
| /linux/tools/testing/selftests/drivers/ntsync/ |
| H A D | ntsync.c | 17 static int read_sem_state(int sem, __u32 *count, __u32 *max) in read_sem_state() argument 23 ret = ioctl(sem, NTSYNC_IOC_SEM_READ, &args); in read_sem_state() 29 #define check_sem_state(sem, count, max) \ argument 32 int ret = read_sem_state((sem), &__count, &__max); \ 38 static int release_sem(int sem, __u32 *count) in release_sem() argument 40 return ioctl(sem, NTSYNC_IOC_SEM_RELEASE, count); in release_sem() 146 int fd, ret, sem; in TEST() local 155 sem = ioctl(fd, NTSYNC_IOC_CREATE_SEM, &sem_args); in TEST() 156 EXPECT_EQ(-1, sem); in TEST() 161 sem = ioctl(fd, NTSYNC_IOC_CREATE_SEM, &sem_args); in TEST() [all …]
|
| /linux/drivers/infiniband/core/ |
| H A D | netlink.c | 50 struct rw_semaphore sem; member 99 up_read(&rdma_nl_types[type].sem); in get_cb_table() 103 down_read(&rdma_nl_types[type].sem); in get_cb_table() 125 down_write(&rdma_nl_types[index].sem); in rdma_nl_unregister() 127 up_write(&rdma_nl_types[index].sem); in rdma_nl_unregister() 164 down_read(&rdma_nl_types[index].sem); in rdma_nl_rcv_msg() 197 up_read(&rdma_nl_types[index].sem); in rdma_nl_rcv_msg() 296 init_rwsem(&rdma_nl_types[idx].sem); in rdma_nl_init()
|
| /linux/security/keys/ |
| H A D | keyring.c | 1059 down_write(&keyring->sem); in keyring_restrict() 1072 up_write(&keyring->sem); in keyring_restrict() 1241 __acquires(&keyring->sem) in __key_link_lock() 1247 down_write(&keyring->sem); in __key_link_lock() 1263 __acquires(&l_keyring->sem) in __key_move_lock() 1264 __acquires(&u_keyring->sem) in __key_move_lock() 1276 down_write(&l_keyring->sem); in __key_move_lock() 1277 down_write_nested(&u_keyring->sem, 1); in __key_move_lock() 1279 down_write(&u_keyring->sem); in __key_move_lock() 1280 down_write_nested(&l_keyring->sem, 1); in __key_move_lock() [all …]
|
| H A D | key.c | 289 init_rwsem(&key->sem); in key_alloc() 290 lockdep_set_class(&key->sem, &type->lock_class); in key_alloc() 741 down_write(&key->sem); in key_set_timeout() 747 up_write(&key->sem); in key_set_timeout() 780 down_write(&key->sem); in __key_update() 789 up_write(&key->sem); in __key_update() 1104 down_write(&key->sem); in key_update() 1113 up_write(&key->sem); in key_update() 1142 down_write_nested(&key->sem, 1); in key_revoke() 1156 up_write(&key->sem); in key_revoke() [all …]
|
| /linux/ipc/ |
| H A D | sem.c | 95 struct sem { struct 126 struct sem sems[]; argument 296 struct sem *curr; in unmerge_queues() 317 struct sem *sem = &sma->sems[i]; in merge_queues() local 319 list_splice_init(&sem->pending_alter, &sma->pending_alter); in merge_queues() 339 struct sem *sem; in complexmode_enter() local 353 sem = &sma->sems[i]; in complexmode_enter() 354 spin_lock(&sem->lock); in complexmode_enter() 355 spin_unlock(&sem->lock); in complexmode_enter() 392 struct sem *sem; in sem_lock() local [all …]
|
| /linux/arch/x86/platform/intel/ |
| H A D | iosf_mbi.c | 247 static int iosf_mbi_get_sem(u32 *sem) in iosf_mbi_get_sem() argument 252 iosf_mbi_sem_address, sem); in iosf_mbi_get_sem() 258 *sem &= PUNIT_SEMAPHORE_BIT; in iosf_mbi_get_sem() 316 u32 sem; in iosf_mbi_block_punit_i2c_access() local 355 ret = iosf_mbi_get_sem(&sem); in iosf_mbi_block_punit_i2c_access() 356 if (!ret && sem) { in iosf_mbi_block_punit_i2c_access() 370 if (!iosf_mbi_get_sem(&sem)) in iosf_mbi_block_punit_i2c_access() 371 dev_err(&mbi_pdev->dev, "P-Unit semaphore: %d\n", sem); in iosf_mbi_block_punit_i2c_access()
|
| /linux/drivers/net/ethernet/mellanox/mlx4/ |
| H A D | reset.c | 51 u32 sem; in mlx4_reset() local 104 sem = readl(reset + MLX4_SEM_OFFSET); in mlx4_reset() 105 if (!sem) in mlx4_reset() 111 if (sem) { in mlx4_reset()
|
| /linux/fs/fuse/ |
| H A D | dax.c | 64 struct rw_semaphore sem; member 472 down_write(&fi->dax->sem); in fuse_setup_new_dax_mapping() 482 up_write(&fi->dax->sem); in fuse_setup_new_dax_mapping() 491 up_write(&fi->dax->sem); in fuse_setup_new_dax_mapping() 495 up_write(&fi->dax->sem); in fuse_setup_new_dax_mapping() 513 down_write(&fi->dax->sem); in fuse_upgrade_dax_mapping() 554 up_write(&fi->dax->sem); in fuse_upgrade_dax_mapping() 588 down_read(&fi->dax->sem); in fuse_iomap_begin() 603 up_read(&fi->dax->sem); in fuse_iomap_begin() 610 up_read(&fi->dax->sem); in fuse_iomap_begin() [all …]
|
| /linux/tools/testing/selftests/memfd/ |
| H A D | memfd_test.c | 1353 int sem = semget(SEM_KEY, 1, 0600); in sysctl_nested_wait() local 1356 if (sem < 0) { in sysctl_nested_wait() 1364 if (semop(sem, &sembuf, 1) < 0) { in sysctl_nested_wait() 1389 int pid, sem; in sysctl_nested_child() local 1425 sem = semget(SEM_KEY, 1, IPC_CREAT | 0600); in sysctl_nested_child() 1426 if (sem < 0) { in sysctl_nested_child() 1439 if (semctl(sem, 0, SETVAL, semun) < 0) { in sysctl_nested_child() 1449 if (semop(sem, &sembuf, 1) < 0) { in sysctl_nested_child() 1458 if (semctl(sem, 0, SETVAL, semun) < 0) { in sysctl_nested_child() 1468 if (semop(sem, &sembuf, 1) < 0) { in sysctl_nested_child() [all …]
|
| /linux/kernel/ |
| H A D | taskstats.c | 55 struct rw_semaphore sem; member 121 down_read(&listeners->sem); in send_cpu_listeners() 138 up_read(&listeners->sem); in send_cpu_listeners() 147 down_write(&listeners->sem); in send_cpu_listeners() 154 up_write(&listeners->sem); in send_cpu_listeners() 323 down_write(&listeners->sem); in add_del_listener() 331 up_write(&listeners->sem); in add_del_listener() 341 down_write(&listeners->sem); in add_del_listener() 349 up_write(&listeners->sem); in add_del_listener() 696 init_rwsem(&(per_cpu(listener_array, i).sem)); in taskstats_init_early()
|
| /linux/drivers/acpi/ |
| H A D | osl.c | 1228 struct semaphore *sem = NULL; in acpi_os_create_semaphore() local 1230 sem = acpi_os_allocate_zeroed(sizeof(struct semaphore)); in acpi_os_create_semaphore() 1231 if (!sem) in acpi_os_create_semaphore() 1234 sema_init(sem, initial_units); in acpi_os_create_semaphore() 1236 *handle = (acpi_handle *) sem; in acpi_os_create_semaphore() 1253 struct semaphore *sem = (struct semaphore *)handle; in acpi_os_delete_semaphore() local 1255 if (!sem) in acpi_os_delete_semaphore() 1260 BUG_ON(!list_empty(&sem->wait_list)); in acpi_os_delete_semaphore() 1261 kfree(sem); in acpi_os_delete_semaphore() 1262 sem = NULL; in acpi_os_delete_semaphore() [all …]
|
| /linux/drivers/media/usb/as102/ |
| H A D | as102_drv.c | 139 if (mutex_lock_interruptible(&as102_dev->sem)) in as102_dvb_dmx_start_feed() 149 mutex_unlock(&as102_dev->sem); in as102_dvb_dmx_start_feed() 158 if (mutex_lock_interruptible(&as102_dev->sem)) in as102_dvb_dmx_stop_feed() 168 mutex_unlock(&as102_dev->sem); in as102_dvb_dmx_stop_feed() 348 mutex_init(&as102_dev->sem); in as102_dvb_register()
|