Home
last modified time | relevance | path

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

12345

/Linux-v4.19/kernel/locking/
Drwsem-spinlock.c25 int rwsem_is_locked(struct rw_semaphore *sem) in rwsem_is_locked() argument
30 if (raw_spin_trylock_irqsave(&sem->wait_lock, flags)) { in rwsem_is_locked()
31 ret = (sem->count != 0); in rwsem_is_locked()
32 raw_spin_unlock_irqrestore(&sem->wait_lock, flags); in rwsem_is_locked()
41 void __init_rwsem(struct rw_semaphore *sem, const char *name, in __init_rwsem() argument
48 debug_check_no_locks_freed((void *)sem, sizeof(*sem)); in __init_rwsem()
49 lockdep_init_map(&sem->dep_map, name, key, 0); in __init_rwsem()
51 sem->count = 0; in __init_rwsem()
52 raw_spin_lock_init(&sem->wait_lock); in __init_rwsem()
53 INIT_LIST_HEAD(&sem->wait_list); in __init_rwsem()
[all …]
Drwsem.c21 void __sched down_read(struct rw_semaphore *sem) in down_read() argument
24 rwsem_acquire_read(&sem->dep_map, 0, 0, _RET_IP_); in down_read()
26 LOCK_CONTENDED(sem, __down_read_trylock, __down_read); in down_read()
27 rwsem_set_reader_owned(sem); in down_read()
32 int __sched down_read_killable(struct rw_semaphore *sem) in down_read_killable() argument
35 rwsem_acquire_read(&sem->dep_map, 0, 0, _RET_IP_); in down_read_killable()
37 if (LOCK_CONTENDED_RETURN(sem, __down_read_trylock, __down_read_killable)) { in down_read_killable()
38 rwsem_release(&sem->dep_map, 1, _RET_IP_); in down_read_killable()
42 rwsem_set_reader_owned(sem); in down_read_killable()
51 int down_read_trylock(struct rw_semaphore *sem) in down_read_trylock() argument
[all …]
Drwsem-xadd.c76 void __init_rwsem(struct rw_semaphore *sem, const char *name, in __init_rwsem() argument
83 debug_check_no_locks_freed((void *)sem, sizeof(*sem)); in __init_rwsem()
84 lockdep_init_map(&sem->dep_map, name, key, 0); in __init_rwsem()
86 atomic_long_set(&sem->count, RWSEM_UNLOCKED_VALUE); in __init_rwsem()
87 raw_spin_lock_init(&sem->wait_lock); in __init_rwsem()
88 INIT_LIST_HEAD(&sem->wait_list); in __init_rwsem()
90 sem->owner = NULL; in __init_rwsem()
91 osq_lock_init(&sem->osq); in __init_rwsem()
127 static void __rwsem_mark_wake(struct rw_semaphore *sem, in __rwsem_mark_wake() argument
138 waiter = list_first_entry(&sem->wait_list, struct rwsem_waiter, list); in __rwsem_mark_wake()
[all …]
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 down(struct semaphore *sem) in down() argument
58 raw_spin_lock_irqsave(&sem->lock, flags); in down()
59 if (likely(sem->count > 0)) in down()
60 sem->count--; in down()
62 __down(sem); in down()
[all …]
Dpercpu-rwsem.c10 int __percpu_init_rwsem(struct percpu_rw_semaphore *sem, in __percpu_init_rwsem() argument
13 sem->read_count = alloc_percpu(int); in __percpu_init_rwsem()
14 if (unlikely(!sem->read_count)) in __percpu_init_rwsem()
18 rcu_sync_init(&sem->rss, RCU_SCHED_SYNC); in __percpu_init_rwsem()
19 __init_rwsem(&sem->rw_sem, name, rwsem_key); in __percpu_init_rwsem()
20 rcuwait_init(&sem->writer); in __percpu_init_rwsem()
21 sem->readers_block = 0; in __percpu_init_rwsem()
26 void percpu_free_rwsem(struct percpu_rw_semaphore *sem) in percpu_free_rwsem() argument
32 if (!sem->read_count) in percpu_free_rwsem()
35 rcu_sync_dtor(&sem->rss); in percpu_free_rwsem()
[all …]
Drwsem.h37 static inline void rwsem_set_owner(struct rw_semaphore *sem) in rwsem_set_owner() argument
39 WRITE_ONCE(sem->owner, current); in rwsem_set_owner()
42 static inline void rwsem_clear_owner(struct rw_semaphore *sem) in rwsem_clear_owner() argument
44 WRITE_ONCE(sem->owner, NULL); in rwsem_clear_owner()
47 static inline void rwsem_set_reader_owned(struct rw_semaphore *sem) in rwsem_set_reader_owned() argument
54 if (READ_ONCE(sem->owner) != RWSEM_READER_OWNED) in rwsem_set_reader_owned()
55 WRITE_ONCE(sem->owner, RWSEM_READER_OWNED); in rwsem_set_reader_owned()
76 static inline void rwsem_set_owner(struct rw_semaphore *sem) in rwsem_set_owner() argument
80 static inline void rwsem_clear_owner(struct rw_semaphore *sem) in rwsem_clear_owner() argument
84 static inline void rwsem_set_reader_owned(struct rw_semaphore *sem) in rwsem_set_reader_owned() argument
/Linux-v4.19/drivers/tty/
Dtty_ldsem.c80 void __init_ldsem(struct ld_semaphore *sem, const char *name, in __init_ldsem() argument
87 debug_check_no_locks_freed((void *)sem, sizeof(*sem)); in __init_ldsem()
88 lockdep_init_map(&sem->dep_map, name, key, 0); in __init_ldsem()
90 atomic_long_set(&sem->count, LDSEM_UNLOCKED); in __init_ldsem()
91 sem->wait_readers = 0; in __init_ldsem()
92 raw_spin_lock_init(&sem->wait_lock); in __init_ldsem()
93 INIT_LIST_HEAD(&sem->read_wait); in __init_ldsem()
94 INIT_LIST_HEAD(&sem->write_wait); in __init_ldsem()
97 static void __ldsem_wake_readers(struct ld_semaphore *sem) in __ldsem_wake_readers() argument
108 adjust = sem->wait_readers * (LDSEM_ACTIVE_BIAS - LDSEM_WAIT_BIAS); in __ldsem_wake_readers()
[all …]
/Linux-v4.19/arch/alpha/include/asm/
Drwsem.h25 static inline int ___down_read(struct rw_semaphore *sem) in ___down_read() argument
29 oldcount = sem->count.counter; in ___down_read()
30 sem->count.counter += RWSEM_ACTIVE_READ_BIAS; in ___down_read()
42 :"=&r" (oldcount), "=m" (sem->count), "=&r" (temp) in ___down_read()
43 :"Ir" (RWSEM_ACTIVE_READ_BIAS), "m" (sem->count) : "memory"); in ___down_read()
48 static inline void __down_read(struct rw_semaphore *sem) in __down_read() argument
50 if (unlikely(___down_read(sem))) in __down_read()
51 rwsem_down_read_failed(sem); in __down_read()
54 static inline int __down_read_killable(struct rw_semaphore *sem) in __down_read_killable() argument
56 if (unlikely(___down_read(sem))) in __down_read_killable()
[all …]
/Linux-v4.19/include/linux/
Drwsem.h53 extern struct rw_semaphore *rwsem_down_read_failed(struct rw_semaphore *sem);
54 extern struct rw_semaphore *rwsem_down_read_failed_killable(struct rw_semaphore *sem);
55 extern struct rw_semaphore *rwsem_down_write_failed(struct rw_semaphore *sem);
56 extern struct rw_semaphore *rwsem_down_write_failed_killable(struct rw_semaphore *sem);
58 extern struct rw_semaphore *rwsem_downgrade_wake(struct rw_semaphore *sem);
64 static inline int rwsem_is_locked(struct rw_semaphore *sem) in rwsem_is_locked() argument
66 return atomic_long_read(&sem->count) != 0; in rwsem_is_locked()
96 extern void __init_rwsem(struct rw_semaphore *sem, const char *name,
99 #define init_rwsem(sem) \ argument
103 __init_rwsem((sem), #sem, &__key); \
[all …]
Dpercpu-rwsem.h32 static inline void percpu_down_read_preempt_disable(struct percpu_rw_semaphore *sem) in percpu_down_read_preempt_disable() argument
36 rwsem_acquire_read(&sem->rw_sem.dep_map, 0, 0, _RET_IP_); in percpu_down_read_preempt_disable()
47 __this_cpu_inc(*sem->read_count); in percpu_down_read_preempt_disable()
48 if (unlikely(!rcu_sync_is_idle(&sem->rss))) in percpu_down_read_preempt_disable()
49 __percpu_down_read(sem, false); /* Unconditional memory barrier */ in percpu_down_read_preempt_disable()
57 static inline void percpu_down_read(struct percpu_rw_semaphore *sem) in percpu_down_read() argument
59 percpu_down_read_preempt_disable(sem); in percpu_down_read()
63 static inline int percpu_down_read_trylock(struct percpu_rw_semaphore *sem) in percpu_down_read_trylock() argument
71 __this_cpu_inc(*sem->read_count); in percpu_down_read_trylock()
72 if (unlikely(!rcu_sync_is_idle(&sem->rss))) in percpu_down_read_trylock()
[all …]
Dtty_ldisc.h138 extern void __init_ldsem(struct ld_semaphore *sem, const char *name,
141 #define init_ldsem(sem) \ argument
145 __init_ldsem((sem), #sem, &__key); \
149 extern int ldsem_down_read(struct ld_semaphore *sem, long timeout);
150 extern int ldsem_down_read_trylock(struct ld_semaphore *sem);
151 extern int ldsem_down_write(struct ld_semaphore *sem, long timeout);
152 extern int ldsem_down_write_trylock(struct ld_semaphore *sem);
153 extern void ldsem_up_read(struct ld_semaphore *sem);
154 extern void ldsem_up_write(struct ld_semaphore *sem);
157 extern int ldsem_down_read_nested(struct ld_semaphore *sem, int subclass,
[all …]
Drwsem-spinlock.h35 extern void __down_read(struct rw_semaphore *sem);
36 extern int __must_check __down_read_killable(struct rw_semaphore *sem);
37 extern int __down_read_trylock(struct rw_semaphore *sem);
38 extern void __down_write(struct rw_semaphore *sem);
39 extern int __must_check __down_write_killable(struct rw_semaphore *sem);
40 extern int __down_write_trylock(struct rw_semaphore *sem);
41 extern void __up_read(struct rw_semaphore *sem);
42 extern void __up_write(struct rw_semaphore *sem);
43 extern void __downgrade_write(struct rw_semaphore *sem);
44 extern int rwsem_is_locked(struct rw_semaphore *sem);
Dsemaphore.h32 static inline void sema_init(struct semaphore *sem, int val) in sema_init() argument
35 *sem = (struct semaphore) __SEMAPHORE_INITIALIZER(*sem, val); in sema_init()
36 lockdep_init_map(&sem->lock.dep_map, "semaphore->lock", &__key, 0); in sema_init()
39 extern void down(struct semaphore *sem);
40 extern int __must_check down_interruptible(struct semaphore *sem);
41 extern int __must_check down_killable(struct semaphore *sem);
42 extern int __must_check down_trylock(struct semaphore *sem);
43 extern int __must_check down_timeout(struct semaphore *sem, long jiffies);
44 extern void up(struct semaphore *sem);
/Linux-v4.19/arch/ia64/include/asm/
Drwsem.h42 ___down_read (struct rw_semaphore *sem) in ___down_read() argument
44 long result = ia64_fetchadd8_acq((unsigned long *)&sem->count.counter, 1); in ___down_read()
50 __down_read (struct rw_semaphore *sem) in __down_read() argument
52 if (___down_read(sem)) in __down_read()
53 rwsem_down_read_failed(sem); in __down_read()
57 __down_read_killable (struct rw_semaphore *sem) in __down_read_killable() argument
59 if (___down_read(sem)) in __down_read_killable()
60 if (IS_ERR(rwsem_down_read_failed_killable(sem))) in __down_read_killable()
70 ___down_write (struct rw_semaphore *sem) in ___down_write() argument
75 old = atomic_long_read(&sem->count); in ___down_write()
[all …]
/Linux-v4.19/arch/x86/include/asm/
Drwsem.h64 #define ____down_read(sem, slow_path) \ argument
74 : "+m" (sem->count), "=a" (ret), \
76 : [sem] "a" (sem) \
81 static inline void __down_read(struct rw_semaphore *sem) in __down_read() argument
83 ____down_read(sem, "call_rwsem_down_read_failed"); in __down_read()
86 static inline int __down_read_killable(struct rw_semaphore *sem) in __down_read_killable() argument
88 if (IS_ERR(____down_read(sem, "call_rwsem_down_read_failed_killable"))) in __down_read_killable()
96 static inline bool __down_read_trylock(struct rw_semaphore *sem) in __down_read_trylock() argument
109 : [count] "+m" (sem->count), [result] "=&a" (result), in __down_read_trylock()
119 #define ____down_write(sem, slow_path) \ argument
[all …]
/Linux-v4.19/include/asm-generic/
Drwsem.h35 static inline void __down_read(struct rw_semaphore *sem) in __down_read() argument
37 if (unlikely(atomic_long_inc_return_acquire(&sem->count) <= 0)) in __down_read()
38 rwsem_down_read_failed(sem); in __down_read()
41 static inline int __down_read_killable(struct rw_semaphore *sem) in __down_read_killable() argument
43 if (unlikely(atomic_long_inc_return_acquire(&sem->count) <= 0)) { in __down_read_killable()
44 if (IS_ERR(rwsem_down_read_failed_killable(sem))) in __down_read_killable()
51 static inline int __down_read_trylock(struct rw_semaphore *sem) in __down_read_trylock() argument
55 while ((tmp = atomic_long_read(&sem->count)) >= 0) { in __down_read_trylock()
56 if (tmp == atomic_long_cmpxchg_acquire(&sem->count, tmp, in __down_read_trylock()
67 static inline void __down_write(struct rw_semaphore *sem) in __down_write() argument
[all …]
/Linux-v4.19/tools/perf/util/
Drwsem.c4 int init_rwsem(struct rw_semaphore *sem) in init_rwsem() argument
6 return pthread_rwlock_init(&sem->lock, NULL); in init_rwsem()
9 int exit_rwsem(struct rw_semaphore *sem) in exit_rwsem() argument
11 return pthread_rwlock_destroy(&sem->lock); in exit_rwsem()
14 int down_read(struct rw_semaphore *sem) in down_read() argument
16 return perf_singlethreaded ? 0 : pthread_rwlock_rdlock(&sem->lock); in down_read()
19 int up_read(struct rw_semaphore *sem) in up_read() argument
21 return perf_singlethreaded ? 0 : pthread_rwlock_unlock(&sem->lock); in up_read()
24 int down_write(struct rw_semaphore *sem) in down_write() argument
26 return perf_singlethreaded ? 0 : pthread_rwlock_wrlock(&sem->lock); in down_write()
[all …]
Drwsem.h10 int init_rwsem(struct rw_semaphore *sem);
11 int exit_rwsem(struct rw_semaphore *sem);
13 int down_read(struct rw_semaphore *sem);
14 int up_read(struct rw_semaphore *sem);
16 int down_write(struct rw_semaphore *sem);
17 int up_write(struct rw_semaphore *sem);
/Linux-v4.19/arch/ia64/include/uapi/asm/
Dintrinsics.h42 #define IA64_FETCHADD(tmp,v,n,sz,sem) \ argument
46 tmp = ia64_fetchadd4_##sem((unsigned int *) v, n); \
50 tmp = ia64_fetchadd8_##sem((unsigned long *) v, n); \
58 #define ia64_fetchadd(i,v,sem) \ argument
64 IA64_FETCHADD(_tmp, _v, -16, sizeof(*(v)), sem); \
66 IA64_FETCHADD(_tmp, _v, -8, sizeof(*(v)), sem); \
68 IA64_FETCHADD(_tmp, _v, -4, sizeof(*(v)), sem); \
70 IA64_FETCHADD(_tmp, _v, -1, sizeof(*(v)), sem); \
72 IA64_FETCHADD(_tmp, _v, 1, sizeof(*(v)), sem); \
74 IA64_FETCHADD(_tmp, _v, 4, sizeof(*(v)), sem); \
[all …]
/Linux-v4.19/tools/power/acpi/os_specific/service_layers/
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-v4.19/drivers/i2c/busses/
Di2c-designware-baytrail.c33 static int get_sem(struct dw_i2c_dev *dev, u32 *sem) in get_sem() argument
45 *sem = data & PUNIT_SEMAPHORE_BIT; in get_sem()
66 u32 sem = PUNIT_SEMAPHORE_ACQUIRE; in baytrail_i2c_acquire() local
92 ret = iosf_mbi_write(BT_MBI_UNIT_PMC, MBI_REG_WRITE, addr, sem); in baytrail_i2c_acquire()
102 ret = get_sem(dev, &sem); in baytrail_i2c_acquire()
103 if (!ret && sem) { in baytrail_i2c_acquire()
117 ret = iosf_mbi_read(BT_MBI_UNIT_PMC, MBI_REG_READ, addr, &sem); in baytrail_i2c_acquire()
121 dev_err(dev->dev, "PUNIT SEM: %d\n", sem); in baytrail_i2c_acquire()
/Linux-v4.19/arch/mips/include/asm/
Dpmon.h27 int (*semlock) (int sem);
28 void (*semunlock) (int sem);
43 #define pmon_semlock(sem) debug_vectors->semlock(sem) argument
44 #define pmon_semunlock(sem) debug_vectors->semunlock(sem) argument
/Linux-v4.19/fs/jffs2/
Ddir.c94 mutex_lock(&dir_f->sem); in jffs2_lookup()
107 mutex_unlock(&dir_f->sem); in jffs2_lookup()
132 mutex_lock(&f->sem); in jffs2_readdir()
153 mutex_unlock(&f->sem); in jffs2_readdir()
198 mutex_unlock(&f->sem); in jffs2_create()
267 mutex_lock(&f->sem); in jffs2_link()
269 mutex_unlock(&f->sem); in jffs2_link()
343 mutex_unlock(&f->sem); in jffs2_symlink()
353 mutex_unlock(&f->sem); in jffs2_symlink()
367 mutex_unlock(&f->sem); in jffs2_symlink()
[all …]
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 …]
/Linux-v4.19/drivers/gpu/drm/gma500/
Dmmu.c106 down_write(&driver->sem);
108 up_write(&driver->sem);
118 down_write(&driver->sem); in psb_mmu_flush()
135 up_write(&driver->sem); in psb_mmu_flush()
145 down_write(&pd->driver->sem); in psb_mmu_set_pd_context()
150 up_write(&pd->driver->sem); in psb_mmu_set_pd_context()
255 down_write(&driver->sem); in psb_mmu_free_pagedir()
275 up_write(&driver->sem); in psb_mmu_free_pagedir()
422 down_read(&driver->sem); in psb_mmu_get_default_pd()
424 up_read(&driver->sem); in psb_mmu_get_default_pd()
[all …]

12345