Home
last modified time | relevance | path

Searched refs:sem (Results 1 – 25 of 111) sorted by relevance

12345

/linux/kernel/locking/
H A Drwsem.c68 # define DEBUG_RWSEMS_WARN_ON(c, sem) do { \ argument
71 #c, atomic_long_read(&(sem)->count), \
72 (unsigned long) sem->magic, \
73 atomic_long_read(&(sem)->owner), (long)current, \
74 list_empty(&(sem)->wait_list) ? "" : "not ")) \
78 # define DEBUG_RWSEMS_WARN_ON(c, sem) argument
140 static inline void rwsem_set_owner(struct rw_semaphore *sem) in rwsem_set_owner() argument
143 atomic_long_set(&sem->owner, (long)current); in rwsem_set_owner()
146 static inline void rwsem_clear_owner(struct rw_semaphore *sem) in rwsem_clear_owner() argument
149 atomic_long_set(&sem->owner, 0); in rwsem_clear_owner()
[all …]
H A Dpercpu-rwsem.c14 int __percpu_init_rwsem(struct percpu_rw_semaphore *sem, in __percpu_init_rwsem() argument
17 sem->read_count = alloc_percpu(int); in __percpu_init_rwsem()
18 if (unlikely(!sem->read_count)) in __percpu_init_rwsem()
21 rcu_sync_init(&sem->rss); in __percpu_init_rwsem()
22 rcuwait_init(&sem->writer); in __percpu_init_rwsem()
23 init_waitqueue_head(&sem->waiters); in __percpu_init_rwsem()
24 atomic_set(&sem->block, 0); in __percpu_init_rwsem()
26 debug_check_no_locks_freed((void *)sem, sizeof(*sem)); in __percpu_init_rwsem()
27 lockdep_init_map(&sem->dep_map, name, key, 0); in __percpu_init_rwsem()
33 void percpu_free_rwsem(struct percpu_rw_semaphore *sem) in percpu_free_rwsem() argument
[all …]
H A Dsemaphore.c37 static noinline void __down(struct semaphore *sem);
38 static noinline int __down_interruptible(struct semaphore *sem);
39 static noinline int __down_killable(struct semaphore *sem);
40 static noinline int __down_timeout(struct semaphore *sem, long timeout);
41 static noinline void __up(struct semaphore *sem);
54 void __sched down(struct semaphore *sem) in down() argument
59 raw_spin_lock_irqsave(&sem->lock, flags); in down()
60 if (likely(sem->count > 0)) in down()
61 sem->count--; in down()
63 __down(sem); in down()
[all …]
/linux/drivers/tty/
H A Dtty_ldsem.c57 void __init_ldsem(struct ld_semaphore *sem, const char *name, in __init_ldsem() argument
64 debug_check_no_locks_freed((void *)sem, sizeof(*sem)); in __init_ldsem()
65 lockdep_init_map(&sem->dep_map, name, key, 0); in __init_ldsem()
67 atomic_long_set(&sem->count, LDSEM_UNLOCKED); in __init_ldsem()
68 sem->wait_readers = 0; in __init_ldsem()
69 raw_spin_lock_init(&sem->wait_lock); in __init_ldsem()
70 INIT_LIST_HEAD(&sem->read_wait); in __init_ldsem()
71 INIT_LIST_HEAD(&sem->write_wait); in __init_ldsem()
74 static void __ldsem_wake_readers(struct ld_semaphore *sem) in __ldsem_wake_readers() argument
85 adjust = sem->wait_readers * (LDSEM_ACTIVE_BIAS - LDSEM_WAIT_BIAS); in __ldsem_wake_readers()
[all …]
/linux/include/linux/
H A Drwsem.h73 static inline int rwsem_is_locked(struct rw_semaphore *sem) in rwsem_is_locked() argument
75 return atomic_long_read(&sem->count) != RWSEM_UNLOCKED_VALUE; in rwsem_is_locked()
78 static inline void rwsem_assert_held_nolockdep(const struct rw_semaphore *sem) in rwsem_assert_held_nolockdep() argument
80 WARN_ON(atomic_long_read(&sem->count) == RWSEM_UNLOCKED_VALUE); in rwsem_assert_held_nolockdep()
83 static inline void rwsem_assert_held_write_nolockdep(const struct rw_semaphore *sem) in rwsem_assert_held_write_nolockdep() argument
85 WARN_ON(!(atomic_long_read(&sem->count) & RWSEM_WRITER_LOCKED)); in rwsem_assert_held_write_nolockdep()
114 extern void __init_rwsem(struct rw_semaphore *sem, const char *name,
117 #define init_rwsem(sem) \ argument
121 __init_rwsem((sem), #sem, &__key); \
130 static inline int rwsem_is_contended(struct rw_semaphore *sem) in rwsem_is_contended() argument
[all …]
H A Dpercpu-rwsem.h47 static inline void percpu_down_read(struct percpu_rw_semaphore *sem) in percpu_down_read() argument
51 rwsem_acquire_read(&sem->dep_map, 0, 0, _RET_IP_); in percpu_down_read()
62 if (likely(rcu_sync_is_idle(&sem->rss))) in percpu_down_read()
63 this_cpu_inc(*sem->read_count); in percpu_down_read()
65 __percpu_down_read(sem, false); /* Unconditional memory barrier */ in percpu_down_read()
73 static inline bool percpu_down_read_trylock(struct percpu_rw_semaphore *sem) in percpu_down_read_trylock() argument
81 if (likely(rcu_sync_is_idle(&sem->rss))) in percpu_down_read_trylock()
82 this_cpu_inc(*sem->read_count); in percpu_down_read_trylock()
84 ret = __percpu_down_read(sem, true); /* Unconditional memory barrier */ in percpu_down_read_trylock()
92 rwsem_acquire_read(&sem->dep_map, 0, 1, _RET_IP_); in percpu_down_read_trylock()
[all …]
H A Dtty_ldisc.h28 void __init_ldsem(struct ld_semaphore *sem, const char *name,
31 #define init_ldsem(sem) \ argument
35 __init_ldsem((sem), #sem, &__key); \
39 int ldsem_down_read(struct ld_semaphore *sem, long timeout);
40 int ldsem_down_read_trylock(struct ld_semaphore *sem);
41 int ldsem_down_write(struct ld_semaphore *sem, long timeout);
42 int ldsem_down_write_trylock(struct ld_semaphore *sem);
43 void ldsem_up_read(struct ld_semaphore *sem);
44 void ldsem_up_write(struct ld_semaphore *sem);
47 int ldsem_down_read_nested(struct ld_semaphore *sem, int subclass,
[all …]
H A Dsemaphore.h37 static inline void sema_init(struct semaphore *sem, int val) in sema_init() argument
40 *sem = (struct semaphore) __SEMAPHORE_INITIALIZER(*sem, val); in sema_init()
41 lockdep_init_map(&sem->lock.dep_map, "semaphore->lock", &__key, 0); in sema_init()
44 extern void down(struct semaphore *sem);
45 extern int __must_check down_interruptible(struct semaphore *sem);
46 extern int __must_check down_killable(struct semaphore *sem);
47 extern int __must_check down_trylock(struct semaphore *sem);
48 extern int __must_check down_timeout(struct semaphore *sem, long jiffies);
49 extern void up(struct semaphore *sem);
/linux/tools/perf/util/
H A Drwsem.c9 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
32 mutex_lock(&sem->mtx); in down_read()
35 return perf_singlethreaded ? 0 : pthread_rwlock_rdlock(&sem->lock); in down_read()
39 int up_read(struct rw_semaphore *sem) in up_read() argument
[all …]
H A Drwsem.h21 int init_rwsem(struct rw_semaphore *sem);
22 int exit_rwsem(struct rw_semaphore *sem);
24 int down_read(struct rw_semaphore *sem);
25 int up_read(struct rw_semaphore *sem);
27 int down_write(struct rw_semaphore *sem);
28 int up_write(struct rw_semaphore *sem);
/linux/tools/include/linux/
H A Drwsem.h11 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/drivers/net/ethernet/mellanox/mlx5/core/lib/
H A Ddevcom.c33 struct rw_semaphore sem; member
122 init_rwsem(&comp->sem); in mlx5_devcom_comp_alloc()
124 lockdep_set_class(&comp->sem, &comp->lock_key); in mlx5_devcom_comp_alloc()
159 down_write(&comp->sem); in devcom_alloc_comp_dev()
161 up_write(&comp->sem); in devcom_alloc_comp_dev()
171 down_write(&comp->sem); in devcom_free_comp_dev()
173 up_write(&comp->sem); in devcom_free_comp_dev()
279 down_write(&comp->sem); in mlx5_devcom_send_event()
281 data = rcu_dereference_protected(pos->data, lockdep_is_held(&comp->sem)); in mlx5_devcom_send_event()
290 up_write(&comp->sem); in mlx5_devcom_send_event()
[all …]
/linux/tools/power/acpi/os_specific/service_layers/
H A Dosunixxf.c630 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 Ddir.c97 mutex_lock(&dir_f->sem); in jffs2_lookup()
110 mutex_unlock(&dir_f->sem); in jffs2_lookup()
135 mutex_lock(&f->sem); in jffs2_readdir()
156 mutex_unlock(&f->sem); in jffs2_readdir()
201 mutex_unlock(&f->sem); in jffs2_create()
272 mutex_lock(&f->sem); in jffs2_link()
274 mutex_unlock(&f->sem); in jffs2_link()
350 mutex_unlock(&f->sem); in jffs2_symlink()
360 mutex_unlock(&f->sem); in jffs2_symlink()
374 mutex_unlock(&f->sem); in jffs2_symlink()
[all …]
H A Dwrite.c145 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 Dfile.c118 mutex_lock(&f->sem); in jffs2_read_folio()
120 mutex_unlock(&f->sem); in jffs2_read_folio()
151 mutex_lock(&f->sem); in jffs2_write_begin()
178 mutex_unlock(&f->sem); in jffs2_write_begin()
193 mutex_unlock(&f->sem); in jffs2_write_begin()
198 mutex_unlock(&f->sem); in jffs2_write_begin()
221 mutex_lock(&f->sem); in jffs2_write_begin()
223 mutex_unlock(&f->sem); in jffs2_write_begin()
H A Dfs.c60 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/radeon/
H A Dradeon_trace.h170 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/kvm/
H A Dhardware_disable_test.c25 sem_t *sem; variable
114 sem_post(sem); in run_test()
131 if (!sem_timedwait(sem, &wait_period)) in wait_for_child_setup()
157 sem = sem_open("vm_sem", O_CREAT | O_EXCL, 0644, 0); in main()
179 sem_destroy(sem); in main()
/linux/security/keys/
H A Dkeyring.c1056 down_write(&keyring->sem); in keyring_restrict()
1069 up_write(&keyring->sem); in keyring_restrict()
1238 __acquires(&keyring->sem) in __key_link_lock()
1244 down_write(&keyring->sem); in __key_link_lock()
1260 __acquires(&l_keyring->sem) in __key_move_lock()
1261 __acquires(&u_keyring->sem) in __key_move_lock()
1273 down_write(&l_keyring->sem); in __key_move_lock()
1274 down_write_nested(&u_keyring->sem, 1); in __key_move_lock()
1276 down_write(&u_keyring->sem); in __key_move_lock()
1277 down_write_nested(&l_keyring->sem, 1); in __key_move_lock()
[all …]
/linux/arch/x86/platform/intel/
H A Diosf_mbi.c247 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/ipc/
H A Dsem.c95 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/drivers/net/ethernet/mellanox/mlx4/
H A Dreset.c51 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 Ddax.c65 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/drivers/input/joystick/
H A Dturbografx.c66 struct mutex sem; member
108 err = mutex_lock_interruptible(&tgfx->sem); in tgfx_open()
118 mutex_unlock(&tgfx->sem); in tgfx_open()
126 mutex_lock(&tgfx->sem); in tgfx_close()
132 mutex_unlock(&tgfx->sem); in tgfx_close()
181 mutex_init(&tgfx->sem); in tgfx_attach()

12345