arch/arm/mach-versatile/spc.c
103
struct semaphore sem;
arch/arm/mach-versatile/spc.c
332
if (down_timeout(&info->sem, usecs_to_jiffies(TIMEOUT_US)))
arch/arm/mach-versatile/spc.c
342
up(&info->sem);
arch/arm/mach-versatile/spc.c
351
if (down_timeout(&info->sem, usecs_to_jiffies(TIMEOUT_US)))
arch/arm/mach-versatile/spc.c
365
up(&info->sem);
arch/arm/mach-versatile/spc.c
470
sema_init(&info->sem, 1);
arch/x86/platform/intel/iosf_mbi.c
247
static int iosf_mbi_get_sem(u32 *sem)
arch/x86/platform/intel/iosf_mbi.c
252
iosf_mbi_sem_address, sem);
arch/x86/platform/intel/iosf_mbi.c
258
*sem &= PUNIT_SEMAPHORE_BIT;
arch/x86/platform/intel/iosf_mbi.c
316
u32 sem;
arch/x86/platform/intel/iosf_mbi.c
355
ret = iosf_mbi_get_sem(&sem);
arch/x86/platform/intel/iosf_mbi.c
356
if (!ret && sem) {
arch/x86/platform/intel/iosf_mbi.c
370
if (!iosf_mbi_get_sem(&sem))
arch/x86/platform/intel/iosf_mbi.c
371
dev_err(&mbi_pdev->dev, "P-Unit semaphore: %d\n", sem);
block/sed-opal.c
320
down_read(&key->sem);
block/sed-opal.c
328
up_read(&key->sem);
crypto/af_alg.c
307
down_read(&key->sem);
crypto/af_alg.c
322
up_read(&key->sem);
crypto/af_alg.c
329
up_read(&key->sem);
crypto/af_alg.c
336
up_read(&key->sem);
drivers/accel/qaic/qaic_data.c
548
static bool invalid_sem(struct qaic_sem *sem)
drivers/accel/qaic/qaic_data.c
550
if (sem->val & ~SEM_VAL_MASK || sem->index & ~SEM_INDEX_MASK ||
drivers/accel/qaic/qaic_data.c
551
!(sem->presync == 0 || sem->presync == 1) || sem->pad ||
drivers/accel/qaic/qaic_data.c
552
sem->flags & ~(QAIC_SEM_INSYNCFENCE | QAIC_SEM_OUTSYNCFENCE) ||
drivers/accel/qaic/qaic_data.c
553
sem->cmd > QAIC_SEM_WAIT_GT_0)
drivers/acpi/osl.c
1228
struct semaphore *sem = NULL;
drivers/acpi/osl.c
1230
sem = acpi_os_allocate_zeroed(sizeof(struct semaphore));
drivers/acpi/osl.c
1231
if (!sem)
drivers/acpi/osl.c
1234
sema_init(sem, initial_units);
drivers/acpi/osl.c
1236
*handle = (acpi_handle *) sem;
drivers/acpi/osl.c
1253
struct semaphore *sem = (struct semaphore *)handle;
drivers/acpi/osl.c
1255
if (!sem)
drivers/acpi/osl.c
1260
BUG_ON(!list_empty(&sem->wait_list));
drivers/acpi/osl.c
1261
kfree(sem);
drivers/acpi/osl.c
1262
sem = NULL;
drivers/acpi/osl.c
1273
struct semaphore *sem = (struct semaphore *)handle;
drivers/acpi/osl.c
1280
if (!sem || (units < 1))
drivers/acpi/osl.c
1294
ret = down_timeout(sem, jiffies);
drivers/acpi/osl.c
1317
struct semaphore *sem = (struct semaphore *)handle;
drivers/acpi/osl.c
1322
if (!sem || (units < 1))
drivers/acpi/osl.c
1331
up(sem);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
362
status = mutex_lock_interruptible(&drvdata->sem);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
433
mutex_unlock(&drvdata->sem);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
448
status = mutex_lock_interruptible(&drvdata->sem);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
522
mutex_unlock(&drvdata->sem);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
534
status = mutex_lock_interruptible(&drvdata->sem);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
555
mutex_unlock(&drvdata->sem);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
567
mutex_lock(&drvdata->sem);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
586
mutex_unlock(&drvdata->sem);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
652
mutex_init(&drvdata->sem);
drivers/char/xilinx_hwicap/xilinx_hwicap.h
60
struct mutex sem;
drivers/cpufreq/brcmstb-avs-cpufreq.c
180
struct semaphore sem;
drivers/cpufreq/brcmstb-avs-cpufreq.c
234
ret = down_interruptible(&priv->sem);
drivers/cpufreq/brcmstb-avs-cpufreq.c
311
up(&priv->sem);
drivers/cpufreq/brcmstb-avs-cpufreq.c
563
sema_init(&priv->sem, 1);
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c
320
if (!down_read_trylock(&adev->reset_domain->sem))
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c
338
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
1653
r = down_write_killable(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
1682
up_write(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
1914
r = down_read_killable(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
1955
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
1068
down_read_trylock(&adev->reset_domain->sem)) {
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
1070
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
840
if (down_read_trylock(&adev->reset_domain->sem))
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
841
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
843
lockdep_assert_held(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
869
down_read_trylock(&adev->reset_domain->sem)) {
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
871
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
937
down_read_trylock(&adev->reset_domain->sem)) {
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
939
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
996
down_read_trylock(&adev->reset_domain->sem)) {
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
998
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
489
if (down_read_trylock(&adev->reset_domain->sem)) {
drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
491
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
1521
if (!down_read_trylock(&adev->reset_domain->sem))
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
1526
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
723
if (!down_read_trylock(&adev->reset_domain->sem))
drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
736
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
784
if (!down_read_trylock(&adev->reset_domain->sem))
drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
858
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
886
if (!down_read_trylock(&adev->reset_domain->sem))
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
937
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
1525
if (!down_read_trylock(&adev->reset_domain->sem)) {
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
1534
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
3767
down_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
3768
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c
1020
down_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c
1026
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c
275
down_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c
280
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c
338
down_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c
343
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c
630
down_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c
636
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c
829
down_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c
834
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_reset.c
298
init_rwsem(&reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_reset.c
306
down_write(&reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_reset.c
313
up_write(&reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_reset.h
142
lockdep_assert_held(&domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_reset.h
143
return rwsem_is_contended(&domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_reset.h
99
struct rw_semaphore sem;
drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
456
down_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
468
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
862
down_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
866
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
878
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
881
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
1784
if (down_read_trylock(&adev->reset_domain->sem)) {
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
1786
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
1883
down_read_trylock(&adev->reset_domain->sem)) {
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
1887
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
2000
if (down_read_trylock(&adev->reset_domain->sem)) {
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
2003
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
244
u32 sem, req, ack;
drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
248
sem = hub->vm_inv_eng0_sem + hub->eng_distance * eng;
drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
280
tmp = RREG32_RLC_NO_KIQ(sem, hub_ip);
drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
312
WREG32_RLC_NO_KIQ(sem, 0, hub_ip);
drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c
229
u32 sem, req, ack;
drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c
236
sem = hub->vm_inv_eng0_sem + hub->eng_distance * eng;
drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c
268
tmp = RREG32_RLC_NO_KIQ(sem, hub_ip);
drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c
292
WREG32_RLC_NO_KIQ(sem, 0, hub_ip);
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
815
u32 j, inv_req, tmp, sem, req, ack, inst;
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
823
sem = hub->vm_inv_eng0_sem + hub->eng_distance * eng;
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
860
tmp = RREG32_SOC15_IP_NO_KIQ(MMHUB, sem, GET_INST(GC, inst));
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
862
tmp = RREG32_SOC15_IP_NO_KIQ(GC, sem, GET_INST(GC, inst));
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
903
WREG32_SOC15_IP_NO_KIQ(MMHUB, sem, 0, GET_INST(GC, inst));
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
905
WREG32_SOC15_IP_NO_KIQ(GC, sem, 0, GET_INST(GC, inst));
drivers/gpu/drm/amd/amdgpu/mxgpu_ai.c
300
if (down_read_trylock(&adev->reset_domain->sem)) {
drivers/gpu/drm/amd/amdgpu/mxgpu_ai.c
303
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/mxgpu_ai.c
319
if (down_read_trylock(&adev->reset_domain->sem)) {
drivers/gpu/drm/amd/amdgpu/mxgpu_ai.c
322
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/mxgpu_nv.c
388
if (down_read_trylock(&adev->reset_domain->sem)) {
drivers/gpu/drm/amd/amdgpu/mxgpu_nv.c
391
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdgpu/mxgpu_nv.c
407
if (down_read_trylock(&adev->reset_domain->sem)) {
drivers/gpu/drm/amd/amdgpu/mxgpu_nv.c
410
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
212
if (!down_read_trylock(&adev->reset_domain->sem))
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
2388
if (!down_read_trylock(&dqm->dev->adev->reset_domain->sem))
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
2442
up_read(&dqm->dev->adev->reset_domain->sem);
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
2448
up_read(&dqm->dev->adev->reset_domain->sem);
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
2474
if (!down_read_trylock(&dqm->dev->adev->reset_domain->sem))
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
2479
up_read(&dqm->dev->adev->reset_domain->sem);
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
252
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
265
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
2833
down_read_trylock(&dqm->dev->adev->reset_domain->sem)) {
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
2837
up_read(&dqm->dev->adev->reset_domain->sem);
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
285
if (!down_read_trylock(&adev->reset_domain->sem))
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
296
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
367
if (!down_read_trylock(&adev->reset_domain->sem))
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
371
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
387
if (!down_read_trylock(&adev->reset_domain->sem))
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
391
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c
174
if (kq->queue->properties.type == KFD_QUEUE_TYPE_HIQ && down_read_trylock(&kq->dev->adev->reset_domain->sem)) {
drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c
181
up_read(&kq->dev->adev->reset_domain->sem);
drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c
95
down_read_trylock(&dev->adev->reset_domain->sem)) {
drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c
99
up_read(&dev->adev->reset_domain->sem);
drivers/gpu/drm/amd/amdkfd/kfd_svm.c
2385
if (!down_read_trylock(&pdd->dev->adev->reset_domain->sem))
drivers/gpu/drm/amd/amdkfd/kfd_svm.c
2397
up_read(&pdd->dev->adev->reset_domain->sem);
drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mp1_v13_0.c
44
if (down_read_trylock(&adev->reset_domain->sem)) {
drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mp1_v13_0.c
46
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mp1_v13_0.c
68
if (down_read_trylock(&adev->reset_domain->sem)) {
drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mp1_v13_0.c
79
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_sys.c
200
ret = down_read_trylock(&adev->reset_domain->sem);
drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_sys.c
202
down_read(&adev->reset_domain->sem);
drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_sys.c
204
up_read(&adev->reset_domain->sem);
drivers/gpu/drm/gma500/mmu.c
101
down_write(&driver->sem);
drivers/gpu/drm/gma500/mmu.c
118
up_write(&driver->sem);
drivers/gpu/drm/gma500/mmu.c
128
down_write(&pd->driver->sem);
drivers/gpu/drm/gma500/mmu.c
133
up_write(&pd->driver->sem);
drivers/gpu/drm/gma500/mmu.c
238
down_write(&driver->sem);
drivers/gpu/drm/gma500/mmu.c
258
up_write(&driver->sem);
drivers/gpu/drm/gma500/mmu.c
403
down_read(&driver->sem);
drivers/gpu/drm/gma500/mmu.c
405
up_read(&driver->sem);
drivers/gpu/drm/gma500/mmu.c
440
init_rwsem(&driver->sem);
drivers/gpu/drm/gma500/mmu.c
441
down_write(&driver->sem);
drivers/gpu/drm/gma500/mmu.c
470
up_write(&driver->sem);
drivers/gpu/drm/gma500/mmu.c
535
down_read(&pd->driver->sem);
drivers/gpu/drm/gma500/mmu.c
557
up_read(&pd->driver->sem);
drivers/gpu/drm/gma500/mmu.c
587
down_read(&pd->driver->sem);
drivers/gpu/drm/gma500/mmu.c
615
up_read(&pd->driver->sem);
drivers/gpu/drm/gma500/mmu.c
633
down_read(&pd->driver->sem);
drivers/gpu/drm/gma500/mmu.c
659
up_read(&pd->driver->sem);
drivers/gpu/drm/gma500/mmu.c
695
down_read(&pd->driver->sem);
drivers/gpu/drm/gma500/mmu.c
726
up_read(&pd->driver->sem);
drivers/gpu/drm/gma500/mmu.c
89
down_write(&driver->sem);
drivers/gpu/drm/gma500/mmu.c
91
up_write(&driver->sem);
drivers/gpu/drm/gma500/mmu.h
15
struct rw_semaphore sem;
drivers/gpu/drm/nouveau/include/nvif/chan.h
26
} sem;
drivers/gpu/drm/nouveau/nvif/chan906f.c
49
return chan->func->sem.release(chan, chan->sema.addr,
drivers/gpu/drm/nouveau/nvif/chan906f.c
73
.sem.release = nvif_chan906f_sem_release,
drivers/gpu/drm/nouveau/nvif/chanc36f.c
59
.sem.release = nvif_chanc36f_sem_release,
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
413
u32 reassign, chid, get, sem;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
435
sem = nvkm_rd32(device, NV10_PFIFO_CACHE1_SEMAPHORE);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
436
nvkm_wr32(device, NV10_PFIFO_CACHE1_SEMAPHORE, sem | 0x1);
drivers/gpu/drm/radeon/radeon_trace.h
170
TP_PROTO(int ring, struct radeon_semaphore *sem),
drivers/gpu/drm/radeon/radeon_trace.h
172
TP_ARGS(ring, sem),
drivers/gpu/drm/radeon/radeon_trace.h
182
__entry->waiters = sem->waiters;
drivers/gpu/drm/radeon/radeon_trace.h
183
__entry->gpu_addr = sem->gpu_addr;
drivers/gpu/drm/radeon/radeon_trace.h
192
TP_PROTO(int ring, struct radeon_semaphore *sem),
drivers/gpu/drm/radeon/radeon_trace.h
194
TP_ARGS(ring, sem)
drivers/gpu/drm/radeon/radeon_trace.h
199
TP_PROTO(int ring, struct radeon_semaphore *sem),
drivers/gpu/drm/radeon/radeon_trace.h
201
TP_ARGS(ring, sem)
drivers/infiniband/core/iwpm_msg.c
437
up(&nlmsg_request->sem);
drivers/infiniband/core/iwpm_msg.c
509
up(&nlmsg_request->sem);
drivers/infiniband/core/iwpm_msg.c
607
up(&nlmsg_request->sem);
drivers/infiniband/core/iwpm_msg.c
806
up(&nlmsg_request->sem);
drivers/infiniband/core/iwpm_util.c
327
sema_init(&nlmsg_request->sem, 1);
drivers/infiniband/core/iwpm_util.c
328
down(&nlmsg_request->sem);
drivers/infiniband/core/iwpm_util.c
372
ret = down_timeout(&nlmsg_request->sem, IWPM_NL_TIMEOUT);
drivers/infiniband/core/iwpm_util.h
71
struct semaphore sem;
drivers/infiniband/core/netlink.c
103
down_read(&rdma_nl_types[type].sem);
drivers/infiniband/core/netlink.c
125
down_write(&rdma_nl_types[index].sem);
drivers/infiniband/core/netlink.c
127
up_write(&rdma_nl_types[index].sem);
drivers/infiniband/core/netlink.c
164
down_read(&rdma_nl_types[index].sem);
drivers/infiniband/core/netlink.c
197
up_read(&rdma_nl_types[index].sem);
drivers/infiniband/core/netlink.c
296
init_rwsem(&rdma_nl_types[idx].sem);
drivers/infiniband/core/netlink.c
50
struct rw_semaphore sem;
drivers/infiniband/core/netlink.c
99
up_read(&rdma_nl_types[type].sem);
drivers/infiniband/hw/mlx5/mlx5_ib.h
778
struct semaphore sem;
drivers/infiniband/hw/mlx5/umr.c
184
sema_init(&dev->umrc.sem, MAX_UMR_WR);
drivers/infiniband/hw/mlx5/umr.c
366
down(&umrc->sem);
drivers/infiniband/hw/mlx5/umr.c
409
up(&umrc->sem);
drivers/infiniband/ulp/isert/ib_isert.c
2274
sema_init(&isert_np->sem, 0);
drivers/infiniband/ulp/isert/ib_isert.c
2390
ret = down_interruptible(&isert_np->sem);
drivers/infiniband/ulp/isert/ib_isert.c
528
up(&isert_np->sem);
drivers/infiniband/ulp/isert/ib_isert.h
207
struct semaphore sem;
drivers/input/joystick/turbografx.c
107
scoped_guard(mutex_intr, &tgfx->sem) {
drivers/input/joystick/turbografx.c
124
guard(mutex)(&tgfx->sem);
drivers/input/joystick/turbografx.c
179
mutex_init(&tgfx->sem);
drivers/input/joystick/turbografx.c
66
struct mutex sem;
drivers/macintosh/rack-meter.c
248
mutex_lock(&rm->sem);
drivers/macintosh/rack-meter.c
251
mutex_unlock(&rm->sem);
drivers/macintosh/rack-meter.c
407
mutex_init(&rm->sem);
drivers/macintosh/rack-meter.c
69
struct mutex sem;
drivers/md/dm-crypt.c
2570
down_read(&key->sem);
drivers/md/dm-crypt.c
2572
up_read(&key->sem);
drivers/md/dm-verity-verify-sig.c
50
down_read(&key->sem);
drivers/md/dm-verity-verify-sig.c
68
up_read(&key->sem);
drivers/media/dvb-core/dvb_frontend.c
2071
if (down_interruptible(&fepriv->sem))
drivers/media/dvb-core/dvb_frontend.c
2075
up(&fepriv->sem);
drivers/media/dvb-core/dvb_frontend.c
2096
up(&fepriv->sem);
drivers/media/dvb-core/dvb_frontend.c
2102
up(&fepriv->sem);
drivers/media/dvb-core/dvb_frontend.c
2245
if (down_interruptible(&fepriv->sem))
drivers/media/dvb-core/dvb_frontend.c
2250
up(&fepriv->sem);
drivers/media/dvb-core/dvb_frontend.c
275
up(&fepriv->sem);
drivers/media/dvb-core/dvb_frontend.c
277
down(&fepriv->sem);
drivers/media/dvb-core/dvb_frontend.c
3040
sema_init(&fepriv->sem, 1);
drivers/media/dvb-core/dvb_frontend.c
681
up(&fepriv->sem); /* is locked when we enter the thread... */
drivers/media/dvb-core/dvb_frontend.c
689
if (!down_interruptible(&fepriv->sem))
drivers/media/dvb-core/dvb_frontend.c
695
if (down_interruptible(&fepriv->sem))
drivers/media/dvb-core/dvb_frontend.c
804
up(&fepriv->sem);
drivers/media/dvb-core/dvb_frontend.c
824
sema_init(&fepriv->sem, 1);
drivers/media/dvb-core/dvb_frontend.c
873
if (down_interruptible(&fepriv->sem))
drivers/media/dvb-core/dvb_frontend.c
888
up(&fepriv->sem);
drivers/media/dvb-core/dvb_frontend.c
98
struct semaphore sem;
drivers/media/usb/as102/as102_drv.c
139
if (mutex_lock_interruptible(&as102_dev->sem))
drivers/media/usb/as102/as102_drv.c
149
mutex_unlock(&as102_dev->sem);
drivers/media/usb/as102/as102_drv.c
158
if (mutex_lock_interruptible(&as102_dev->sem))
drivers/media/usb/as102/as102_drv.c
168
mutex_unlock(&as102_dev->sem);
drivers/media/usb/as102/as102_drv.c
348
mutex_init(&as102_dev->sem);
drivers/media/usb/as102/as102_drv.h
64
struct mutex sem;
drivers/misc/ntsync.c
236
return !!obj->u.sem.count;
drivers/misc/ntsync.c
284
obj->u.sem.count--;
drivers/misc/ntsync.c
319
static void try_wake_any_sem(struct ntsync_obj *sem)
drivers/misc/ntsync.c
323
ntsync_assert_held(sem);
drivers/misc/ntsync.c
324
lockdep_assert(sem->type == NTSYNC_TYPE_SEM);
drivers/misc/ntsync.c
326
list_for_each_entry(entry, &sem->any_waiters, node) {
drivers/misc/ntsync.c
330
if (!sem->u.sem.count)
drivers/misc/ntsync.c
334
sem->u.sem.count--;
drivers/misc/ntsync.c
393
static int release_sem_state(struct ntsync_obj *sem, __u32 count)
drivers/misc/ntsync.c
397
ntsync_assert_held(sem);
drivers/misc/ntsync.c
399
if (check_add_overflow(sem->u.sem.count, count, &sum) ||
drivers/misc/ntsync.c
400
sum > sem->u.sem.max)
drivers/misc/ntsync.c
403
sem->u.sem.count = sum;
drivers/misc/ntsync.c
407
static int ntsync_sem_release(struct ntsync_obj *sem, void __user *argp)
drivers/misc/ntsync.c
409
struct ntsync_device *dev = sem->dev;
drivers/misc/ntsync.c
419
if (sem->type != NTSYNC_TYPE_SEM)
drivers/misc/ntsync.c
422
all = ntsync_lock_obj(dev, sem);
drivers/misc/ntsync.c
424
prev_count = sem->u.sem.count;
drivers/misc/ntsync.c
425
ret = release_sem_state(sem, args);
drivers/misc/ntsync.c
428
try_wake_all_obj(dev, sem);
drivers/misc/ntsync.c
429
try_wake_any_sem(sem);
drivers/misc/ntsync.c
432
ntsync_unlock_obj(dev, sem, all);
drivers/misc/ntsync.c
586
static int ntsync_sem_read(struct ntsync_obj *sem, void __user *argp)
drivers/misc/ntsync.c
589
struct ntsync_device *dev = sem->dev;
drivers/misc/ntsync.c
59
} sem;
drivers/misc/ntsync.c
593
if (sem->type != NTSYNC_TYPE_SEM)
drivers/misc/ntsync.c
596
all = ntsync_lock_obj(dev, sem);
drivers/misc/ntsync.c
598
args.count = sem->u.sem.count;
drivers/misc/ntsync.c
599
args.max = sem->u.sem.max;
drivers/misc/ntsync.c
601
ntsync_unlock_obj(dev, sem, all);
drivers/misc/ntsync.c
735
struct ntsync_obj *sem;
drivers/misc/ntsync.c
744
sem = ntsync_alloc_obj(dev, NTSYNC_TYPE_SEM);
drivers/misc/ntsync.c
745
if (!sem)
drivers/misc/ntsync.c
747
sem->u.sem.count = args.count;
drivers/misc/ntsync.c
748
sem->u.sem.max = args.max;
drivers/misc/ntsync.c
749
fd = ntsync_obj_get_fd(sem);
drivers/misc/ntsync.c
751
ntsync_free_obj(sem);
drivers/net/ethernet/emulex/benet/be_cmds.c
713
u32 sem;
drivers/net/ethernet/emulex/benet/be_cmds.c
716
sem = ioread32(adapter->csr + SLIPORT_SEMAPHORE_OFFSET_BEx);
drivers/net/ethernet/emulex/benet/be_cmds.c
719
SLIPORT_SEMAPHORE_OFFSET_SH, &sem);
drivers/net/ethernet/emulex/benet/be_cmds.c
721
return sem & POST_STAGE_MASK;
drivers/net/ethernet/huawei/hinic/hinic_hw_api_cmd.c
386
down(&chain->sem);
drivers/net/ethernet/huawei/hinic/hinic_hw_api_cmd.c
388
up(&chain->sem);
drivers/net/ethernet/huawei/hinic/hinic_hw_api_cmd.c
405
up(&chain->sem);
drivers/net/ethernet/huawei/hinic/hinic_hw_api_cmd.c
826
sema_init(&chain->sem, 1);
drivers/net/ethernet/huawei/hinic/hinic_hw_api_cmd.h
183
struct semaphore sem;
drivers/net/ethernet/mellanox/mlx4/reset.c
104
sem = readl(reset + MLX4_SEM_OFFSET);
drivers/net/ethernet/mellanox/mlx4/reset.c
105
if (!sem)
drivers/net/ethernet/mellanox/mlx4/reset.c
111
if (sem) {
drivers/net/ethernet/mellanox/mlx4/reset.c
51
u32 sem;
drivers/net/ethernet/mellanox/mlx5/core/cmd.c
1024
up(&cmd->vars.sem);
drivers/net/ethernet/mellanox/mlx5/core/cmd.c
1662
down(&cmd->vars.sem);
drivers/net/ethernet/mellanox/mlx5/core/cmd.c
1669
up(&cmd->vars.sem);
drivers/net/ethernet/mellanox/mlx5/core/cmd.c
1678
down(&cmd->vars.sem);
drivers/net/ethernet/mellanox/mlx5/core/cmd.c
1685
up(&cmd->vars.sem);
drivers/net/ethernet/mellanox/mlx5/core/cmd.c
1877
while (down_trylock(&cmd->vars.sem)) {
drivers/net/ethernet/mellanox/mlx5/core/cmd.c
1891
up(&cmd->vars.sem);
drivers/net/ethernet/mellanox/mlx5/core/cmd.c
204
up(ent->page_queue ? &cmd->vars.pages_sem : &cmd->vars.sem);
drivers/net/ethernet/mellanox/mlx5/core/cmd.c
2493
sema_init(&cmd->vars.sem, cmd->vars.max_reg_cmds);
drivers/net/ethernet/mellanox/mlx5/core/cmd.c
997
if (down_timeout(&cmd->vars.sem, timeout)) {
drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c
133
init_rwsem(&comp->sem);
drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c
135
lockdep_set_class(&comp->sem, &comp->lock_key);
drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c
170
down_write(&comp->sem);
drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c
172
up_write(&comp->sem);
drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c
182
down_write(&comp->sem);
drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c
184
up_write(&comp->sem);
drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c
302
down_write(&comp->sem);
drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c
304
data = rcu_dereference_protected(pos->data, lockdep_is_held(&comp->sem));
drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c
313
up_write(&comp->sem);
drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c
321
data = rcu_dereference_protected(pos->data, lockdep_is_held(&comp->sem));
drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c
327
up_write(&comp->sem);
drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c
333
WARN_ON(!rwsem_is_locked(&devcom->comp->sem));
drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c
354
down_read(&comp->sem);
drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c
356
up_read(&comp->sem);
drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c
365
up_read(&devcom->comp->sem);
drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c
379
data = rcu_dereference_protected(tmp->data, lockdep_is_held(&comp->sem));
drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c
40
struct rw_semaphore sem;
drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c
425
down_write(&devcom->comp->sem);
drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c
432
up_write(&devcom->comp->sem);
drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c
439
return down_write_trylock(&devcom->comp->sem);
drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c
293
netxen_pcie_sem_lock(struct netxen_adapter *adapter, int sem, u32 id_reg)
drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c
298
done = NXRD32(adapter, NETXEN_PCIE_REG(PCIE_SEM_LOCK(sem)));
drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c
313
netxen_pcie_sem_unlock(struct netxen_adapter *adapter, int sem)
drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c
315
NXRD32(adapter, NETXEN_PCIE_REG(PCIE_SEM_UNLOCK(sem)));
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
310
qlcnic_pcie_sem_lock(struct qlcnic_adapter *adapter, int sem, u32 id_reg)
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
315
done = QLCRD32(adapter, QLCNIC_PCIE_REG(PCIE_SEM_LOCK(sem)),
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
325
sem, done);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
329
sem);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
332
"Failed to acquire sem=%d lock", sem);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
346
qlcnic_pcie_sem_unlock(struct qlcnic_adapter *adapter, int sem)
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
350
QLCRD32(adapter, QLCNIC_PCIE_REG(PCIE_SEM_UNLOCK(sem)), &err);
drivers/net/ethernet/sfc/efx.h
228
static inline bool efx_rwsem_assert_write_locked(struct rw_semaphore *sem)
drivers/net/ethernet/sfc/efx.h
230
if (WARN_ON(down_read_trylock(sem))) {
drivers/net/ethernet/sfc/efx.h
231
up_read(sem);
drivers/net/ethernet/sfc/falcon/efx.h
264
static inline bool ef4_rwsem_assert_write_locked(struct rw_semaphore *sem)
drivers/net/ethernet/sfc/falcon/efx.h
266
if (WARN_ON(down_read_trylock(sem))) {
drivers/net/ethernet/sfc/falcon/efx.h
267
up_read(sem);
drivers/net/ethernet/sfc/siena/efx.h
206
static inline bool efx_rwsem_assert_write_locked(struct rw_semaphore *sem)
drivers/net/ethernet/sfc/siena/efx.h
208
if (WARN_ON(down_read_trylock(sem))) {
drivers/net/ethernet/sfc/siena/efx.h
209
up_read(sem);
drivers/net/ethernet/wangxun/libwx/wx_hw.c
272
u32 sem = 0;
drivers/net/ethernet/wangxun/libwx/wx_hw.c
276
ret = read_poll_timeout(rd32, sem, !(sem & mask),
drivers/net/ethernet/wangxun/libwx/wx_hw.c
279
sem |= mask;
drivers/net/ethernet/wangxun/libwx/wx_hw.c
280
wr32(wx, WX_MNG_SWFW_SYNC, sem);
drivers/net/ethernet/wangxun/libwx/wx_hw.c
282
wx_err(wx, "SW Semaphore not granted: 0x%x.\n", sem);
drivers/net/wireless/ath/ath6kl/cfg80211.c
1792
if (down_interruptible(&ar->sem))
drivers/net/wireless/ath/ath6kl/cfg80211.c
1800
up(&ar->sem);
drivers/net/wireless/ath/ath6kl/cfg80211.c
1809
up(&ar->sem);
drivers/net/wireless/ath/ath6kl/cfg80211.c
482
if (down_interruptible(&ar->sem)) {
drivers/net/wireless/ath/ath6kl/cfg80211.c
489
up(&ar->sem);
drivers/net/wireless/ath/ath6kl/cfg80211.c
502
up(&ar->sem);
drivers/net/wireless/ath/ath6kl/cfg80211.c
509
up(&ar->sem);
drivers/net/wireless/ath/ath6kl/cfg80211.c
524
up(&ar->sem);
drivers/net/wireless/ath/ath6kl/cfg80211.c
550
up(&ar->sem);
drivers/net/wireless/ath/ath6kl/cfg80211.c
572
up(&ar->sem);
drivers/net/wireless/ath/ath6kl/cfg80211.c
596
up(&ar->sem);
drivers/net/wireless/ath/ath6kl/cfg80211.c
628
up(&ar->sem);
drivers/net/wireless/ath/ath6kl/cfg80211.c
653
up(&ar->sem);
drivers/net/wireless/ath/ath6kl/cfg80211.c
840
if (down_interruptible(&ar->sem)) {
drivers/net/wireless/ath/ath6kl/cfg80211.c
853
up(&ar->sem);
drivers/net/wireless/ath/ath6kl/core.c
288
sema_init(&ar->sem, 1);
drivers/net/wireless/ath/ath6kl/core.h
724
struct semaphore sem;
drivers/net/wireless/ath/ath6kl/debug.c
106
if (down_interruptible(&ar->sem))
drivers/net/wireless/ath/ath6kl/debug.c
112
up(&ar->sem);
drivers/net/wireless/ath/ath6kl/debug.c
1173
if (down_interruptible(&ar->sem))
drivers/net/wireless/ath/ath6kl/debug.c
1180
up(&ar->sem);
drivers/net/wireless/ath/ath6kl/debug.c
1186
up(&ar->sem);
drivers/net/wireless/ath/ath6kl/debug.c
120
up(&ar->sem);
drivers/net/wireless/ath/ath6kl/init.c
1893
if (down_interruptible(&ar->sem)) {
drivers/net/wireless/ath/ath6kl/init.c
1943
up(&ar->sem);
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c
1231
int len, ret, sem;
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c
1243
sem = mt76_connac_mcu_patch_sem_ctrl(&dev->mt76, true);
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c
1244
switch (sem) {
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c
1281
sem = mt76_connac_mcu_patch_sem_ctrl(&dev->mt76, false);
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c
1282
switch (sem) {
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
3101
int i, ret, sem, max_len = mt76_is_sdio(dev) ? 2048 : 4096;
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
3105
sem = mt76_connac_mcu_patch_sem_ctrl(dev, true);
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
3106
switch (sem) {
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
3168
sem = mt76_connac_mcu_patch_sem_ctrl(dev, false);
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
3169
switch (sem) {
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2950
int i, ret, sem;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2952
sem = mt76_connac_mcu_patch_sem_ctrl(&dev->mt76, 1);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2953
switch (sem) {
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
3018
sem = mt76_connac_mcu_patch_sem_ctrl(&dev->mt76, 0);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
3019
switch (sem) {
drivers/nvdimm/security.c
110
down_read_nested(&key->sem, subclass);
drivers/nvdimm/security.c
113
up_read(&key->sem);
drivers/nvdimm/security.c
31
lockdep_assert_held_read(&key->sem);
drivers/nvdimm/security.c
41
up_read(&key->sem);
drivers/nvdimm/security.c
68
down_read(&key->sem);
drivers/nvdimm/security.c
71
up_read(&key->sem);
drivers/pinctrl/stm32/pinctrl-stm32.c
291
u32 cid, sem;
drivers/pinctrl/stm32/pinctrl-stm32.c
308
sem = readl_relaxed(bank->base + STM32_GPIO_SEMCR(gpio_nr));
drivers/pinctrl/stm32/pinctrl-stm32.c
309
if (sem & STM32_GPIO_SEMCR_SEM_MUTEX) {
drivers/pinctrl/stm32/pinctrl-stm32.c
310
if (FIELD_GET(STM32_GPIO_SEMCR_SEMCID_MASK, sem) == STM32_GPIO_CID1)
drivers/pinctrl/stm32/pinctrl-stm32.c
318
sem = readl_relaxed(bank->base + STM32_GPIO_SEMCR(gpio_nr));
drivers/pinctrl/stm32/pinctrl-stm32.c
319
if (sem & STM32_GPIO_SEMCR_SEM_MUTEX &&
drivers/pinctrl/stm32/pinctrl-stm32.c
320
FIELD_GET(STM32_GPIO_SEMCR_SEMCID_MASK, sem) == STM32_GPIO_CID1)
drivers/scsi/be2iscsi/be_cmds.c
1605
u32 sem;
drivers/scsi/be2iscsi/be_cmds.c
1608
sem = ioread32(phba->csr_va + SLIPORT_SEMAPHORE_OFFSET_BEx);
drivers/scsi/be2iscsi/be_cmds.c
1611
SLIPORT_SEMAPHORE_OFFSET_SH, &sem);
drivers/scsi/be2iscsi/be_cmds.c
1612
return sem;
drivers/scsi/hisi_sas/hisi_sas.h
424
struct semaphore sem;
drivers/scsi/hisi_sas/hisi_sas_main.c
1225
down(&hisi_hba->sem);
drivers/scsi/hisi_sas/hisi_sas_main.c
1242
up(&hisi_hba->sem);
drivers/scsi/hisi_sas/hisi_sas_main.c
1293
down(&hisi_hba->sem);
drivers/scsi/hisi_sas/hisi_sas_main.c
1338
up(&hisi_hba->sem);
drivers/scsi/hisi_sas/hisi_sas_main.c
1636
up(&hisi_hba->sem);
drivers/scsi/hisi_sas/hisi_sas_main.c
1647
down(&hisi_hba->sem);
drivers/scsi/hisi_sas/hisi_sas_main.c
1649
up(&hisi_hba->sem);
drivers/scsi/hisi_sas/hisi_sas_main.c
1672
up(&hisi_hba->sem);
drivers/scsi/hisi_sas/hisi_sas_main.c
2027
down(&hisi_hba->sem);
drivers/scsi/hisi_sas/hisi_sas_main.c
2030
up(&hisi_hba->sem);
drivers/scsi/hisi_sas/hisi_sas_main.c
2228
sema_init(&hisi_hba->sem, 1);
drivers/scsi/hisi_sas/hisi_sas_main.c
535
down(&hisi_hba->sem);
drivers/scsi/hisi_sas/hisi_sas_main.c
536
up(&hisi_hba->sem);
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
3999
down(&hisi_hba->sem);
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
4001
up(&hisi_hba->sem);
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
4004
up(&hisi_hba->sem);
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
5117
down(&hisi_hba->sem);
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
5143
up(&hisi_hba->sem);
drivers/tty/tty_ldsem.c
100
INIT_LIST_HEAD(&sem->read_wait);
drivers/tty/tty_ldsem.c
101
sem->wait_readers = 0;
drivers/tty/tty_ldsem.c
104
static inline int writer_trylock(struct ld_semaphore *sem)
drivers/tty/tty_ldsem.c
110
long count = atomic_long_add_return(LDSEM_ACTIVE_BIAS, &sem->count);
drivers/tty/tty_ldsem.c
114
if (atomic_long_try_cmpxchg(&sem->count, &count, count - LDSEM_ACTIVE_BIAS))
drivers/tty/tty_ldsem.c
119
static void __ldsem_wake_writer(struct ld_semaphore *sem)
drivers/tty/tty_ldsem.c
123
waiter = list_entry(sem->write_wait.next, struct ldsem_waiter, list);
drivers/tty/tty_ldsem.c
135
static void __ldsem_wake(struct ld_semaphore *sem)
drivers/tty/tty_ldsem.c
137
if (!list_empty(&sem->write_wait))
drivers/tty/tty_ldsem.c
138
__ldsem_wake_writer(sem);
drivers/tty/tty_ldsem.c
139
else if (!list_empty(&sem->read_wait))
drivers/tty/tty_ldsem.c
140
__ldsem_wake_readers(sem);
drivers/tty/tty_ldsem.c
143
static void ldsem_wake(struct ld_semaphore *sem)
drivers/tty/tty_ldsem.c
147
raw_spin_lock_irqsave(&sem->wait_lock, flags);
drivers/tty/tty_ldsem.c
148
__ldsem_wake(sem);
drivers/tty/tty_ldsem.c
149
raw_spin_unlock_irqrestore(&sem->wait_lock, flags);
drivers/tty/tty_ldsem.c
156
down_read_failed(struct ld_semaphore *sem, long count, long timeout)
drivers/tty/tty_ldsem.c
162
raw_spin_lock_irq(&sem->wait_lock);
drivers/tty/tty_ldsem.c
170
if (atomic_long_try_cmpxchg(&sem->count, &count, count + adjust)) {
drivers/tty/tty_ldsem.c
175
raw_spin_unlock_irq(&sem->wait_lock);
drivers/tty/tty_ldsem.c
176
return sem;
drivers/tty/tty_ldsem.c
180
list_add_tail(&waiter.list, &sem->read_wait);
drivers/tty/tty_ldsem.c
181
sem->wait_readers++;
drivers/tty/tty_ldsem.c
188
__ldsem_wake(sem);
drivers/tty/tty_ldsem.c
190
raw_spin_unlock_irq(&sem->wait_lock);
drivers/tty/tty_ldsem.c
211
raw_spin_lock_irq(&sem->wait_lock);
drivers/tty/tty_ldsem.c
213
atomic_long_add_return(-LDSEM_WAIT_BIAS, &sem->count);
drivers/tty/tty_ldsem.c
214
sem->wait_readers--;
drivers/tty/tty_ldsem.c
216
raw_spin_unlock_irq(&sem->wait_lock);
drivers/tty/tty_ldsem.c
220
raw_spin_unlock_irq(&sem->wait_lock);
drivers/tty/tty_ldsem.c
223
return sem;
drivers/tty/tty_ldsem.c
230
down_write_failed(struct ld_semaphore *sem, long count, long timeout)
drivers/tty/tty_ldsem.c
237
raw_spin_lock_irq(&sem->wait_lock);
drivers/tty/tty_ldsem.c
245
if (atomic_long_try_cmpxchg(&sem->count, &count, count + adjust))
drivers/tty/tty_ldsem.c
248
raw_spin_unlock_irq(&sem->wait_lock);
drivers/tty/tty_ldsem.c
249
return sem;
drivers/tty/tty_ldsem.c
253
list_add_tail(&waiter.list, &sem->write_wait);
drivers/tty/tty_ldsem.c
261
raw_spin_unlock_irq(&sem->wait_lock);
drivers/tty/tty_ldsem.c
263
raw_spin_lock_irq(&sem->wait_lock);
drivers/tty/tty_ldsem.c
265
locked = writer_trylock(sem);
drivers/tty/tty_ldsem.c
271
atomic_long_add_return(-LDSEM_WAIT_BIAS, &sem->count);
drivers/tty/tty_ldsem.c
280
if (!locked && list_empty(&sem->write_wait))
drivers/tty/tty_ldsem.c
281
__ldsem_wake_readers(sem);
drivers/tty/tty_ldsem.c
283
raw_spin_unlock_irq(&sem->wait_lock);
drivers/tty/tty_ldsem.c
290
return sem;
drivers/tty/tty_ldsem.c
295
static int __ldsem_down_read_nested(struct ld_semaphore *sem,
drivers/tty/tty_ldsem.c
300
rwsem_acquire_read(&sem->dep_map, subclass, 0, _RET_IP_);
drivers/tty/tty_ldsem.c
302
count = atomic_long_add_return(LDSEM_READ_BIAS, &sem->count);
drivers/tty/tty_ldsem.c
304
lock_contended(&sem->dep_map, _RET_IP_);
drivers/tty/tty_ldsem.c
305
if (!down_read_failed(sem, count, timeout)) {
drivers/tty/tty_ldsem.c
306
rwsem_release(&sem->dep_map, _RET_IP_);
drivers/tty/tty_ldsem.c
310
lock_acquired(&sem->dep_map, _RET_IP_);
drivers/tty/tty_ldsem.c
314
static int __ldsem_down_write_nested(struct ld_semaphore *sem,
drivers/tty/tty_ldsem.c
319
rwsem_acquire(&sem->dep_map, subclass, 0, _RET_IP_);
drivers/tty/tty_ldsem.c
321
count = atomic_long_add_return(LDSEM_WRITE_BIAS, &sem->count);
drivers/tty/tty_ldsem.c
323
lock_contended(&sem->dep_map, _RET_IP_);
drivers/tty/tty_ldsem.c
324
if (!down_write_failed(sem, count, timeout)) {
drivers/tty/tty_ldsem.c
325
rwsem_release(&sem->dep_map, _RET_IP_);
drivers/tty/tty_ldsem.c
329
lock_acquired(&sem->dep_map, _RET_IP_);
drivers/tty/tty_ldsem.c
337
int __sched ldsem_down_read(struct ld_semaphore *sem, long timeout)
drivers/tty/tty_ldsem.c
340
return __ldsem_down_read_nested(sem, 0, timeout);
drivers/tty/tty_ldsem.c
346
int ldsem_down_read_trylock(struct ld_semaphore *sem)
drivers/tty/tty_ldsem.c
348
long count = atomic_long_read(&sem->count);
drivers/tty/tty_ldsem.c
351
if (atomic_long_try_cmpxchg(&sem->count, &count, count + LDSEM_READ_BIAS)) {
drivers/tty/tty_ldsem.c
352
rwsem_acquire_read(&sem->dep_map, 0, 1, _RET_IP_);
drivers/tty/tty_ldsem.c
353
lock_acquired(&sem->dep_map, _RET_IP_);
drivers/tty/tty_ldsem.c
363
int __sched ldsem_down_write(struct ld_semaphore *sem, long timeout)
drivers/tty/tty_ldsem.c
366
return __ldsem_down_write_nested(sem, 0, timeout);
drivers/tty/tty_ldsem.c
372
void ldsem_up_read(struct ld_semaphore *sem)
drivers/tty/tty_ldsem.c
376
rwsem_release(&sem->dep_map, _RET_IP_);
drivers/tty/tty_ldsem.c
378
count = atomic_long_add_return(-LDSEM_READ_BIAS, &sem->count);
drivers/tty/tty_ldsem.c
380
ldsem_wake(sem);
drivers/tty/tty_ldsem.c
386
void ldsem_up_write(struct ld_semaphore *sem)
drivers/tty/tty_ldsem.c
390
rwsem_release(&sem->dep_map, _RET_IP_);
drivers/tty/tty_ldsem.c
392
count = atomic_long_add_return(-LDSEM_WRITE_BIAS, &sem->count);
drivers/tty/tty_ldsem.c
394
ldsem_wake(sem);
drivers/tty/tty_ldsem.c
400
int ldsem_down_read_nested(struct ld_semaphore *sem, int subclass, long timeout)
drivers/tty/tty_ldsem.c
403
return __ldsem_down_read_nested(sem, subclass, timeout);
drivers/tty/tty_ldsem.c
406
int ldsem_down_write_nested(struct ld_semaphore *sem, int subclass,
drivers/tty/tty_ldsem.c
410
return __ldsem_down_write_nested(sem, subclass, timeout);
drivers/tty/tty_ldsem.c
57
void __init_ldsem(struct ld_semaphore *sem, const char *name,
drivers/tty/tty_ldsem.c
64
debug_check_no_locks_freed((void *)sem, sizeof(*sem));
drivers/tty/tty_ldsem.c
65
lockdep_init_map(&sem->dep_map, name, key, 0);
drivers/tty/tty_ldsem.c
67
atomic_long_set(&sem->count, LDSEM_UNLOCKED);
drivers/tty/tty_ldsem.c
68
sem->wait_readers = 0;
drivers/tty/tty_ldsem.c
69
raw_spin_lock_init(&sem->wait_lock);
drivers/tty/tty_ldsem.c
70
INIT_LIST_HEAD(&sem->read_wait);
drivers/tty/tty_ldsem.c
71
INIT_LIST_HEAD(&sem->write_wait);
drivers/tty/tty_ldsem.c
74
static void __ldsem_wake_readers(struct ld_semaphore *sem)
drivers/tty/tty_ldsem.c
85
adjust = sem->wait_readers * (LDSEM_ACTIVE_BIAS - LDSEM_WAIT_BIAS);
drivers/tty/tty_ldsem.c
86
count = atomic_long_add_return(adjust, &sem->count);
drivers/tty/tty_ldsem.c
90
if (atomic_long_try_cmpxchg(&sem->count, &count, count - adjust))
drivers/tty/tty_ldsem.c
94
list_for_each_entry_safe(waiter, next, &sem->read_wait, list) {
fs/crypto/keysetup_v1.c
103
down_read(&key->sem);
fs/crypto/keysetup_v1.c
130
up_read(&key->sem);
fs/crypto/keysetup_v1.c
313
up_read(&key->sem);
fs/ecryptfs/keystore.c
1049
up_write(&(auth_tok_key->sem));
fs/ecryptfs/keystore.c
1589
down_write(&(*auth_tok_key)->sem);
fs/ecryptfs/keystore.c
1592
up_write(&(*auth_tok_key)->sem);
fs/ecryptfs/keystore.c
1862
up_write(&(auth_tok_key->sem));
fs/ecryptfs/keystore.c
1870
up_write(&(auth_tok_key->sem));
fs/ecryptfs/keystore.c
1875
up_write(&(auth_tok_key->sem));
fs/ecryptfs/keystore.c
1937
up_write(&(auth_tok_key->sem));
fs/ecryptfs/keystore.c
2001
up_write(&(auth_tok_key->sem));
fs/ecryptfs/keystore.c
2399
up_write(&(auth_tok_key->sem));
fs/ecryptfs/keystore.c
2428
up_write(&(auth_tok_key->sem));
fs/ecryptfs/keystore.c
514
down_write(&(walker->global_auth_tok_key->sem));
fs/ecryptfs/keystore.c
527
up_write(&(walker->global_auth_tok_key->sem));
fs/ecryptfs/keystore.c
807
up_write(&(auth_tok_key->sem));
fs/ecryptfs/main.c
205
up_write(&(global_auth_tok->global_auth_tok_key)->sem);
fs/f2fs/checkpoint.c
112
f2fs_bug_on(sem->sbi, 1);
fs/f2fs/checkpoint.c
117
static void uplift_priority(struct f2fs_rwsem *sem, struct f2fs_lock_context *lc,
fs/f2fs/checkpoint.c
121
if (!sem->sbi->adjust_lock_priority)
fs/f2fs/checkpoint.c
125
if (!need_uplift_priority(sem, is_write))
fs/f2fs/checkpoint.c
128
lc->new_nice = PRIO_TO_NICE(sem->sbi->lock_duration_priority);
fs/f2fs/checkpoint.c
134
trace_f2fs_priority_uplift(sem->sbi, sem->name, is_write, current,
fs/f2fs/checkpoint.c
138
static void restore_priority(struct f2fs_rwsem *sem, struct f2fs_lock_context *lc,
fs/f2fs/checkpoint.c
148
trace_f2fs_priority_restore(sem->sbi, sem->name, is_write, current,
fs/f2fs/checkpoint.c
152
void f2fs_down_read_trace(struct f2fs_rwsem *sem, struct f2fs_lock_context *lc)
fs/f2fs/checkpoint.c
154
uplift_priority(sem, lc, false);
fs/f2fs/checkpoint.c
155
f2fs_down_read(sem);
fs/f2fs/checkpoint.c
156
trace_lock_elapsed_time_start(sem, lc);
fs/f2fs/checkpoint.c
159
int f2fs_down_read_trylock_trace(struct f2fs_rwsem *sem, struct f2fs_lock_context *lc)
fs/f2fs/checkpoint.c
161
uplift_priority(sem, lc, false);
fs/f2fs/checkpoint.c
162
if (!f2fs_down_read_trylock(sem)) {
fs/f2fs/checkpoint.c
163
restore_priority(sem, lc, false);
fs/f2fs/checkpoint.c
166
trace_lock_elapsed_time_start(sem, lc);
fs/f2fs/checkpoint.c
170
void f2fs_up_read_trace(struct f2fs_rwsem *sem, struct f2fs_lock_context *lc)
fs/f2fs/checkpoint.c
172
f2fs_up_read(sem);
fs/f2fs/checkpoint.c
173
restore_priority(sem, lc, false);
fs/f2fs/checkpoint.c
174
trace_lock_elapsed_time_end(sem, lc, false);
fs/f2fs/checkpoint.c
177
void f2fs_down_write_trace(struct f2fs_rwsem *sem, struct f2fs_lock_context *lc)
fs/f2fs/checkpoint.c
179
uplift_priority(sem, lc, true);
fs/f2fs/checkpoint.c
180
f2fs_down_write(sem);
fs/f2fs/checkpoint.c
181
trace_lock_elapsed_time_start(sem, lc);
fs/f2fs/checkpoint.c
184
int f2fs_down_write_trylock_trace(struct f2fs_rwsem *sem, struct f2fs_lock_context *lc)
fs/f2fs/checkpoint.c
186
uplift_priority(sem, lc, true);
fs/f2fs/checkpoint.c
187
if (!f2fs_down_write_trylock(sem)) {
fs/f2fs/checkpoint.c
188
restore_priority(sem, lc, true);
fs/f2fs/checkpoint.c
191
trace_lock_elapsed_time_start(sem, lc);
fs/f2fs/checkpoint.c
195
void f2fs_up_write_trace(struct f2fs_rwsem *sem, struct f2fs_lock_context *lc)
fs/f2fs/checkpoint.c
197
f2fs_up_write(sem);
fs/f2fs/checkpoint.c
198
restore_priority(sem, lc, true);
fs/f2fs/checkpoint.c
199
trace_lock_elapsed_time_end(sem, lc, true);
fs/f2fs/checkpoint.c
42
static inline void trace_lock_elapsed_time_start(struct f2fs_rwsem *sem,
fs/f2fs/checkpoint.c
52
static inline void trace_lock_elapsed_time_end(struct f2fs_rwsem *sem,
fs/f2fs/checkpoint.c
66
if (time_to_inject(sem->sbi, FAULT_LOCK_TIMEOUT))
fs/f2fs/checkpoint.c
72
if (total_time <= sem->sbi->max_lock_elapsed_time)
fs/f2fs/checkpoint.c
88
trace_f2fs_lock_elapsed_time(sem->sbi, sem->name, is_write, current,
fs/f2fs/checkpoint.c
93
static bool need_uplift_priority(struct f2fs_rwsem *sem, bool is_write)
fs/f2fs/checkpoint.c
95
if (!(sem->sbi->adjust_lock_priority & BIT(sem->name - 1)))
fs/f2fs/checkpoint.c
98
switch (sem->name) {
fs/f2fs/f2fs.h
2354
#define init_f2fs_rwsem(sem) __init_f2fs_rwsem(sem, NULL, LOCK_NAME_NONE)
fs/f2fs/f2fs.h
2357
#define __init_f2fs_rwsem(sem, sbi, name) \
fs/f2fs/f2fs.h
2361
do_init_f2fs_rwsem((sem), #sem, &__key, sbi, name); \
fs/f2fs/f2fs.h
2364
static inline void do_init_f2fs_rwsem(struct f2fs_rwsem *sem,
fs/f2fs/f2fs.h
2368
sem->sbi = sbi;
fs/f2fs/f2fs.h
2369
sem->name = name;
fs/f2fs/f2fs.h
2370
__init_rwsem(&sem->internal_rwsem, sem_name, key);
fs/f2fs/f2fs.h
2372
init_waitqueue_head(&sem->read_waiters);
fs/f2fs/f2fs.h
2376
static inline int f2fs_rwsem_is_locked(struct f2fs_rwsem *sem)
fs/f2fs/f2fs.h
2378
return rwsem_is_locked(&sem->internal_rwsem);
fs/f2fs/f2fs.h
2381
static inline int f2fs_rwsem_is_contended(struct f2fs_rwsem *sem)
fs/f2fs/f2fs.h
2383
return rwsem_is_contended(&sem->internal_rwsem);
fs/f2fs/f2fs.h
2386
static inline void f2fs_down_read(struct f2fs_rwsem *sem)
fs/f2fs/f2fs.h
2389
wait_event(sem->read_waiters, down_read_trylock(&sem->internal_rwsem));
fs/f2fs/f2fs.h
2391
down_read(&sem->internal_rwsem);
fs/f2fs/f2fs.h
2395
static inline int f2fs_down_read_trylock(struct f2fs_rwsem *sem)
fs/f2fs/f2fs.h
2397
return down_read_trylock(&sem->internal_rwsem);
fs/f2fs/f2fs.h
2400
static inline void f2fs_up_read(struct f2fs_rwsem *sem)
fs/f2fs/f2fs.h
2402
up_read(&sem->internal_rwsem);
fs/f2fs/f2fs.h
2405
static inline void f2fs_down_write(struct f2fs_rwsem *sem)
fs/f2fs/f2fs.h
2407
down_write(&sem->internal_rwsem);
fs/f2fs/f2fs.h
2411
static inline void f2fs_down_read_nested(struct f2fs_rwsem *sem, int subclass)
fs/f2fs/f2fs.h
2413
down_read_nested(&sem->internal_rwsem, subclass);
fs/f2fs/f2fs.h
2416
static inline void f2fs_down_write_nested(struct f2fs_rwsem *sem, int subclass)
fs/f2fs/f2fs.h
2418
down_write_nested(&sem->internal_rwsem, subclass);
fs/f2fs/f2fs.h
2421
#define f2fs_down_read_nested(sem, subclass) f2fs_down_read(sem)
fs/f2fs/f2fs.h
2422
#define f2fs_down_write_nested(sem, subclass) f2fs_down_write(sem)
fs/f2fs/f2fs.h
2425
static inline int f2fs_down_write_trylock(struct f2fs_rwsem *sem)
fs/f2fs/f2fs.h
2427
return down_write_trylock(&sem->internal_rwsem);
fs/f2fs/f2fs.h
2430
static inline void f2fs_up_write(struct f2fs_rwsem *sem)
fs/f2fs/f2fs.h
2432
up_write(&sem->internal_rwsem);
fs/f2fs/f2fs.h
2434
wake_up_all(&sem->read_waiters);
fs/f2fs/f2fs.h
2438
void f2fs_down_read_trace(struct f2fs_rwsem *sem, struct f2fs_lock_context *lc);
fs/f2fs/f2fs.h
2439
int f2fs_down_read_trylock_trace(struct f2fs_rwsem *sem,
fs/f2fs/f2fs.h
2441
void f2fs_up_read_trace(struct f2fs_rwsem *sem, struct f2fs_lock_context *lc);
fs/f2fs/f2fs.h
2442
void f2fs_down_write_trace(struct f2fs_rwsem *sem,
fs/f2fs/f2fs.h
2444
int f2fs_down_write_trylock_trace(struct f2fs_rwsem *sem,
fs/f2fs/f2fs.h
2446
void f2fs_up_write_trace(struct f2fs_rwsem *sem, struct f2fs_lock_context *lc);
fs/fuse/dax.c
1092
down_write(&fi->dax->sem);
fs/fuse/dax.c
1094
up_write(&fi->dax->sem);
fs/fuse/dax.c
1284
init_rwsem(&fi->dax->sem);
fs/fuse/dax.c
472
down_write(&fi->dax->sem);
fs/fuse/dax.c
482
up_write(&fi->dax->sem);
fs/fuse/dax.c
491
up_write(&fi->dax->sem);
fs/fuse/dax.c
495
up_write(&fi->dax->sem);
fs/fuse/dax.c
513
down_write(&fi->dax->sem);
fs/fuse/dax.c
554
up_write(&fi->dax->sem);
fs/fuse/dax.c
588
down_read(&fi->dax->sem);
fs/fuse/dax.c
603
up_read(&fi->dax->sem);
fs/fuse/dax.c
610
up_read(&fi->dax->sem);
fs/fuse/dax.c
614
up_read(&fi->dax->sem);
fs/fuse/dax.c
64
struct rw_semaphore sem;
fs/fuse/dax.c
925
down_read(&fi->dax->sem);
fs/fuse/dax.c
932
up_read(&fi->dax->sem);
fs/fuse/dax.c
948
down_write(&fi->dax->sem);
fs/fuse/dax.c
981
up_write(&fi->dax->sem);
fs/jffs2/debug.c
69
mutex_lock(&f->sem);
fs/jffs2/debug.c
697
mutex_lock(&f->sem);
fs/jffs2/debug.c
699
mutex_unlock(&f->sem);
fs/jffs2/debug.c
71
mutex_unlock(&f->sem);
fs/jffs2/dir.c
112
mutex_unlock(&dir_f->sem);
fs/jffs2/dir.c
137
mutex_lock(&f->sem);
fs/jffs2/dir.c
158
mutex_unlock(&f->sem);
fs/jffs2/dir.c
203
mutex_unlock(&f->sem);
fs/jffs2/dir.c
274
mutex_lock(&f->sem);
fs/jffs2/dir.c
276
mutex_unlock(&f->sem);
fs/jffs2/dir.c
352
mutex_unlock(&f->sem);
fs/jffs2/dir.c
362
mutex_unlock(&f->sem);
fs/jffs2/dir.c
376
mutex_unlock(&f->sem);
fs/jffs2/dir.c
402
mutex_lock(&dir_f->sem);
fs/jffs2/dir.c
425
mutex_unlock(&dir_f->sem);
fs/jffs2/dir.c
439
mutex_unlock(&dir_f->sem);
fs/jffs2/dir.c
512
mutex_unlock(&f->sem);
fs/jffs2/dir.c
521
mutex_unlock(&f->sem);
fs/jffs2/dir.c
547
mutex_lock(&dir_f->sem);
fs/jffs2/dir.c
570
mutex_unlock(&dir_f->sem);
fs/jffs2/dir.c
585
mutex_unlock(&dir_f->sem);
fs/jffs2/dir.c
605
mutex_lock(&f->sem);
fs/jffs2/dir.c
608
mutex_unlock(&f->sem);
fs/jffs2/dir.c
612
mutex_unlock(&f->sem);
fs/jffs2/dir.c
688
mutex_unlock(&f->sem);
fs/jffs2/dir.c
697
mutex_unlock(&f->sem);
fs/jffs2/dir.c
723
mutex_lock(&dir_f->sem);
fs/jffs2/dir.c
749
mutex_unlock(&dir_f->sem);
fs/jffs2/dir.c
763
mutex_unlock(&dir_f->sem);
fs/jffs2/dir.c
798
mutex_lock(&victim_f->sem);
fs/jffs2/dir.c
801
mutex_unlock(&victim_f->sem);
fs/jffs2/dir.c
805
mutex_unlock(&victim_f->sem);
fs/jffs2/dir.c
837
mutex_lock(&victim_f->sem);
fs/jffs2/dir.c
842
mutex_unlock(&victim_f->sem);
fs/jffs2/dir.c
860
mutex_lock(&f->sem);
fs/jffs2/dir.c
864
mutex_unlock(&f->sem);
fs/jffs2/dir.c
99
mutex_lock(&dir_f->sem);
fs/jffs2/file.c
122
mutex_lock(&f->sem);
fs/jffs2/file.c
124
mutex_unlock(&f->sem);
fs/jffs2/file.c
156
mutex_lock(&f->sem);
fs/jffs2/file.c
183
mutex_unlock(&f->sem);
fs/jffs2/file.c
198
mutex_unlock(&f->sem);
fs/jffs2/file.c
203
mutex_unlock(&f->sem);
fs/jffs2/file.c
226
mutex_lock(&f->sem);
fs/jffs2/file.c
228
mutex_unlock(&f->sem);
fs/jffs2/fs.c
146
mutex_unlock(&f->sem);
fs/jffs2/fs.c
177
mutex_unlock(&f->sem);
fs/jffs2/fs.c
275
mutex_lock(&f->sem);
fs/jffs2/fs.c
358
mutex_unlock(&f->sem);
fs/jffs2/fs.c
367
mutex_unlock(&f->sem);
fs/jffs2/fs.c
443
mutex_lock(&f->sem);
fs/jffs2/fs.c
461
mutex_unlock(&f->sem);
fs/jffs2/fs.c
468
mutex_unlock(&f->sem);
fs/jffs2/fs.c
485
mutex_unlock(&f->sem);
fs/jffs2/fs.c
60
mutex_lock(&f->sem);
fs/jffs2/fs.c
64
mutex_unlock(&f->sem);
fs/jffs2/fs.c
69
mutex_unlock(&f->sem);
fs/jffs2/fs.c
73
mutex_unlock(&f->sem);
fs/jffs2/fs.c
93
mutex_lock(&f->sem);
fs/jffs2/gc.c
1328
mutex_unlock(&f->sem);
fs/jffs2/gc.c
1334
mutex_lock(&f->sem);
fs/jffs2/gc.c
1339
mutex_lock(&f->sem);
fs/jffs2/gc.c
506
mutex_lock(&f->sem);
fs/jffs2/gc.c
586
mutex_unlock(&f->sem);
fs/jffs2/jffs2_fs_i.h
27
struct mutex sem;
fs/jffs2/readinode.c
1401
mutex_init(&f->sem);
fs/jffs2/readinode.c
1402
mutex_lock(&f->sem);
fs/jffs2/readinode.c
1406
mutex_unlock(&f->sem);
fs/jffs2/readinode.c
1419
mutex_lock(&f->sem);
fs/jffs2/readinode.c
1446
mutex_unlock(&f->sem);
fs/jffs2/super.c
60
mutex_init(&f->sem);
fs/jffs2/write.c
145
mutex_unlock(&f->sem);
fs/jffs2/write.c
150
mutex_lock(&f->sem);
fs/jffs2/write.c
297
mutex_unlock(&f->sem);
fs/jffs2/write.c
302
mutex_lock(&f->sem);
fs/jffs2/write.c
368
mutex_lock(&f->sem);
fs/jffs2/write.c
397
mutex_unlock(&f->sem);
fs/jffs2/write.c
420
mutex_unlock(&f->sem);
fs/jffs2/write.c
424
mutex_unlock(&f->sem);
fs/jffs2/write.c
460
mutex_lock(&f->sem);
fs/jffs2/write.c
473
mutex_unlock(&f->sem);
fs/jffs2/write.c
482
mutex_unlock(&f->sem);
fs/jffs2/write.c
508
mutex_lock(&dir_f->sem);
fs/jffs2/write.c
532
mutex_unlock(&dir_f->sem);
fs/jffs2/write.c
541
mutex_unlock(&dir_f->sem);
fs/jffs2/write.c
570
mutex_lock(&dir_f->sem);
fs/jffs2/write.c
593
mutex_unlock(&dir_f->sem);
fs/jffs2/write.c
599
mutex_unlock(&dir_f->sem);
fs/jffs2/write.c
607
mutex_lock(&dir_f->sem);
fs/jffs2/write.c
626
mutex_unlock(&dir_f->sem);
fs/jffs2/write.c
634
mutex_lock(&dead_f->sem);
fs/jffs2/write.c
660
mutex_unlock(&dead_f->sem);
fs/jffs2/write.c
687
mutex_lock(&dir_f->sem);
fs/jffs2/write.c
712
mutex_unlock(&dir_f->sem);
fs/jffs2/write.c
720
mutex_unlock(&dir_f->sem);
fs/smb/client/cifsproto.h
168
void cifs_down_write(struct rw_semaphore *sem);
fs/smb/client/connect.c
2233
down_read(&key->sem);
fs/smb/client/connect.c
2310
up_read(&key->sem);
fs/smb/client/file.c
648
cifs_down_write(struct rw_semaphore *sem)
fs/smb/client/file.c
650
while (!down_write_trylock(sem))
fs/ubifs/auth.c
286
down_read(&keyring_key->sem);
fs/ubifs/auth.c
353
up_read(&keyring_key->sem);
include/linux/key.h
205
struct rw_semaphore sem; /* change vs change sem */
include/linux/key.h
484
rwsem_is_locked(&((struct key *)(KEY))->sem)))
include/linux/mlx5/driver.h
307
struct semaphore sem;
include/linux/percpu-rwsem.h
105
rwsem_acquire_read(&sem->dep_map, 0, 1, _RET_IP_);
include/linux/percpu-rwsem.h
110
static inline void percpu_up_read(struct percpu_rw_semaphore *sem)
include/linux/percpu-rwsem.h
112
rwsem_release(&sem->dep_map, _RET_IP_);
include/linux/percpu-rwsem.h
118
if (likely(rcu_sync_is_idle(&sem->rss))) {
include/linux/percpu-rwsem.h
119
this_cpu_dec(*sem->read_count);
include/linux/percpu-rwsem.h
131
this_cpu_dec(*sem->read_count);
include/linux/percpu-rwsem.h
132
rcuwait_wake_up(&sem->writer);
include/linux/percpu-rwsem.h
148
static inline bool percpu_is_write_locked(struct percpu_rw_semaphore *sem)
include/linux/percpu-rwsem.h
150
return atomic_read(&sem->block);
include/linux/percpu-rwsem.h
158
#define percpu_init_rwsem(sem) \
include/linux/percpu-rwsem.h
161
__percpu_init_rwsem(sem, #sem, &rwsem_key); \
include/linux/percpu-rwsem.h
164
#define percpu_rwsem_is_write_held(sem) lockdep_is_held_type(sem, 0)
include/linux/percpu-rwsem.h
165
#define percpu_rwsem_is_held(sem) lockdep_is_held(sem)
include/linux/percpu-rwsem.h
166
#define percpu_rwsem_assert_held(sem) lockdep_assert_held(sem)
include/linux/percpu-rwsem.h
168
static inline void percpu_rwsem_release(struct percpu_rw_semaphore *sem,
include/linux/percpu-rwsem.h
171
lock_release(&sem->dep_map, ip);
include/linux/percpu-rwsem.h
174
static inline void percpu_rwsem_acquire(struct percpu_rw_semaphore *sem,
include/linux/percpu-rwsem.h
177
lock_acquire(&sem->dep_map, 0, 1, read, 1, NULL, ip);
include/linux/percpu-rwsem.h
48
static inline void percpu_down_read_internal(struct percpu_rw_semaphore *sem,
include/linux/percpu-rwsem.h
53
rwsem_acquire_read(&sem->dep_map, 0, 0, _RET_IP_);
include/linux/percpu-rwsem.h
64
if (likely(rcu_sync_is_idle(&sem->rss)))
include/linux/percpu-rwsem.h
65
this_cpu_inc(*sem->read_count);
include/linux/percpu-rwsem.h
67
__percpu_down_read(sem, false, freezable); /* Unconditional memory barrier */
include/linux/percpu-rwsem.h
75
static inline void percpu_down_read(struct percpu_rw_semaphore *sem)
include/linux/percpu-rwsem.h
77
percpu_down_read_internal(sem, false);
include/linux/percpu-rwsem.h
80
static inline void percpu_down_read_freezable(struct percpu_rw_semaphore *sem,
include/linux/percpu-rwsem.h
83
percpu_down_read_internal(sem, freeze);
include/linux/percpu-rwsem.h
86
static inline bool percpu_down_read_trylock(struct percpu_rw_semaphore *sem)
include/linux/percpu-rwsem.h
94
if (likely(rcu_sync_is_idle(&sem->rss)))
include/linux/percpu-rwsem.h
95
this_cpu_inc(*sem->read_count);
include/linux/percpu-rwsem.h
97
ret = __percpu_down_read(sem, true, false); /* Unconditional memory barrier */
include/linux/rwsem.h
116
extern void __init_rwsem(struct rw_semaphore *sem, const char *name,
include/linux/rwsem.h
119
#define init_rwsem(sem) \
include/linux/rwsem.h
123
__init_rwsem((sem), #sem, &__key); \
include/linux/rwsem.h
132
static inline int rwsem_is_contended(struct rw_semaphore *sem)
include/linux/rwsem.h
134
return !list_empty(&sem->wait_list);
include/linux/rwsem.h
141
extern struct task_struct *rwsem_owner(struct rw_semaphore *sem);
include/linux/rwsem.h
146
extern bool is_rwsem_reader_owned(struct rw_semaphore *sem);
include/linux/rwsem.h
172
#define init_rwsem(sem) \
include/linux/rwsem.h
176
__init_rwsem((sem), #sem, &__key); \
include/linux/rwsem.h
179
static __always_inline int rwsem_is_locked(const struct rw_semaphore *sem)
include/linux/rwsem.h
181
return rw_base_is_locked(&sem->rwbase);
include/linux/rwsem.h
184
static __always_inline void rwsem_assert_held_nolockdep(const struct rw_semaphore *sem)
include/linux/rwsem.h
185
__assumes_ctx_lock(sem)
include/linux/rwsem.h
187
WARN_ON(!rwsem_is_locked(sem));
include/linux/rwsem.h
190
static __always_inline void rwsem_assert_held_write_nolockdep(const struct rw_semaphore *sem)
include/linux/rwsem.h
191
__assumes_ctx_lock(sem)
include/linux/rwsem.h
193
WARN_ON(!rw_base_is_write_locked(&sem->rwbase));
include/linux/rwsem.h
196
static __always_inline int rwsem_is_contended(struct rw_semaphore *sem)
include/linux/rwsem.h
198
return rw_base_is_contended(&sem->rwbase);
include/linux/rwsem.h
208
static inline void rwsem_assert_held(const struct rw_semaphore *sem)
include/linux/rwsem.h
209
__assumes_ctx_lock(sem)
include/linux/rwsem.h
212
lockdep_assert_held(sem);
include/linux/rwsem.h
214
rwsem_assert_held_nolockdep(sem);
include/linux/rwsem.h
217
static inline void rwsem_assert_held_write(const struct rw_semaphore *sem)
include/linux/rwsem.h
218
__assumes_ctx_lock(sem)
include/linux/rwsem.h
221
lockdep_assert_held_write(sem);
include/linux/rwsem.h
223
rwsem_assert_held_write_nolockdep(sem);
include/linux/rwsem.h
229
extern void down_read(struct rw_semaphore *sem) __acquires_shared(sem);
include/linux/rwsem.h
230
extern int __must_check down_read_interruptible(struct rw_semaphore *sem) __cond_acquires_shared(0, sem);
include/linux/rwsem.h
231
extern int __must_check down_read_killable(struct rw_semaphore *sem) __cond_acquires_shared(0, sem);
include/linux/rwsem.h
236
extern int down_read_trylock(struct rw_semaphore *sem) __cond_acquires_shared(true, sem);
include/linux/rwsem.h
241
extern void down_write(struct rw_semaphore *sem) __acquires(sem);
include/linux/rwsem.h
242
extern int __must_check down_write_killable(struct rw_semaphore *sem) __cond_acquires(0, sem);
include/linux/rwsem.h
247
extern int down_write_trylock(struct rw_semaphore *sem) __cond_acquires(true, sem);
include/linux/rwsem.h
252
extern void up_read(struct rw_semaphore *sem) __releases_shared(sem);
include/linux/rwsem.h
257
extern void up_write(struct rw_semaphore *sem) __releases(sem);
include/linux/rwsem.h
288
extern void downgrade_write(struct rw_semaphore *sem) __releases(sem) __acquires_shared(sem);
include/linux/rwsem.h
304
extern void down_read_nested(struct rw_semaphore *sem, int subclass) __acquires_shared(sem);
include/linux/rwsem.h
305
extern int __must_check down_read_killable_nested(struct rw_semaphore *sem, int subclass) __cond_acquires_shared(0, sem);
include/linux/rwsem.h
306
extern void down_write_nested(struct rw_semaphore *sem, int subclass) __acquires(sem);
include/linux/rwsem.h
307
extern int down_write_killable_nested(struct rw_semaphore *sem, int subclass) __cond_acquires(0, sem);
include/linux/rwsem.h
308
extern void _down_write_nest_lock(struct rw_semaphore *sem, struct lockdep_map *nest_lock) __acquires(sem);
include/linux/rwsem.h
310
# define down_write_nest_lock(sem, nest_lock) \
include/linux/rwsem.h
313
_down_write_nest_lock(sem, &(nest_lock)->dep_map); \
include/linux/rwsem.h
322
extern void down_read_non_owner(struct rw_semaphore *sem) __acquires_shared(sem);
include/linux/rwsem.h
323
extern void up_read_non_owner(struct rw_semaphore *sem) __releases_shared(sem);
include/linux/rwsem.h
325
# define down_read_nested(sem, subclass) down_read(sem)
include/linux/rwsem.h
326
# define down_read_killable_nested(sem, subclass) down_read_killable(sem)
include/linux/rwsem.h
327
# define down_write_nest_lock(sem, nest_lock) down_write(sem)
include/linux/rwsem.h
328
# define down_write_nested(sem, subclass) down_write(sem)
include/linux/rwsem.h
329
# define down_write_killable_nested(sem, subclass) down_write_killable(sem)
include/linux/rwsem.h
330
# define down_read_non_owner(sem) down_read(sem)
include/linux/rwsem.h
331
# define up_read_non_owner(sem) up_read(sem)
include/linux/rwsem.h
73
static inline int rwsem_is_locked(struct rw_semaphore *sem)
include/linux/rwsem.h
75
return atomic_long_read(&sem->count) != RWSEM_UNLOCKED_VALUE;
include/linux/rwsem.h
78
static inline void rwsem_assert_held_nolockdep(const struct rw_semaphore *sem)
include/linux/rwsem.h
79
__assumes_ctx_lock(sem)
include/linux/rwsem.h
81
WARN_ON(atomic_long_read(&sem->count) == RWSEM_UNLOCKED_VALUE);
include/linux/rwsem.h
84
static inline void rwsem_assert_held_write_nolockdep(const struct rw_semaphore *sem)
include/linux/rwsem.h
85
__assumes_ctx_lock(sem)
include/linux/rwsem.h
87
WARN_ON(!(atomic_long_read(&sem->count) & RWSEM_WRITER_LOCKED));
include/linux/semaphore.h
49
static inline void sema_init(struct semaphore *sem, int val)
include/linux/semaphore.h
52
*sem = (struct semaphore) __SEMAPHORE_INITIALIZER(*sem, val);
include/linux/semaphore.h
53
lockdep_init_map(&sem->lock.dep_map, "semaphore->lock", &__key, 0);
include/linux/semaphore.h
56
extern void down(struct semaphore *sem);
include/linux/semaphore.h
57
extern int __must_check down_interruptible(struct semaphore *sem);
include/linux/semaphore.h
58
extern int __must_check down_killable(struct semaphore *sem);
include/linux/semaphore.h
59
extern int __must_check down_trylock(struct semaphore *sem);
include/linux/semaphore.h
60
extern int __must_check down_timeout(struct semaphore *sem, long jiffies);
include/linux/semaphore.h
61
extern void up(struct semaphore *sem);
include/linux/semaphore.h
62
extern unsigned long sem_last_holder(struct semaphore *sem);
include/linux/tty_ldisc.h
28
void __init_ldsem(struct ld_semaphore *sem, const char *name,
include/linux/tty_ldisc.h
31
#define init_ldsem(sem) \
include/linux/tty_ldisc.h
35
__init_ldsem((sem), #sem, &__key); \
include/linux/tty_ldisc.h
39
int ldsem_down_read(struct ld_semaphore *sem, long timeout);
include/linux/tty_ldisc.h
40
int ldsem_down_read_trylock(struct ld_semaphore *sem);
include/linux/tty_ldisc.h
41
int ldsem_down_write(struct ld_semaphore *sem, long timeout);
include/linux/tty_ldisc.h
42
void ldsem_up_read(struct ld_semaphore *sem);
include/linux/tty_ldisc.h
43
void ldsem_up_write(struct ld_semaphore *sem);
include/linux/tty_ldisc.h
46
int ldsem_down_read_nested(struct ld_semaphore *sem, int subclass,
include/linux/tty_ldisc.h
48
int ldsem_down_write_nested(struct ld_semaphore *sem, int subclass,
include/linux/tty_ldisc.h
51
# define ldsem_down_read_nested(sem, subclass, timeout) \
include/linux/tty_ldisc.h
52
ldsem_down_read(sem, timeout)
include/linux/tty_ldisc.h
53
# define ldsem_down_write_nested(sem, subclass, timeout) \
include/linux/tty_ldisc.h
54
ldsem_down_write(sem, timeout)
include/soc/arc/mcip.h
66
msg:1, sem:1, ipi:1, slv:1,
include/soc/arc/mcip.h
70
slv:1, ipi:1, sem:1, msg:1,
include/uapi/linux/sem.h
29
struct sem *sem_base; /* ptr to first semaphore in array */
ipc/sem.c
1173
struct sem *sem = &sma->sems[i];
ipc/sem.c
1174
list_for_each_entry_safe(q, tq, &sem->pending_const, list) {
ipc/sem.c
1178
list_for_each_entry_safe(q, tq, &sem->pending_alter, list) {
ipc/sem.c
1182
ipc_update_pid(&sem->sempid, NULL);
ipc/sem.c
126
struct sem sems[];
ipc/sem.c
1348
struct sem *curr;
ipc/sem.c
1409
struct sem *curr;
ipc/sem.c
2128
struct sem *curr;
ipc/sem.c
2414
struct sem *semaphore = &sma->sems[i];
ipc/sem.c
296
struct sem *curr;
ipc/sem.c
317
struct sem *sem = &sma->sems[i];
ipc/sem.c
319
list_splice_init(&sem->pending_alter, &sma->pending_alter);
ipc/sem.c
339
struct sem *sem;
ipc/sem.c
353
sem = &sma->sems[i];
ipc/sem.c
354
spin_lock(&sem->lock);
ipc/sem.c
355
spin_unlock(&sem->lock);
ipc/sem.c
392
struct sem *sem;
ipc/sem.c
412
sem = &sma->sems[idx];
ipc/sem.c
423
spin_lock(&sem->lock);
ipc/sem.c
430
spin_unlock(&sem->lock);
ipc/sem.c
446
spin_lock(&sem->lock);
ipc/sem.c
467
struct sem *sem = &sma->sems[locknum];
ipc/sem.c
468
spin_unlock(&sem->lock);
ipc/sem.c
651
struct sem *curr;
ipc/sem.c
723
struct sem *curr;
kernel/crash_dump_dm_crypt.c
156
down_read(&key->sem);
kernel/crash_dump_dm_crypt.c
175
up_read(&key->sem);
kernel/locking/percpu-rwsem.c
103
return __percpu_down_write_trylock(sem);
kernel/locking/percpu-rwsem.c
124
struct percpu_rw_semaphore *sem = key;
kernel/locking/percpu-rwsem.c
128
if (!__percpu_rwsem_trylock(sem, reader))
kernel/locking/percpu-rwsem.c
14
int __percpu_init_rwsem(struct percpu_rw_semaphore *sem,
kernel/locking/percpu-rwsem.c
141
static void percpu_rwsem_wait(struct percpu_rw_semaphore *sem, bool reader,
kernel/locking/percpu-rwsem.c
147
spin_lock_irq(&sem->waiters.lock);
kernel/locking/percpu-rwsem.c
152
wait = !__percpu_rwsem_trylock(sem, reader);
kernel/locking/percpu-rwsem.c
155
__add_wait_queue_entry_tail(&sem->waiters, &wq_entry);
kernel/locking/percpu-rwsem.c
157
spin_unlock_irq(&sem->waiters.lock);
kernel/locking/percpu-rwsem.c
169
bool __sched __percpu_down_read(struct percpu_rw_semaphore *sem, bool try,
kernel/locking/percpu-rwsem.c
17
sem->read_count = alloc_percpu(int);
kernel/locking/percpu-rwsem.c
172
if (__percpu_down_read_trylock(sem))
kernel/locking/percpu-rwsem.c
178
trace_contention_begin(sem, LCB_F_PERCPU | LCB_F_READ);
kernel/locking/percpu-rwsem.c
18
if (unlikely(!sem->read_count))
kernel/locking/percpu-rwsem.c
180
percpu_rwsem_wait(sem, /* .reader = */ true, freeze);
kernel/locking/percpu-rwsem.c
182
trace_contention_end(sem, 0);
kernel/locking/percpu-rwsem.c
198
bool percpu_is_read_locked(struct percpu_rw_semaphore *sem)
kernel/locking/percpu-rwsem.c
200
return per_cpu_sum(*sem->read_count) != 0 && !atomic_read(&sem->block);
kernel/locking/percpu-rwsem.c
21
rcu_sync_init(&sem->rss);
kernel/locking/percpu-rwsem.c
212
static bool readers_active_check(struct percpu_rw_semaphore *sem)
kernel/locking/percpu-rwsem.c
214
if (per_cpu_sum(*sem->read_count) != 0)
kernel/locking/percpu-rwsem.c
22
rcuwait_init(&sem->writer);
kernel/locking/percpu-rwsem.c
227
void __sched percpu_down_write(struct percpu_rw_semaphore *sem)
kernel/locking/percpu-rwsem.c
23
init_waitqueue_head(&sem->waiters);
kernel/locking/percpu-rwsem.c
232
rwsem_acquire(&sem->dep_map, 0, 0, _RET_IP_);
kernel/locking/percpu-rwsem.c
235
rcu_sync_enter(&sem->rss);
kernel/locking/percpu-rwsem.c
24
atomic_set(&sem->block, 0);
kernel/locking/percpu-rwsem.c
241
if (!__percpu_down_write_trylock(sem)) {
kernel/locking/percpu-rwsem.c
242
trace_contention_begin(sem, LCB_F_PERCPU | LCB_F_WRITE);
kernel/locking/percpu-rwsem.c
243
percpu_rwsem_wait(sem, /* .reader = */ false, false);
kernel/locking/percpu-rwsem.c
256
rcuwait_wait_event(&sem->writer, readers_active_check(sem), TASK_UNINTERRUPTIBLE);
kernel/locking/percpu-rwsem.c
258
trace_contention_end(sem, 0);
kernel/locking/percpu-rwsem.c
26
debug_check_no_locks_freed((void *)sem, sizeof(*sem));
kernel/locking/percpu-rwsem.c
262
void percpu_up_write(struct percpu_rw_semaphore *sem)
kernel/locking/percpu-rwsem.c
264
rwsem_release(&sem->dep_map, _RET_IP_);
kernel/locking/percpu-rwsem.c
27
lockdep_init_map(&sem->dep_map, name, key, 0);
kernel/locking/percpu-rwsem.c
276
atomic_set_release(&sem->block, 0);
kernel/locking/percpu-rwsem.c
281
__wake_up(&sem->waiters, TASK_NORMAL, 1, sem);
kernel/locking/percpu-rwsem.c
288
rcu_sync_exit(&sem->rss);
kernel/locking/percpu-rwsem.c
33
void percpu_free_rwsem(struct percpu_rw_semaphore *sem)
kernel/locking/percpu-rwsem.c
39
if (!sem->read_count)
kernel/locking/percpu-rwsem.c
42
rcu_sync_dtor(&sem->rss);
kernel/locking/percpu-rwsem.c
43
free_percpu(sem->read_count);
kernel/locking/percpu-rwsem.c
44
sem->read_count = NULL; /* catch use after free bugs */
kernel/locking/percpu-rwsem.c
48
static bool __percpu_down_read_trylock(struct percpu_rw_semaphore *sem)
kernel/locking/percpu-rwsem.c
50
this_cpu_inc(*sem->read_count);
kernel/locking/percpu-rwsem.c
73
if (likely(!atomic_read_acquire(&sem->block)))
kernel/locking/percpu-rwsem.c
76
this_cpu_dec(*sem->read_count);
kernel/locking/percpu-rwsem.c
79
rcuwait_wake_up(&sem->writer);
kernel/locking/percpu-rwsem.c
84
static inline bool __percpu_down_write_trylock(struct percpu_rw_semaphore *sem)
kernel/locking/percpu-rwsem.c
86
if (atomic_read(&sem->block))
kernel/locking/percpu-rwsem.c
89
return atomic_xchg(&sem->block, 1) == 0;
kernel/locking/percpu-rwsem.c
92
static bool __percpu_rwsem_trylock(struct percpu_rw_semaphore *sem, bool reader)
kernel/locking/percpu-rwsem.c
98
ret = __percpu_down_read_trylock(sem);
kernel/locking/rwsem.c
1005
if ((atomic_long_read(&sem->owner) & RWSEM_READER_OWNED) &&
kernel/locking/rwsem.c
1013
rwsem_set_reader_owned(sem);
kernel/locking/rwsem.c
1021
raw_spin_lock_irq(&sem->wait_lock);
kernel/locking/rwsem.c
1022
if (!list_empty(&sem->wait_list))
kernel/locking/rwsem.c
1023
rwsem_mark_wake(sem, RWSEM_WAKE_READ_OWNED,
kernel/locking/rwsem.c
1025
raw_spin_unlock_irq(&sem->wait_lock);
kernel/locking/rwsem.c
1028
return sem;
kernel/locking/rwsem.c
1037
raw_spin_lock_irq(&sem->wait_lock);
kernel/locking/rwsem.c
1038
if (list_empty(&sem->wait_list)) {
kernel/locking/rwsem.c
1045
if (!(atomic_long_read(&sem->count) & RWSEM_WRITER_MASK)) {
kernel/locking/rwsem.c
1048
raw_spin_unlock_irq(&sem->wait_lock);
kernel/locking/rwsem.c
1049
rwsem_set_reader_owned(sem);
kernel/locking/rwsem.c
1051
return sem;
kernel/locking/rwsem.c
1055
rwsem_add_waiter(sem, &waiter);
kernel/locking/rwsem.c
1058
count = atomic_long_add_return(adjustment, &sem->count);
kernel/locking/rwsem.c
1060
rwsem_cond_wake_waiter(sem, count, &wake_q);
kernel/locking/rwsem.c
1061
raw_spin_unlock_irq(&sem->wait_lock);
kernel/locking/rwsem.c
1066
trace_contention_begin(sem, LCB_F_READ);
kernel/locking/rwsem.c
1070
hung_task_set_blocker(sem, BLOCKER_TYPE_RWSEM_READER);
kernel/locking/rwsem.c
1079
raw_spin_lock_irq(&sem->wait_lock);
kernel/locking/rwsem.c
1082
raw_spin_unlock_irq(&sem->wait_lock);
kernel/locking/rwsem.c
1096
trace_contention_end(sem, 0);
kernel/locking/rwsem.c
1097
return sem;
kernel/locking/rwsem.c
1100
rwsem_del_wake_waiter(sem, &waiter, &wake_q);
kernel/locking/rwsem.c
1103
trace_contention_end(sem, -EINTR);
kernel/locking/rwsem.c
1111
rwsem_down_write_slowpath(struct rw_semaphore *sem, int state)
kernel/locking/rwsem.c
1117
if (rwsem_can_spin_on_owner(sem) && rwsem_optimistic_spin(sem)) {
kernel/locking/rwsem.c
1119
return sem;
kernel/locking/rwsem.c
1131
raw_spin_lock_irq(&sem->wait_lock);
kernel/locking/rwsem.c
1132
rwsem_add_waiter(sem, &waiter);
kernel/locking/rwsem.c
1135
if (rwsem_first_waiter(sem) != &waiter) {
kernel/locking/rwsem.c
1136
rwsem_cond_wake_waiter(sem, atomic_long_read(&sem->count),
kernel/locking/rwsem.c
1143
raw_spin_unlock_irq(&sem->wait_lock);
kernel/locking/rwsem.c
1145
raw_spin_lock_irq(&sem->wait_lock);
kernel/locking/rwsem.c
1148
atomic_long_or(RWSEM_FLAG_WAITERS, &sem->count);
kernel/locking/rwsem.c
1153
trace_contention_begin(sem, LCB_F_WRITE);
kernel/locking/rwsem.c
1156
hung_task_set_blocker(sem, BLOCKER_TYPE_RWSEM_WRITER);
kernel/locking/rwsem.c
1159
if (rwsem_try_write_lock(sem, &waiter)) {
kernel/locking/rwsem.c
1164
raw_spin_unlock_irq(&sem->wait_lock);
kernel/locking/rwsem.c
1180
owner_state = rwsem_spin_on_owner(sem);
kernel/locking/rwsem.c
1189
raw_spin_lock_irq(&sem->wait_lock);
kernel/locking/rwsem.c
1196
raw_spin_unlock_irq(&sem->wait_lock);
kernel/locking/rwsem.c
1198
trace_contention_end(sem, 0);
kernel/locking/rwsem.c
1199
return sem;
kernel/locking/rwsem.c
1203
raw_spin_lock_irq(&sem->wait_lock);
kernel/locking/rwsem.c
1204
rwsem_del_wake_waiter(sem, &waiter, &wake_q);
kernel/locking/rwsem.c
1206
trace_contention_end(sem, -EINTR);
kernel/locking/rwsem.c
1214
static struct rw_semaphore *rwsem_wake(struct rw_semaphore *sem)
kernel/locking/rwsem.c
1219
raw_spin_lock_irqsave(&sem->wait_lock, flags);
kernel/locking/rwsem.c
1221
if (!list_empty(&sem->wait_list))
kernel/locking/rwsem.c
1222
rwsem_mark_wake(sem, RWSEM_WAKE_ANY, &wake_q);
kernel/locking/rwsem.c
1224
raw_spin_unlock_irqrestore(&sem->wait_lock, flags);
kernel/locking/rwsem.c
1227
return sem;
kernel/locking/rwsem.c
1235
static struct rw_semaphore *rwsem_downgrade_wake(struct rw_semaphore *sem)
kernel/locking/rwsem.c
1240
raw_spin_lock_irqsave(&sem->wait_lock, flags);
kernel/locking/rwsem.c
1242
if (!list_empty(&sem->wait_list))
kernel/locking/rwsem.c
1243
rwsem_mark_wake(sem, RWSEM_WAKE_READ_OWNED, &wake_q);
kernel/locking/rwsem.c
1245
raw_spin_unlock_irqrestore(&sem->wait_lock, flags);
kernel/locking/rwsem.c
1248
return sem;
kernel/locking/rwsem.c
1254
static __always_inline int __down_read_common(struct rw_semaphore *sem, int state)
kernel/locking/rwsem.c
1260
if (!rwsem_read_trylock(sem, &count)) {
kernel/locking/rwsem.c
1261
if (IS_ERR(rwsem_down_read_slowpath(sem, count, state))) {
kernel/locking/rwsem.c
1265
DEBUG_RWSEMS_WARN_ON(!is_rwsem_reader_owned(sem), sem);
kernel/locking/rwsem.c
1272
static __always_inline void __down_read(struct rw_semaphore *sem)
kernel/locking/rwsem.c
1274
__down_read_common(sem, TASK_UNINTERRUPTIBLE);
kernel/locking/rwsem.c
1277
static __always_inline int __down_read_interruptible(struct rw_semaphore *sem)
kernel/locking/rwsem.c
1279
return __down_read_common(sem, TASK_INTERRUPTIBLE);
kernel/locking/rwsem.c
1282
static __always_inline int __down_read_killable(struct rw_semaphore *sem)
kernel/locking/rwsem.c
1284
return __down_read_common(sem, TASK_KILLABLE);
kernel/locking/rwsem.c
1287
static inline int __down_read_trylock(struct rw_semaphore *sem)
kernel/locking/rwsem.c
1292
DEBUG_RWSEMS_WARN_ON(sem->magic != sem, sem);
kernel/locking/rwsem.c
1295
tmp = atomic_long_read(&sem->count);
kernel/locking/rwsem.c
1297
if (atomic_long_try_cmpxchg_acquire(&sem->count, &tmp,
kernel/locking/rwsem.c
1299
rwsem_set_reader_owned(sem);
kernel/locking/rwsem.c
1311
static __always_inline int __down_write_common(struct rw_semaphore *sem, int state)
kernel/locking/rwsem.c
1316
if (unlikely(!rwsem_write_trylock(sem))) {
kernel/locking/rwsem.c
1317
if (IS_ERR(rwsem_down_write_slowpath(sem, state)))
kernel/locking/rwsem.c
1324
static __always_inline void __down_write(struct rw_semaphore *sem)
kernel/locking/rwsem.c
1326
__down_write_common(sem, TASK_UNINTERRUPTIBLE);
kernel/locking/rwsem.c
1329
static __always_inline int __down_write_killable(struct rw_semaphore *sem)
kernel/locking/rwsem.c
1331
return __down_write_common(sem, TASK_KILLABLE);
kernel/locking/rwsem.c
1334
static inline int __down_write_trylock(struct rw_semaphore *sem)
kernel/locking/rwsem.c
1339
DEBUG_RWSEMS_WARN_ON(sem->magic != sem, sem);
kernel/locking/rwsem.c
1340
ret = rwsem_write_trylock(sem);
kernel/locking/rwsem.c
1349
static inline void __up_read(struct rw_semaphore *sem)
kernel/locking/rwsem.c
1353
DEBUG_RWSEMS_WARN_ON(sem->magic != sem, sem);
kernel/locking/rwsem.c
1354
DEBUG_RWSEMS_WARN_ON(!is_rwsem_reader_owned(sem), sem);
kernel/locking/rwsem.c
1357
rwsem_clear_reader_owned(sem);
kernel/locking/rwsem.c
1358
tmp = atomic_long_add_return_release(-RWSEM_READER_BIAS, &sem->count);
kernel/locking/rwsem.c
1359
DEBUG_RWSEMS_WARN_ON(tmp < 0, sem);
kernel/locking/rwsem.c
1362
clear_nonspinnable(sem);
kernel/locking/rwsem.c
1363
rwsem_wake(sem);
kernel/locking/rwsem.c
1371
static inline void __up_write(struct rw_semaphore *sem)
kernel/locking/rwsem.c
1375
DEBUG_RWSEMS_WARN_ON(sem->magic != sem, sem);
kernel/locking/rwsem.c
1380
DEBUG_RWSEMS_WARN_ON((rwsem_owner(sem) != current) &&
kernel/locking/rwsem.c
1381
!rwsem_test_oflags(sem, RWSEM_NONSPINNABLE), sem);
kernel/locking/rwsem.c
1384
rwsem_clear_owner(sem);
kernel/locking/rwsem.c
1385
tmp = atomic_long_fetch_add_release(-RWSEM_WRITER_LOCKED, &sem->count);
kernel/locking/rwsem.c
1387
rwsem_wake(sem);
kernel/locking/rwsem.c
1394
static inline void __downgrade_write(struct rw_semaphore *sem)
kernel/locking/rwsem.c
1405
DEBUG_RWSEMS_WARN_ON(rwsem_owner(sem) != current, sem);
kernel/locking/rwsem.c
1408
-RWSEM_WRITER_LOCKED+RWSEM_READER_BIAS, &sem->count);
kernel/locking/rwsem.c
1409
rwsem_set_reader_owned(sem);
kernel/locking/rwsem.c
141
static inline void rwsem_set_owner(struct rw_semaphore *sem)
kernel/locking/rwsem.c
1411
rwsem_downgrade_wake(sem);
kernel/locking/rwsem.c
144
atomic_long_set(&sem->owner, (long)current);
kernel/locking/rwsem.c
1452
void __init_rwsem(struct rw_semaphore *sem, const char *name,
kernel/locking/rwsem.c
1455
init_rwbase_rt(&(sem)->rwbase);
kernel/locking/rwsem.c
1458
debug_check_no_locks_freed((void *)sem, sizeof(*sem));
kernel/locking/rwsem.c
1459
lockdep_init_map_wait(&sem->dep_map, name, key, 0, LD_WAIT_SLEEP);
kernel/locking/rwsem.c
1464
static inline void __down_read(struct rw_semaphore *sem)
kernel/locking/rwsem.c
1466
rwbase_read_lock(&sem->rwbase, TASK_UNINTERRUPTIBLE);
kernel/locking/rwsem.c
1469
static inline int __down_read_interruptible(struct rw_semaphore *sem)
kernel/locking/rwsem.c
147
static inline void rwsem_clear_owner(struct rw_semaphore *sem)
kernel/locking/rwsem.c
1471
return rwbase_read_lock(&sem->rwbase, TASK_INTERRUPTIBLE);
kernel/locking/rwsem.c
1474
static inline int __down_read_killable(struct rw_semaphore *sem)
kernel/locking/rwsem.c
1476
return rwbase_read_lock(&sem->rwbase, TASK_KILLABLE);
kernel/locking/rwsem.c
1479
static inline int __down_read_trylock(struct rw_semaphore *sem)
kernel/locking/rwsem.c
1481
return rwbase_read_trylock(&sem->rwbase);
kernel/locking/rwsem.c
1484
static inline void __up_read(struct rw_semaphore *sem)
kernel/locking/rwsem.c
1486
rwbase_read_unlock(&sem->rwbase, TASK_NORMAL);
kernel/locking/rwsem.c
1489
static inline void __sched __down_write(struct rw_semaphore *sem)
kernel/locking/rwsem.c
1491
rwbase_write_lock(&sem->rwbase, TASK_UNINTERRUPTIBLE);
kernel/locking/rwsem.c
1494
static inline int __sched __down_write_killable(struct rw_semaphore *sem)
kernel/locking/rwsem.c
1496
return rwbase_write_lock(&sem->rwbase, TASK_KILLABLE);
kernel/locking/rwsem.c
1499
static inline int __down_write_trylock(struct rw_semaphore *sem)
kernel/locking/rwsem.c
150
atomic_long_set(&sem->owner, 0);
kernel/locking/rwsem.c
1501
return rwbase_write_trylock(&sem->rwbase);
kernel/locking/rwsem.c
1504
static inline void __up_write(struct rw_semaphore *sem)
kernel/locking/rwsem.c
1506
rwbase_write_unlock(&sem->rwbase);
kernel/locking/rwsem.c
1509
static inline void __downgrade_write(struct rw_semaphore *sem)
kernel/locking/rwsem.c
1511
rwbase_write_downgrade(&sem->rwbase);
kernel/locking/rwsem.c
1515
#define DEBUG_RWSEMS_WARN_ON(c, sem)
kernel/locking/rwsem.c
1517
static inline void __rwsem_set_reader_owned(struct rw_semaphore *sem,
kernel/locking/rwsem.c
1522
static inline bool is_rwsem_reader_owned(struct rw_semaphore *sem)
kernel/locking/rwsem.c
1524
int count = atomic_read(&sem->rwbase.readers);
kernel/locking/rwsem.c
1534
void __sched down_read(struct rw_semaphore *sem)
kernel/locking/rwsem.c
1537
rwsem_acquire_read(&sem->dep_map, 0, 0, _RET_IP_);
kernel/locking/rwsem.c
1539
LOCK_CONTENDED(sem, __down_read_trylock, __down_read);
kernel/locking/rwsem.c
1543
int __sched down_read_interruptible(struct rw_semaphore *sem)
kernel/locking/rwsem.c
1546
rwsem_acquire_read(&sem->dep_map, 0, 0, _RET_IP_);
kernel/locking/rwsem.c
1548
if (LOCK_CONTENDED_RETURN(sem, __down_read_trylock, __down_read_interruptible)) {
kernel/locking/rwsem.c
1549
rwsem_release(&sem->dep_map, _RET_IP_);
kernel/locking/rwsem.c
1557
int __sched down_read_killable(struct rw_semaphore *sem)
kernel/locking/rwsem.c
156
static inline bool rwsem_test_oflags(struct rw_semaphore *sem, long flags)
kernel/locking/rwsem.c
1560
rwsem_acquire_read(&sem->dep_map, 0, 0, _RET_IP_);
kernel/locking/rwsem.c
1562
if (LOCK_CONTENDED_RETURN(sem, __down_read_trylock, __down_read_killable)) {
kernel/locking/rwsem.c
1563
rwsem_release(&sem->dep_map, _RET_IP_);
kernel/locking/rwsem.c
1574
int down_read_trylock(struct rw_semaphore *sem)
kernel/locking/rwsem.c
1576
int ret = __down_read_trylock(sem);
kernel/locking/rwsem.c
1579
rwsem_acquire_read(&sem->dep_map, 0, 1, _RET_IP_);
kernel/locking/rwsem.c
158
return atomic_long_read(&sem->owner) & flags;
kernel/locking/rwsem.c
1587
void __sched down_write(struct rw_semaphore *sem)
kernel/locking/rwsem.c
1590
rwsem_acquire(&sem->dep_map, 0, 0, _RET_IP_);
kernel/locking/rwsem.c
1591
LOCK_CONTENDED(sem, __down_write_trylock, __down_write);
kernel/locking/rwsem.c
1598
int __sched down_write_killable(struct rw_semaphore *sem)
kernel/locking/rwsem.c
1601
rwsem_acquire(&sem->dep_map, 0, 0, _RET_IP_);
kernel/locking/rwsem.c
1603
if (LOCK_CONTENDED_RETURN(sem, __down_write_trylock,
kernel/locking/rwsem.c
1605
rwsem_release(&sem->dep_map, _RET_IP_);
kernel/locking/rwsem.c
1616
int down_write_trylock(struct rw_semaphore *sem)
kernel/locking/rwsem.c
1618
int ret = __down_write_trylock(sem);
kernel/locking/rwsem.c
1621
rwsem_acquire(&sem->dep_map, 0, 1, _RET_IP_);
kernel/locking/rwsem.c
1630
void up_read(struct rw_semaphore *sem)
kernel/locking/rwsem.c
1632
rwsem_release(&sem->dep_map, _RET_IP_);
kernel/locking/rwsem.c
1633
__up_read(sem);
kernel/locking/rwsem.c
1640
void up_write(struct rw_semaphore *sem)
kernel/locking/rwsem.c
1642
rwsem_release(&sem->dep_map, _RET_IP_);
kernel/locking/rwsem.c
1643
__up_write(sem);
kernel/locking/rwsem.c
1650
void downgrade_write(struct rw_semaphore *sem)
kernel/locking/rwsem.c
1652
lock_downgrade(&sem->dep_map, _RET_IP_);
kernel/locking/rwsem.c
1653
__downgrade_write(sem);
kernel/locking/rwsem.c
1659
void down_read_nested(struct rw_semaphore *sem, int subclass)
kernel/locking/rwsem.c
1662
rwsem_acquire_read(&sem->dep_map, subclass, 0, _RET_IP_);
kernel/locking/rwsem.c
1663
LOCK_CONTENDED(sem, __down_read_trylock, __down_read);
kernel/locking/rwsem.c
1667
int down_read_killable_nested(struct rw_semaphore *sem, int subclass)
kernel/locking/rwsem.c
1670
rwsem_acquire_read(&sem->dep_map, subclass, 0, _RET_IP_);
kernel/locking/rwsem.c
1672
if (LOCK_CONTENDED_RETURN(sem, __down_read_trylock, __down_read_killable)) {
kernel/locking/rwsem.c
1673
rwsem_release(&sem->dep_map, _RET_IP_);
kernel/locking/rwsem.c
1681
void _down_write_nest_lock(struct rw_semaphore *sem, struct lockdep_map *nest)
kernel/locking/rwsem.c
1684
rwsem_acquire_nest(&sem->dep_map, 0, 0, nest, _RET_IP_);
kernel/locking/rwsem.c
1685
LOCK_CONTENDED(sem, __down_write_trylock, __down_write);
kernel/locking/rwsem.c
1689
void down_read_non_owner(struct rw_semaphore *sem)
kernel/locking/rwsem.c
1692
__down_read(sem);
kernel/locking/rwsem.c
1699
__rwsem_set_reader_owned(sem, NULL);
kernel/locking/rwsem.c
1703
void down_write_nested(struct rw_semaphore *sem, int subclass)
kernel/locking/rwsem.c
1706
rwsem_acquire(&sem->dep_map, subclass, 0, _RET_IP_);
kernel/locking/rwsem.c
1707
LOCK_CONTENDED(sem, __down_write_trylock, __down_write);
kernel/locking/rwsem.c
171
static inline void __rwsem_set_reader_owned(struct rw_semaphore *sem,
kernel/locking/rwsem.c
1711
int __sched down_write_killable_nested(struct rw_semaphore *sem, int subclass)
kernel/locking/rwsem.c
1714
rwsem_acquire(&sem->dep_map, subclass, 0, _RET_IP_);
kernel/locking/rwsem.c
1716
if (LOCK_CONTENDED_RETURN(sem, __down_write_trylock,
kernel/locking/rwsem.c
1718
rwsem_release(&sem->dep_map, _RET_IP_);
kernel/locking/rwsem.c
1726
void up_read_non_owner(struct rw_semaphore *sem)
kernel/locking/rwsem.c
1728
DEBUG_RWSEMS_WARN_ON(!is_rwsem_reader_owned(sem), sem);
kernel/locking/rwsem.c
1729
__up_read(sem);
kernel/locking/rwsem.c
175
(atomic_long_read(&sem->owner) & RWSEM_NONSPINNABLE);
kernel/locking/rwsem.c
177
atomic_long_set(&sem->owner, val);
kernel/locking/rwsem.c
180
static inline void rwsem_set_reader_owned(struct rw_semaphore *sem)
kernel/locking/rwsem.c
182
__rwsem_set_reader_owned(sem, current);
kernel/locking/rwsem.c
189
struct task_struct *rwsem_owner(struct rw_semaphore *sem)
kernel/locking/rwsem.c
192
(atomic_long_read(&sem->owner) & ~RWSEM_OWNER_FLAGS_MASK);
kernel/locking/rwsem.c
198
bool is_rwsem_reader_owned(struct rw_semaphore *sem)
kernel/locking/rwsem.c
203
long count = atomic_long_read(&sem->count);
kernel/locking/rwsem.c
207
return rwsem_test_oflags(sem, RWSEM_READER_OWNED);
kernel/locking/rwsem.c
216
static inline void rwsem_clear_reader_owned(struct rw_semaphore *sem)
kernel/locking/rwsem.c
218
unsigned long val = atomic_long_read(&sem->owner);
kernel/locking/rwsem.c
221
if (atomic_long_try_cmpxchg(&sem->owner, &val,
kernel/locking/rwsem.c
227
static inline void rwsem_clear_reader_owned(struct rw_semaphore *sem)
kernel/locking/rwsem.c
236
static inline void rwsem_set_nonspinnable(struct rw_semaphore *sem)
kernel/locking/rwsem.c
238
unsigned long owner = atomic_long_read(&sem->owner);
kernel/locking/rwsem.c
245
} while (!atomic_long_try_cmpxchg(&sem->owner, &owner,
kernel/locking/rwsem.c
249
static inline bool rwsem_read_trylock(struct rw_semaphore *sem, long *cntp)
kernel/locking/rwsem.c
251
*cntp = atomic_long_add_return_acquire(RWSEM_READER_BIAS, &sem->count);
kernel/locking/rwsem.c
254
rwsem_set_nonspinnable(sem);
kernel/locking/rwsem.c
257
rwsem_set_reader_owned(sem);
kernel/locking/rwsem.c
264
static inline bool rwsem_write_trylock(struct rw_semaphore *sem)
kernel/locking/rwsem.c
268
if (atomic_long_try_cmpxchg_acquire(&sem->count, &tmp, RWSEM_WRITER_LOCKED)) {
kernel/locking/rwsem.c
269
rwsem_set_owner(sem);
kernel/locking/rwsem.c
281
rwsem_owner_flags(struct rw_semaphore *sem, unsigned long *pflags)
kernel/locking/rwsem.c
283
unsigned long owner = atomic_long_read(&sem->owner);
kernel/locking/rwsem.c
309
void __init_rwsem(struct rw_semaphore *sem, const char *name,
kernel/locking/rwsem.c
316
debug_check_no_locks_freed((void *)sem, sizeof(*sem));
kernel/locking/rwsem.c
317
lockdep_init_map_wait(&sem->dep_map, name, key, 0, LD_WAIT_SLEEP);
kernel/locking/rwsem.c
320
sem->magic = sem;
kernel/locking/rwsem.c
322
atomic_long_set(&sem->count, RWSEM_UNLOCKED_VALUE);
kernel/locking/rwsem.c
323
raw_spin_lock_init(&sem->wait_lock);
kernel/locking/rwsem.c
324
INIT_LIST_HEAD(&sem->wait_list);
kernel/locking/rwsem.c
325
atomic_long_set(&sem->owner, 0L);
kernel/locking/rwsem.c
327
osq_lock_init(&sem->osq);
kernel/locking/rwsem.c
344
#define rwsem_first_waiter(sem) \
kernel/locking/rwsem.c
345
list_first_entry(&sem->wait_list, struct rwsem_waiter, list)
kernel/locking/rwsem.c
369
rwsem_add_waiter(struct rw_semaphore *sem, struct rwsem_waiter *waiter)
kernel/locking/rwsem.c
371
lockdep_assert_held(&sem->wait_lock);
kernel/locking/rwsem.c
372
list_add_tail(&waiter->list, &sem->wait_list);
kernel/locking/rwsem.c
385
rwsem_del_waiter(struct rw_semaphore *sem, struct rwsem_waiter *waiter)
kernel/locking/rwsem.c
387
lockdep_assert_held(&sem->wait_lock);
kernel/locking/rwsem.c
389
if (likely(!list_empty(&sem->wait_list)))
kernel/locking/rwsem.c
392
atomic_long_andnot(RWSEM_FLAG_HANDOFF | RWSEM_FLAG_WAITERS, &sem->count);
kernel/locking/rwsem.c
410
static void rwsem_mark_wake(struct rw_semaphore *sem,
kernel/locking/rwsem.c
418
lockdep_assert_held(&sem->wait_lock);
kernel/locking/rwsem.c
424
waiter = rwsem_first_waiter(sem);
kernel/locking/rwsem.c
445
if (unlikely(atomic_long_read(&sem->count) < 0))
kernel/locking/rwsem.c
457
oldcount = atomic_long_fetch_add(adjustment, &sem->count);
kernel/locking/rwsem.c
472
atomic_long_add(-adjustment, &sem->count);
kernel/locking/rwsem.c
482
__rwsem_set_reader_owned(sem, owner);
kernel/locking/rwsem.c
509
list_for_each_entry_safe(waiter, tmp, &sem->wait_list, list) {
kernel/locking/rwsem.c
526
oldcount = atomic_long_read(&sem->count);
kernel/locking/rwsem.c
527
if (list_empty(&sem->wait_list)) {
kernel/locking/rwsem.c
545
atomic_long_add(adjustment, &sem->count);
kernel/locking/rwsem.c
576
rwsem_del_wake_waiter(struct rw_semaphore *sem, struct rwsem_waiter *waiter,
kernel/locking/rwsem.c
578
__releases(&sem->wait_lock)
kernel/locking/rwsem.c
580
bool first = rwsem_first_waiter(sem) == waiter;
kernel/locking/rwsem.c
589
if (rwsem_del_waiter(sem, waiter) && first)
kernel/locking/rwsem.c
590
rwsem_mark_wake(sem, RWSEM_WAKE_ANY, wake_q);
kernel/locking/rwsem.c
591
raw_spin_unlock_irq(&sem->wait_lock);
kernel/locking/rwsem.c
603
static inline bool rwsem_try_write_lock(struct rw_semaphore *sem,
kernel/locking/rwsem.c
606
struct rwsem_waiter *first = rwsem_first_waiter(sem);
kernel/locking/rwsem.c
609
lockdep_assert_held(&sem->wait_lock);
kernel/locking/rwsem.c
611
count = atomic_long_read(&sem->count);
kernel/locking/rwsem.c
642
if (list_is_singular(&sem->wait_list))
kernel/locking/rwsem.c
645
} while (!atomic_long_try_cmpxchg_acquire(&sem->count, &count, new));
kernel/locking/rwsem.c
663
rwsem_set_owner(sem);
kernel/locking/rwsem.c
689
static inline bool rwsem_try_write_lock_unqueued(struct rw_semaphore *sem)
kernel/locking/rwsem.c
69
# define DEBUG_RWSEMS_WARN_ON(c, sem) do { \
kernel/locking/rwsem.c
691
long count = atomic_long_read(&sem->count);
kernel/locking/rwsem.c
694
if (atomic_long_try_cmpxchg_acquire(&sem->count, &count,
kernel/locking/rwsem.c
696
rwsem_set_owner(sem);
kernel/locking/rwsem.c
704
static inline bool rwsem_can_spin_on_owner(struct rw_semaphore *sem)
kernel/locking/rwsem.c
719
owner = rwsem_owner_flags(sem, &flags);
kernel/locking/rwsem.c
72
#c, atomic_long_read(&(sem)->count), \
kernel/locking/rwsem.c
73
(unsigned long) sem->magic, \
kernel/locking/rwsem.c
74
atomic_long_read(&(sem)->owner), (long)current, \
kernel/locking/rwsem.c
744
rwsem_spin_on_owner(struct rw_semaphore *sem)
kernel/locking/rwsem.c
75
list_empty(&(sem)->wait_list) ? "" : "not ")) \
kernel/locking/rwsem.c
752
owner = rwsem_owner_flags(sem, &flags);
kernel/locking/rwsem.c
764
new = rwsem_owner_flags(sem, &new_flags);
kernel/locking/rwsem.c
79
# define DEBUG_RWSEMS_WARN_ON(c, sem)
kernel/locking/rwsem.c
803
static inline u64 rwsem_rspin_threshold(struct rw_semaphore *sem)
kernel/locking/rwsem.c
805
long count = atomic_long_read(&sem->count);
kernel/locking/rwsem.c
816
static bool rwsem_optimistic_spin(struct rw_semaphore *sem)
kernel/locking/rwsem.c
824
if (!osq_lock(&sem->osq))
kernel/locking/rwsem.c
836
owner_state = rwsem_spin_on_owner(sem);
kernel/locking/rwsem.c
843
taken = rwsem_try_write_lock_unqueued(sem);
kernel/locking/rwsem.c
860
if (rwsem_test_oflags(sem, RWSEM_NONSPINNABLE))
kernel/locking/rwsem.c
862
rspin_threshold = rwsem_rspin_threshold(sem);
kernel/locking/rwsem.c
874
rwsem_set_nonspinnable(sem);
kernel/locking/rwsem.c
928
osq_unlock(&sem->osq);
kernel/locking/rwsem.c
938
static inline void clear_nonspinnable(struct rw_semaphore *sem)
kernel/locking/rwsem.c
940
if (unlikely(rwsem_test_oflags(sem, RWSEM_NONSPINNABLE)))
kernel/locking/rwsem.c
941
atomic_long_andnot(RWSEM_NONSPINNABLE, &sem->owner);
kernel/locking/rwsem.c
945
static inline bool rwsem_can_spin_on_owner(struct rw_semaphore *sem)
kernel/locking/rwsem.c
950
static inline bool rwsem_optimistic_spin(struct rw_semaphore *sem)
kernel/locking/rwsem.c
955
static inline void clear_nonspinnable(struct rw_semaphore *sem) { }
kernel/locking/rwsem.c
958
rwsem_spin_on_owner(struct rw_semaphore *sem)
kernel/locking/rwsem.c
972
static inline void rwsem_cond_wake_waiter(struct rw_semaphore *sem, long count,
kernel/locking/rwsem.c
984
clear_nonspinnable(sem);
kernel/locking/rwsem.c
986
rwsem_mark_wake(sem, wake_type, wake_q);
kernel/locking/rwsem.c
993
rwsem_down_read_slowpath(struct rw_semaphore *sem, long count, unsigned int state)
kernel/locking/semaphore.c
100
__down(sem);
kernel/locking/semaphore.c
101
raw_spin_unlock_irqrestore(&sem->lock, flags);
kernel/locking/semaphore.c
114
int __sched down_interruptible(struct semaphore *sem)
kernel/locking/semaphore.c
120
raw_spin_lock_irqsave(&sem->lock, flags);
kernel/locking/semaphore.c
121
if (likely(sem->count > 0))
kernel/locking/semaphore.c
122
__sem_acquire(sem);
kernel/locking/semaphore.c
124
result = __down_interruptible(sem);
kernel/locking/semaphore.c
125
raw_spin_unlock_irqrestore(&sem->lock, flags);
kernel/locking/semaphore.c
141
int __sched down_killable(struct semaphore *sem)
kernel/locking/semaphore.c
147
raw_spin_lock_irqsave(&sem->lock, flags);
kernel/locking/semaphore.c
148
if (likely(sem->count > 0))
kernel/locking/semaphore.c
149
__sem_acquire(sem);
kernel/locking/semaphore.c
151
result = __down_killable(sem);
kernel/locking/semaphore.c
152
raw_spin_unlock_irqrestore(&sem->lock, flags);
kernel/locking/semaphore.c
171
int __sched down_trylock(struct semaphore *sem)
kernel/locking/semaphore.c
176
raw_spin_lock_irqsave(&sem->lock, flags);
kernel/locking/semaphore.c
177
count = sem->count - 1;
kernel/locking/semaphore.c
179
__sem_acquire(sem);
kernel/locking/semaphore.c
180
raw_spin_unlock_irqrestore(&sem->lock, flags);
kernel/locking/semaphore.c
196
int __sched down_timeout(struct semaphore *sem, long timeout)
kernel/locking/semaphore.c
202
raw_spin_lock_irqsave(&sem->lock, flags);
kernel/locking/semaphore.c
203
if (likely(sem->count > 0))
kernel/locking/semaphore.c
204
__sem_acquire(sem);
kernel/locking/semaphore.c
206
result = __down_timeout(sem, timeout);
kernel/locking/semaphore.c
207
raw_spin_unlock_irqrestore(&sem->lock, flags);
kernel/locking/semaphore.c
220
void __sched up(struct semaphore *sem)
kernel/locking/semaphore.c
225
raw_spin_lock_irqsave(&sem->lock, flags);
kernel/locking/semaphore.c
227
hung_task_sem_clear_if_holder(sem);
kernel/locking/semaphore.c
229
if (likely(list_empty(&sem->wait_list)))
kernel/locking/semaphore.c
230
sem->count++;
kernel/locking/semaphore.c
232
__up(sem, &wake_q);
kernel/locking/semaphore.c
233
raw_spin_unlock_irqrestore(&sem->lock, flags);
kernel/locking/semaphore.c
252
static inline int __sched ___down_common(struct semaphore *sem, long state,
kernel/locking/semaphore.c
257
list_add_tail(&waiter.list, &sem->wait_list);
kernel/locking/semaphore.c
267
raw_spin_unlock_irq(&sem->lock);
kernel/locking/semaphore.c
269
raw_spin_lock_irq(&sem->lock);
kernel/locking/semaphore.c
271
hung_task_sem_set_holder(sem);
kernel/locking/semaphore.c
285
static inline int __sched __down_common(struct semaphore *sem, long state,
kernel/locking/semaphore.c
290
hung_task_set_blocker(sem, BLOCKER_TYPE_SEM);
kernel/locking/semaphore.c
292
trace_contention_begin(sem, 0);
kernel/locking/semaphore.c
293
ret = ___down_common(sem, state, timeout);
kernel/locking/semaphore.c
294
trace_contention_end(sem, ret);
kernel/locking/semaphore.c
301
static noinline void __sched __down(struct semaphore *sem)
kernel/locking/semaphore.c
303
__down_common(sem, TASK_UNINTERRUPTIBLE, MAX_SCHEDULE_TIMEOUT);
kernel/locking/semaphore.c
306
static noinline int __sched __down_interruptible(struct semaphore *sem)
kernel/locking/semaphore.c
308
return __down_common(sem, TASK_INTERRUPTIBLE, MAX_SCHEDULE_TIMEOUT);
kernel/locking/semaphore.c
311
static noinline int __sched __down_killable(struct semaphore *sem)
kernel/locking/semaphore.c
313
return __down_common(sem, TASK_KILLABLE, MAX_SCHEDULE_TIMEOUT);
kernel/locking/semaphore.c
316
static noinline int __sched __down_timeout(struct semaphore *sem, long timeout)
kernel/locking/semaphore.c
318
return __down_common(sem, TASK_UNINTERRUPTIBLE, timeout);
kernel/locking/semaphore.c
321
static noinline void __sched __up(struct semaphore *sem,
kernel/locking/semaphore.c
324
struct semaphore_waiter *waiter = list_first_entry(&sem->wait_list,
kernel/locking/semaphore.c
39
static noinline void __down(struct semaphore *sem);
kernel/locking/semaphore.c
40
static noinline int __down_interruptible(struct semaphore *sem);
kernel/locking/semaphore.c
41
static noinline int __down_killable(struct semaphore *sem);
kernel/locking/semaphore.c
42
static noinline int __down_timeout(struct semaphore *sem, long timeout);
kernel/locking/semaphore.c
43
static noinline void __up(struct semaphore *sem, struct wake_q_head *wake_q);
kernel/locking/semaphore.c
46
static inline void hung_task_sem_set_holder(struct semaphore *sem)
kernel/locking/semaphore.c
48
WRITE_ONCE((sem)->last_holder, (unsigned long)current);
kernel/locking/semaphore.c
51
static inline void hung_task_sem_clear_if_holder(struct semaphore *sem)
kernel/locking/semaphore.c
53
if (READ_ONCE((sem)->last_holder) == (unsigned long)current)
kernel/locking/semaphore.c
54
WRITE_ONCE((sem)->last_holder, 0UL);
kernel/locking/semaphore.c
57
unsigned long sem_last_holder(struct semaphore *sem)
kernel/locking/semaphore.c
59
return READ_ONCE(sem->last_holder);
kernel/locking/semaphore.c
62
static inline void hung_task_sem_set_holder(struct semaphore *sem)
kernel/locking/semaphore.c
65
static inline void hung_task_sem_clear_if_holder(struct semaphore *sem)
kernel/locking/semaphore.c
68
unsigned long sem_last_holder(struct semaphore *sem)
kernel/locking/semaphore.c
74
static inline void __sem_acquire(struct semaphore *sem)
kernel/locking/semaphore.c
76
sem->count--;
kernel/locking/semaphore.c
77
hung_task_sem_set_holder(sem);
kernel/locking/semaphore.c
91
void __sched down(struct semaphore *sem)
kernel/locking/semaphore.c
96
raw_spin_lock_irqsave(&sem->lock, flags);
kernel/locking/semaphore.c
97
if (likely(sem->count > 0))
kernel/locking/semaphore.c
98
__sem_acquire(sem);
kernel/taskstats.c
121
down_read(&listeners->sem);
kernel/taskstats.c
138
up_read(&listeners->sem);
kernel/taskstats.c
147
down_write(&listeners->sem);
kernel/taskstats.c
154
up_write(&listeners->sem);
kernel/taskstats.c
323
down_write(&listeners->sem);
kernel/taskstats.c
331
up_write(&listeners->sem);
kernel/taskstats.c
341
down_write(&listeners->sem);
kernel/taskstats.c
349
up_write(&listeners->sem);
kernel/taskstats.c
55
struct rw_semaphore sem;
kernel/taskstats.c
696
init_rwsem(&(per_cpu(listener_array, i).sem));
lib/digsig.c
174
up_read(&key->sem);
lib/digsig.c
80
down_read(&key->sem);
lib/test_context-analysis.c
272
struct rw_semaphore sem;
lib/test_context-analysis.c
273
int counter __guarded_by(&sem);
lib/test_context-analysis.c
278
guard(rwsem_init)(&d->sem);
lib/test_context-analysis.c
284
down_read(&d->sem);
lib/test_context-analysis.c
286
up_read(&d->sem);
lib/test_context-analysis.c
288
if (down_read_trylock(&d->sem)) {
lib/test_context-analysis.c
290
up_read(&d->sem);
lib/test_context-analysis.c
296
down_write(&d->sem);
lib/test_context-analysis.c
298
up_write(&d->sem);
lib/test_context-analysis.c
300
down_write(&d->sem);
lib/test_context-analysis.c
302
downgrade_write(&d->sem);
lib/test_context-analysis.c
304
up_read(&d->sem);
lib/test_context-analysis.c
306
if (down_write_trylock(&d->sem)) {
lib/test_context-analysis.c
308
up_write(&d->sem);
lib/test_context-analysis.c
314
rwsem_assert_held_nolockdep(&d->sem);
lib/test_context-analysis.c
320
{ guard(rwsem_read)(&d->sem); (void)d->counter; }
lib/test_context-analysis.c
321
{ guard(rwsem_write)(&d->sem); d->counter++; }
lib/test_context-analysis.c
326
scoped_cond_guard(rwsem_read_try, return, &d->sem) {
lib/test_context-analysis.c
329
scoped_cond_guard(rwsem_write_try, return, &d->sem) {
net/ceph/osd_client.c
58
static inline bool rwsem_is_wrlocked(struct rw_semaphore *sem)
net/ceph/osd_client.c
62
if (unlikely(down_read_trylock(sem))) {
net/ceph/osd_client.c
64
up_read(sem);
net/dns_resolver/dns_query.c
134
down_read(&rkey->sem);
net/dns_resolver/dns_query.c
162
up_read(&rkey->sem);
net/rxrpc/rxgk_app.c
228
down_read(&server_key->sem);
net/rxrpc/rxgk_app.c
231
up_read(&server_key->sem);
security/integrity/evm/evm_crypto.c
443
down_read(&evm_key->sem);
security/integrity/evm/evm_crypto.c
450
up_read(&evm_key->sem);
security/keys/dh.c
35
down_read(&key->sem);
security/keys/dh.c
52
up_read(&key->sem);
security/keys/encrypted-keys/encrypted.c
313
down_read(&ukey->sem);
security/keys/encrypted-keys/encrypted.c
317
up_read(&ukey->sem);
security/keys/encrypted-keys/encrypted.c
705
up_read(&mkey->sem);
security/keys/encrypted-keys/encrypted.c
950
up_read(&mkey->sem);
security/keys/encrypted-keys/encrypted.c
959
up_read(&mkey->sem);
security/keys/encrypted-keys/masterkey_trusted.c
37
down_read(&tkey->sem);
security/keys/gc.c
367
down_write(&key->sem);
security/keys/gc.c
372
up_write(&key->sem);
security/keys/key.c
1104
down_write(&key->sem);
security/keys/key.c
1113
up_write(&key->sem);
security/keys/key.c
1142
down_write_nested(&key->sem, 1);
security/keys/key.c
1156
up_write(&key->sem);
security/keys/key.c
1174
down_write_nested(&key->sem, 1);
security/keys/key.c
1179
up_write(&key->sem);
security/keys/key.c
289
init_rwsem(&key->sem);
security/keys/key.c
290
lockdep_set_class(&key->sem, &type->lock_class);
security/keys/key.c
741
down_write(&key->sem);
security/keys/key.c
747
up_write(&key->sem);
security/keys/key.c
780
down_write(&key->sem);
security/keys/key.c
789
up_write(&key->sem);
security/keys/keyctl.c
1052
up_write(&key->sem);
security/keys/keyctl.c
1094
down_write(&key->sem);
security/keys/keyctl.c
1103
up_write(&key->sem);
security/keys/keyctl.c
1817
down_write(&key->sem);
security/keys/keyctl.c
1824
up_write(&key->sem);
security/keys/keyctl.c
1831
down_write(&key->sem);
security/keys/keyctl.c
1835
up_write(&key->sem);
security/keys/keyctl.c
807
down_read(&key->sem);
security/keys/keyctl.c
811
up_read(&key->sem);
security/keys/keyctl.c
982
down_write(&key->sem);
security/keys/keyring.c
1059
down_write(&keyring->sem);
security/keys/keyring.c
1072
up_write(&keyring->sem);
security/keys/keyring.c
1241
__acquires(&keyring->sem)
security/keys/keyring.c
1247
down_write(&keyring->sem);
security/keys/keyring.c
1263
__acquires(&l_keyring->sem)
security/keys/keyring.c
1264
__acquires(&u_keyring->sem)
security/keys/keyring.c
1276
down_write(&l_keyring->sem);
security/keys/keyring.c
1277
down_write_nested(&u_keyring->sem, 1);
security/keys/keyring.c
1279
down_write(&u_keyring->sem);
security/keys/keyring.c
1280
down_write_nested(&l_keyring->sem, 1);
security/keys/keyring.c
1388
__releases(&keyring->sem)
security/keys/keyring.c
1401
up_write(&keyring->sem);
security/keys/keyring.c
1475
__acquires(&keyring->sem)
security/keys/keyring.c
1480
down_write(&keyring->sem);
security/keys/keyring.c
1524
__releases(&keyring->sem)
security/keys/keyring.c
1528
up_write(&keyring->sem);
security/keys/keyring.c
1658
down_write(&keyring->sem);
security/keys/keyring.c
1671
up_write(&keyring->sem);
security/keys/keyring.c
1742
down_write(&keyring->sem);
security/keys/keyring.c
1745
up_write(&keyring->sem);
security/keys/keyring.c
1784
down_write(&keyring->sem);
security/keys/keyring.c
1794
up_write(&keyring->sem);
security/keys/process_keys.c
381
down_write(&new_cred->thread_keyring->sem);
security/keys/process_keys.c
383
up_write(&new_cred->thread_keyring->sem);
security/keys/process_keys.c
394
down_write(&new_cred->thread_keyring->sem);
security/keys/process_keys.c
396
up_write(&new_cred->thread_keyring->sem);
security/keys/process_keys.c
728
down_read(&ctx.cred->request_key_auth->sem);
security/keys/process_keys.c
738
up_read(&ctx.cred->request_key_auth->sem);
security/keys/request_key.c
288
down_read(&authkey->sem);
security/keys/request_key.c
294
up_read(&authkey->sem);
security/keys/request_key_auth.c
187
down_read(&cred->request_key_auth->sem);
security/keys/request_key_auth.c
193
up_read(&cred->request_key_auth->sem);
security/keys/request_key_auth.c
202
up_read(&cred->request_key_auth->sem);
tools/include/linux/rwsem.h
11
static inline int init_rwsem(struct rw_semaphore *sem)
tools/include/linux/rwsem.h
13
return pthread_rwlock_init(&sem->lock, NULL);
tools/include/linux/rwsem.h
16
static inline int exit_rwsem(struct rw_semaphore *sem)
tools/include/linux/rwsem.h
18
return pthread_rwlock_destroy(&sem->lock);
tools/include/linux/rwsem.h
21
static inline int down_read(struct rw_semaphore *sem)
tools/include/linux/rwsem.h
23
return pthread_rwlock_rdlock(&sem->lock);
tools/include/linux/rwsem.h
26
static inline int up_read(struct rw_semaphore *sem)
tools/include/linux/rwsem.h
28
return pthread_rwlock_unlock(&sem->lock);
tools/include/linux/rwsem.h
31
static inline int down_write(struct rw_semaphore *sem)
tools/include/linux/rwsem.h
33
return pthread_rwlock_wrlock(&sem->lock);
tools/include/linux/rwsem.h
36
static inline int up_write(struct rw_semaphore *sem)
tools/include/linux/rwsem.h
38
return pthread_rwlock_unlock(&sem->lock);
tools/include/linux/rwsem.h
41
#define down_read_nested(sem, subclass) down_read(sem)
tools/include/linux/rwsem.h
42
#define down_write_nested(sem, subclass) down_write(sem)
tools/perf/util/rwsem.c
12
mutex_init(&sem->mtx);
tools/perf/util/rwsem.c
15
return pthread_rwlock_init(&sem->lock, NULL);
tools/perf/util/rwsem.c
19
int exit_rwsem(struct rw_semaphore *sem)
tools/perf/util/rwsem.c
22
mutex_destroy(&sem->mtx);
tools/perf/util/rwsem.c
25
return pthread_rwlock_destroy(&sem->lock);
tools/perf/util/rwsem.c
29
int down_read(struct rw_semaphore *sem)
tools/perf/util/rwsem.c
33
mutex_lock(&sem->mtx);
tools/perf/util/rwsem.c
36
return perf_singlethreaded ? 0 : pthread_rwlock_rdlock(&sem->lock);
tools/perf/util/rwsem.c
40
int up_read(struct rw_semaphore *sem)
tools/perf/util/rwsem.c
44
mutex_unlock(&sem->mtx);
tools/perf/util/rwsem.c
47
return perf_singlethreaded ? 0 : pthread_rwlock_unlock(&sem->lock);
tools/perf/util/rwsem.c
51
int down_write(struct rw_semaphore *sem)
tools/perf/util/rwsem.c
55
mutex_lock(&sem->mtx);
tools/perf/util/rwsem.c
58
return perf_singlethreaded ? 0 : pthread_rwlock_wrlock(&sem->lock);
tools/perf/util/rwsem.c
62
int up_write(struct rw_semaphore *sem)
tools/perf/util/rwsem.c
66
mutex_unlock(&sem->mtx);
tools/perf/util/rwsem.c
69
return perf_singlethreaded ? 0 : pthread_rwlock_unlock(&sem->lock);
tools/perf/util/rwsem.c
9
int init_rwsem(struct rw_semaphore *sem)
tools/perf/util/rwsem.h
21
int init_rwsem(struct rw_semaphore *sem);
tools/perf/util/rwsem.h
22
int exit_rwsem(struct rw_semaphore *sem);
tools/perf/util/rwsem.h
24
int down_read(struct rw_semaphore *sem) SHARED_LOCK_FUNCTION(sem);
tools/perf/util/rwsem.h
25
int up_read(struct rw_semaphore *sem) UNLOCK_FUNCTION(sem);
tools/perf/util/rwsem.h
27
int down_write(struct rw_semaphore *sem) EXCLUSIVE_LOCK_FUNCTION(sem);
tools/perf/util/rwsem.h
28
int up_write(struct rw_semaphore *sem) UNLOCK_FUNCTION(sem);
tools/power/acpi/os_specific/service_layers/osunixxf.c
630
sem_t *sem;
tools/power/acpi/os_specific/service_layers/osunixxf.c
643
sem =
tools/power/acpi/os_specific/service_layers/osunixxf.c
646
if (!sem) {
tools/power/acpi/os_specific/service_layers/osunixxf.c
653
sem = acpi_os_allocate(sizeof(sem_t));
tools/power/acpi/os_specific/service_layers/osunixxf.c
654
if (!sem) {
tools/power/acpi/os_specific/service_layers/osunixxf.c
658
if (sem_init(sem, 0, initial_units) == -1) {
tools/power/acpi/os_specific/service_layers/osunixxf.c
659
acpi_os_free(sem);
tools/power/acpi/os_specific/service_layers/osunixxf.c
664
*out_handle = (acpi_handle)sem;
tools/power/acpi/os_specific/service_layers/osunixxf.c
682
sem_t *sem = (sem_t *) handle;
tools/power/acpi/os_specific/service_layers/osunixxf.c
684
if (!sem) {
tools/power/acpi/os_specific/service_layers/osunixxf.c
688
if (sem_close(sem) == -1) {
tools/power/acpi/os_specific/service_layers/osunixxf.c
692
if (sem_destroy(sem) == -1) {
tools/power/acpi/os_specific/service_layers/osunixxf.c
718
sem_t *sem = (sem_t *) handle;
tools/power/acpi/os_specific/service_layers/osunixxf.c
724
if (!sem) {
tools/power/acpi/os_specific/service_layers/osunixxf.c
738
if (sem_trywait(sem) == -1) {
tools/power/acpi/os_specific/service_layers/osunixxf.c
747
while (((ret_val = sem_wait(sem)) == -1) && (errno == EINTR)) {
tools/power/acpi/os_specific/service_layers/osunixxf.c
765
if (sem_trywait(sem) == 0) {
tools/power/acpi/os_specific/service_layers/osunixxf.c
801
while (((ret_val = sem_timedwait(sem, &time)) == -1)
tools/power/acpi/os_specific/service_layers/osunixxf.c
835
sem_t *sem = (sem_t *) handle;
tools/power/acpi/os_specific/service_layers/osunixxf.c
837
if (!sem) {
tools/power/acpi/os_specific/service_layers/osunixxf.c
841
if (sem_post(sem) == -1) {
tools/testing/selftests/drivers/ntsync/ntsync.c
146
int fd, ret, sem;
tools/testing/selftests/drivers/ntsync/ntsync.c
155
sem = ioctl(fd, NTSYNC_IOC_CREATE_SEM, &sem_args);
tools/testing/selftests/drivers/ntsync/ntsync.c
156
EXPECT_EQ(-1, sem);
tools/testing/selftests/drivers/ntsync/ntsync.c
161
sem = ioctl(fd, NTSYNC_IOC_CREATE_SEM, &sem_args);
tools/testing/selftests/drivers/ntsync/ntsync.c
162
EXPECT_LE(0, sem);
tools/testing/selftests/drivers/ntsync/ntsync.c
163
check_sem_state(sem, 2, 2);
tools/testing/selftests/drivers/ntsync/ntsync.c
166
ret = release_sem(sem, &count);
tools/testing/selftests/drivers/ntsync/ntsync.c
169
check_sem_state(sem, 2, 2);
tools/testing/selftests/drivers/ntsync/ntsync.c
17
static int read_sem_state(int sem, __u32 *count, __u32 *max)
tools/testing/selftests/drivers/ntsync/ntsync.c
172
ret = release_sem(sem, &count);
tools/testing/selftests/drivers/ntsync/ntsync.c
175
check_sem_state(sem, 2, 2);
tools/testing/selftests/drivers/ntsync/ntsync.c
177
ret = wait_any(fd, 1, &sem, 123, &index);
tools/testing/selftests/drivers/ntsync/ntsync.c
180
check_sem_state(sem, 1, 2);
tools/testing/selftests/drivers/ntsync/ntsync.c
182
ret = wait_any(fd, 1, &sem, 123, &index);
tools/testing/selftests/drivers/ntsync/ntsync.c
185
check_sem_state(sem, 0, 2);
tools/testing/selftests/drivers/ntsync/ntsync.c
187
ret = wait_any(fd, 1, &sem, 123, &index);
tools/testing/selftests/drivers/ntsync/ntsync.c
192
ret = release_sem(sem, &count);
tools/testing/selftests/drivers/ntsync/ntsync.c
195
check_sem_state(sem, 0, 2);
tools/testing/selftests/drivers/ntsync/ntsync.c
198
ret = release_sem(sem, &count);
tools/testing/selftests/drivers/ntsync/ntsync.c
201
check_sem_state(sem, 2, 2);
tools/testing/selftests/drivers/ntsync/ntsync.c
203
ret = wait_any(fd, 1, &sem, 123, &index);
tools/testing/selftests/drivers/ntsync/ntsync.c
205
ret = wait_any(fd, 1, &sem, 123, &index);
tools/testing/selftests/drivers/ntsync/ntsync.c
209
ret = release_sem(sem, &count);
tools/testing/selftests/drivers/ntsync/ntsync.c
212
check_sem_state(sem, 1, 2);
tools/testing/selftests/drivers/ntsync/ntsync.c
215
ret = release_sem(sem, &count);
tools/testing/selftests/drivers/ntsync/ntsync.c
218
check_sem_state(sem, 1, 2);
tools/testing/selftests/drivers/ntsync/ntsync.c
220
close(sem);
tools/testing/selftests/drivers/ntsync/ntsync.c
23
ret = ioctl(sem, NTSYNC_IOC_SEM_READ, &args);
tools/testing/selftests/drivers/ntsync/ntsync.c
29
#define check_sem_state(sem, count, max) \
tools/testing/selftests/drivers/ntsync/ntsync.c
32
int ret = read_sem_state((sem), &__count, &__max); \
tools/testing/selftests/drivers/ntsync/ntsync.c
38
static int release_sem(int sem, __u32 *count)
tools/testing/selftests/drivers/ntsync/ntsync.c
40
return ioctl(sem, NTSYNC_IOC_SEM_RELEASE, count);
tools/testing/selftests/kvm/hardware_disable_test.c
113
sem_post(sem);
tools/testing/selftests/kvm/hardware_disable_test.c
130
if (!sem_timedwait(sem, &wait_period))
tools/testing/selftests/kvm/hardware_disable_test.c
156
sem = sem_open("vm_sem", O_CREAT | O_EXCL, 0644, 0);
tools/testing/selftests/kvm/hardware_disable_test.c
178
sem_destroy(sem);
tools/testing/selftests/kvm/hardware_disable_test.c
24
sem_t *sem;
tools/testing/selftests/memfd/memfd_test.c
1353
int sem = semget(SEM_KEY, 1, 0600);
tools/testing/selftests/memfd/memfd_test.c
1356
if (sem < 0) {
tools/testing/selftests/memfd/memfd_test.c
1364
if (semop(sem, &sembuf, 1) < 0) {
tools/testing/selftests/memfd/memfd_test.c
1389
int pid, sem;
tools/testing/selftests/memfd/memfd_test.c
1425
sem = semget(SEM_KEY, 1, IPC_CREAT | 0600);
tools/testing/selftests/memfd/memfd_test.c
1426
if (sem < 0) {
tools/testing/selftests/memfd/memfd_test.c
1439
if (semctl(sem, 0, SETVAL, semun) < 0) {
tools/testing/selftests/memfd/memfd_test.c
1449
if (semop(sem, &sembuf, 1) < 0) {
tools/testing/selftests/memfd/memfd_test.c
1458
if (semctl(sem, 0, SETVAL, semun) < 0) {
tools/testing/selftests/memfd/memfd_test.c
1468
if (semop(sem, &sembuf, 1) < 0) {
tools/testing/selftests/memfd/memfd_test.c
1482
if (semctl(sem, 0, SETVAL, semun) < 0) {
tools/testing/selftests/memfd/memfd_test.c
1492
if (semop(sem, &sembuf, 1) < 0) {
tools/testing/selftests/memfd/memfd_test.c
1501
if (semctl(sem, 0, SETVAL, semun) < 0) {
tools/testing/selftests/memfd/memfd_test.c
1511
if (semop(sem, &sembuf, 1) < 0) {
tools/testing/selftests/memfd/memfd_test.c
1520
if (semctl(sem, 0, SETVAL, semun) < 0) {
tools/testing/selftests/memfd/memfd_test.c
1529
if (semop(sem, &sembuf, 1) < 0) {
tools/testing/selftests/memfd/memfd_test.c
1535
semctl(sem, 0, IPC_RMID);
tools/testing/vma/include/stubs.h
30
#define down_write_nest_lock(sem, nest_lock)