/Linux-v4.19/kernel/locking/ |
D | rwsem-spinlock.c | 25 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 …]
|
D | rwsem.c | 21 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 …]
|
D | rwsem-xadd.c | 76 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 …]
|
D | semaphore.c | 37 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 …]
|
D | percpu-rwsem.c | 10 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 …]
|
D | rwsem.h | 37 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/ |
D | tty_ldsem.c | 80 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/ |
D | rwsem.h | 25 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/ |
D | rwsem.h | 53 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 …]
|
D | percpu-rwsem.h | 32 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 …]
|
D | tty_ldisc.h | 138 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 …]
|
D | rwsem-spinlock.h | 35 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);
|
D | semaphore.h | 32 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/ |
D | rwsem.h | 42 ___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/ |
D | rwsem.h | 64 #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/ |
D | rwsem.h | 35 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/ |
D | rwsem.c | 4 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 …]
|
D | rwsem.h | 10 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/ |
D | intrinsics.h | 42 #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/ |
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-v4.19/drivers/i2c/busses/ |
D | i2c-designware-baytrail.c | 33 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/ |
D | pmon.h | 27 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/ |
D | dir.c | 94 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 …]
|
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 …]
|
/Linux-v4.19/drivers/gpu/drm/gma500/ |
D | mmu.c | 106 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 …]
|