Documented in 1 files:
Defined in 1 files as a function:
Referenced in 6 files:
- drivers/gpu/drm/drm_modeset_lock.c, line 309
- drivers/regulator/core.c
- include/linux/dma-resv.h, line 389
- kernel/locking/locktorture.c, line 661
- kernel/locking/test-ww_mutex.c
- lib/test_context-analysis.c
Smatch caller information:
drivers/gpu/drm/ttm/ttm_execbuf_util.c dma_resv_lock_slow() -> ww_mutex_lock_slow()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | lock->base.osq.tail.counter | 0-s32max |
| PARAM_VALUE | 0 | lock->ctx | 0 |
| PARAM_VALUE | 1 | ctx | 0,4096-ptr_max |
| PARAM_VALUE | 1 | ctx->contending_lock | 4096-ptr_max |
| PARAM_VALUE | 1 | ctx->deadlock_inject_countdown | 0-3758096380,u32max |
| PARAM_VALUE | 1 | ctx->deadlock_inject_interval | 0-3758096380,u32max |
| PARAM_VALUE | 1 | ctx->dep_map->name | 0-255 |
| PARAM_VALUE | 1 | ctx->first_lock_dep_map->name | 0-255 |
| PARAM_VALUE | 1 | ctx->wounded | 0-1 |
| PARAM_VALUE | 1 | ctx->ww_class->acquire_name | 4096-ptr_max |
| PARAM_VALUE | 1 | ctx->ww_class->is_wait_die | 0-s32max |
| PARAM_VALUE | 1 | ctx->ww_class->mutex_name | 4096-ptr_max |
| DATA_SOURCE | 1 | ctx | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &dev_priv->cmdbuf_mutex |
drivers/regulator/core.c regulator_lock_dependent() -> ww_mutex_lock_slow()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | lock | 4096-ptr_max |
| PARAM_VALUE | 0 | lock->base.osq.tail.counter | 0-s32max |
| PARAM_VALUE | 1 | ctx | 864463369733566464,998508678040961024,1909401411367448576,2858210178059689984,4636161381130256384,5677905910954188800,8267003673384861696,8929974726150414336 |
| PARAM_VALUE | 1 | ctx->dep_map->name | 0-255 |
| PARAM_VALUE | 1 | ctx->first_lock_dep_map->name | 0-255 |
| PARAM_VALUE | 1 | ctx->ww_class->acquire_name | 6123211227480948736 |
| PARAM_VALUE | 1 | ctx->ww_class->is_wait_die | 0 |
| PARAM_VALUE | 1 | ctx->ww_class->mutex_name | 8730023023955308544 |
| DATA_SOURCE | 1 | ctx | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | global ®ulator_list_mutex | ||
| HALF_LOCKED2 | &new_contended_rdev->mutex |
drivers/regulator/core.c regulator_lock_two() -> ww_mutex_lock_slow()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | lock | 4096-ptr_max |
| PARAM_VALUE | 1 | ctx | 4636161381130256384 |
| PARAM_VALUE | 1 | ctx->contending_lock | 4096-ptr_max |
| PARAM_VALUE | 1 | ctx->deadlock_inject_countdown | 0-3758096380,u32max |
| PARAM_VALUE | 1 | ctx->deadlock_inject_interval | 0-3758096380,u32max |
| PARAM_VALUE | 1 | ctx->dep_map->name | 0-255 |
| PARAM_VALUE | 1 | ctx->first_lock_dep_map->name | 0-255 |
| PARAM_VALUE | 1 | ctx->wounded | 0-1 |
| PARAM_VALUE | 1 | ctx->ww_class->acquire_name | 6123211227480948736 |
| PARAM_VALUE | 1 | ctx->ww_class->is_wait_die | 0 |
| PARAM_VALUE | 1 | ctx->ww_class->mutex_name | 8730023023955308544 |
| DATA_SOURCE | 1 | ctx | $2 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| NO_OVERFLOW_SIMPLE | 1 | ctx->deadlock_inject_countdown | |
| NO_OVERFLOW_SIMPLE | 1 | ctx->deadlock_inject_interval | |
| LOCK2 | &rdev2->mutex | ||
| HALF_LOCKED2 | &contended->mutex | ||
| HALF_LOCKED2 | &rdev1->mutex | ||
| TYPE_LOCK | (struct regulator_dev)->mutex |
drivers/regulator/core.c regulator_summary_lock() -> ww_mutex_lock_slow()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | lock | 4096-ptr_max |
| PARAM_VALUE | 0 | lock->base.osq.tail.counter | 0-s32max |
| PARAM_VALUE | 1 | ctx | 4542067791831855104 |
| PARAM_VALUE | 1 | ctx->contending_lock | 0,4096-ptr_max |
| PARAM_VALUE | 1 | ctx->dep_map->name | 0-255 |
| PARAM_VALUE | 1 | ctx->first_lock_dep_map->name | 0-255 |
| PARAM_VALUE | 1 | ctx->wounded | 0-1 |
| PARAM_VALUE | 1 | ctx->ww_class->acquire_name | 6123211227480948736 |
| PARAM_VALUE | 1 | ctx->ww_class->is_wait_die | 0 |
| PARAM_VALUE | 1 | ctx->ww_class->mutex_name | 8730023023955308544 |
| DATA_SOURCE | 1 | ctx | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &s->lock | ||
| LOCK2 | global ®ulator_list_mutex | ||
| HALF_LOCKED2 | &new_contended_rdev->mutex | ||
| TYPE_LOCK | (struct seq_file)->lock |
lib/locking-selftest.c ww_test_edeadlk_acquire_more_edeadlk_slow() -> ww_mutex_lock_slow()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | lock | 3106935919113240576 |
| PARAM_VALUE | 0 | lock->base.osq.tail.counter | 0-s32max |
| PARAM_VALUE | 0 | lock->base.wait_lock.owner | (-1) |
| PARAM_VALUE | 0 | lock->base.wait_lock.owner_cpu | u32max |
| PARAM_VALUE | 0 | lock->ctx | 8468864146995625984 |
| PARAM_VALUE | 1 | ctx | 7263305218437623808 |
| PARAM_VALUE | 1 | ctx->wounded | 0-1 |
| NOCHECK_CALL | |||
| NO_OVERFLOW_SIMPLE | 1 | ctx->deadlock_inject_countdown | |
| NO_OVERFLOW_SIMPLE | 1 | ctx->deadlock_inject_interval | |
| LOCK2 | global &o | ||
| LOCK2 | global &o2 | ||
| LOCK2 | global &o2.base | ||
| LOCK2 | global &o3.base | ||
| TYPE_LOCK | (struct ww_mutex)->base |
lib/locking-selftest.c ww_test_edeadlk_acquire_more_slow() -> ww_mutex_lock_slow()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | lock | 3106935919113240576 |
| PARAM_VALUE | 1 | ctx | 7263305218437623808 |
| PARAM_VALUE | 1 | ctx->wounded | 0-1 |
| NOCHECK_CALL | |||
| NO_OVERFLOW_SIMPLE | 1 | ctx->deadlock_inject_countdown | |
| NO_OVERFLOW_SIMPLE | 1 | ctx->deadlock_inject_interval | |
| LOCK2 | global &o | ||
| LOCK2 | global &o2 | ||
| LOCK2 | global &o2.base | ||
| TYPE_LOCK | (struct ww_mutex)->base |
lib/locking-selftest.c ww_test_edeadlk_acquire_wrong_slow() -> ww_mutex_lock_slow()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | lock | 3106935919113240576 |
| PARAM_VALUE | 1 | ctx | 7263305218437623808 |
| PARAM_VALUE | 1 | ctx->wounded | 0-1 |
| NOCHECK_CALL | |||
| NO_OVERFLOW_SIMPLE | 1 | ctx->deadlock_inject_countdown | |
| NO_OVERFLOW_SIMPLE | 1 | ctx->deadlock_inject_interval | |
| LOCK2 | global &o2.base | ||
| HALF_LOCKED2 | global &o2 | ||
| TYPE_LOCK | (struct ww_mutex)->base |
lib/locking-selftest.c ww_test_edeadlk_no_unlock_slow() -> ww_mutex_lock_slow()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | lock | 4122907753892020224 |
| PARAM_VALUE | 0 | lock->ctx | 0 |
| PARAM_VALUE | 1 | ctx | 7263305218437623808 |
| PARAM_VALUE | 1 | ctx->wounded | 0-1 |
| NOCHECK_CALL | |||
| NO_OVERFLOW_SIMPLE | 1 | ctx->deadlock_inject_countdown | |
| NO_OVERFLOW_SIMPLE | 1 | ctx->deadlock_inject_interval | |
| LOCK2 | global &o | ||
| LOCK2 | global &o2 |
lib/locking-selftest.c ww_test_edeadlk_normal_slow() -> ww_mutex_lock_slow()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | lock | 4122907753892020224 |
| PARAM_VALUE | 0 | lock->ctx | 0 |
| PARAM_VALUE | 1 | ctx | 7263305218437623808 |
| PARAM_VALUE | 1 | ctx->wounded | 0-1 |
| NOCHECK_CALL | |||
| NO_OVERFLOW_SIMPLE | 1 | ctx->deadlock_inject_countdown | |
| NO_OVERFLOW_SIMPLE | 1 | ctx->deadlock_inject_interval | |
| LOCK2 | global &o2 |
lib/locking-selftest.c ww_test_unneeded_slow() -> ww_mutex_lock_slow()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | lock | 691330749751296 |
| PARAM_VALUE | 1 | ctx | 7263305218437623808 |
| PARAM_VALUE | 1 | ctx->acquired | 0 |
| PARAM_VALUE | 1 | ctx->contending_lock | 0 |
| PARAM_VALUE | 1 | ctx->deadlock_inject_countdown | 0-15 |
| PARAM_VALUE | 1 | ctx->deadlock_inject_interval | 1 |
| PARAM_VALUE | 1 | ctx->done_acquire | 0 |
| PARAM_VALUE | 1 | ctx->wounded | 0 |
| PARAM_VALUE | 1 | ctx->ww_class | 7821351485522206720 |
| NOCHECK_CALL |
drivers/gpu/drm/nouveau/nouveau_gem.c dma_resv_lock_slow() -> ww_mutex_lock_slow()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | ctx | 3618475209504833552 |
| PARAM_VALUE | 1 | ctx->contending_lock | 4096-ptr_max |
| PARAM_VALUE | 1 | ctx->deadlock_inject_countdown | 0-3758096380,u32max |
| PARAM_VALUE | 1 | ctx->deadlock_inject_interval | 0-3758096380,u32max |
| PARAM_VALUE | 1 | ctx->wounded | 0-1 |
| DATA_SOURCE | 1 | ctx | $1 |
| NOCHECK_CALL | |||
| LOCK2 | &file_priv->driver_priv->mutex |
drivers/gpu/drm/i915/i915_gem_ww.c dma_resv_lock_slow() -> ww_mutex_lock_slow()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | ctx | 4096-ptr_max |
| DATA_SOURCE | 1 | ctx | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &dev->clientlist_mutex | ||
| HALF_LOCKED2 | &helper->lock | ||
| HALF_LOCKED2 | &pxp->tee_mutex | ||
| HALF_LOCKED2 | &vgpu->vgpu_lock |
drivers/gpu/drm/drm_exec.c dma_resv_lock_slow() -> ww_mutex_lock_slow()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | ctx | 4096-ptr_max |
| DATA_SOURCE | 1 | ctx | $1 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &gpu->lock | ||
| HALF_LOCKED2 | &mem->lock | ||
| HALF_LOCKED2 | &mem->process_info->lock | ||
| HALF_LOCKED2 | &p->mutex | ||
| HALF_LOCKED2 | &pool->lock | ||
| HALF_LOCKED2 | &queue->lock | ||
| HALF_LOCKED2 | &vm->lock | ||
| HALF_LOCKED2 | global &drm_unplug_srcu |
drivers/dma-buf/dma-resv.c dma_resv_lock_slow() -> ww_mutex_lock_slow()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | lock | 8500983754300416000 |
| PARAM_VALUE | 0 | lock->base.magic | 4096-ptr_max |
| PARAM_VALUE | 0 | lock->base.osq.tail.counter | 0-s32max |
| PARAM_VALUE | 0 | lock->ctx | 0 |
| PARAM_VALUE | 0 | lock->ww_class | 8825623990767841280 |
| PARAM_VALUE | 1 | ctx | 1271164601974165504 |
| PARAM_VALUE | 1 | ctx->contending_lock | 4096-ptr_max |
| PARAM_VALUE | 1 | ctx->wounded | 0 |
| DATA_SOURCE | 1 | ctx | $1 |
| NOCHECK_CALL | |||
| LOCK2 | &mm->mmap_lock | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
kernel/locking/locktorture.c torture_ww_mutex_lock() -> ww_mutex_lock_slow()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | lock->base.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | lock->base.first_waiter->list.prev->next | 5159360019465732096 |
| PARAM_VALUE | 1 | ctx | 4096-ptr_max |
| PARAM_VALUE | 1 | ctx->dep_map->name | 0-255 |
| PARAM_VALUE | 1 | ctx->first_lock_dep_map->name | 0-255 |
| PARAM_VALUE | 1 | ctx->wounded | 0-1 |
| PARAM_VALUE | 1 | ctx->ww_class->acquire_name | 2042222122760065024 |
| PARAM_VALUE | 1 | ctx->ww_class->is_wait_die | 1 |
| PARAM_VALUE | 1 | ctx->ww_class->mutex_name | 5134360359185924096 |
| NOCHECK_CALL | |||
| NO_OVERFLOW_SIMPLE | 1 | ctx->deadlock_inject_countdown | |
| NO_OVERFLOW_SIMPLE | 1 | ctx->deadlock_inject_interval | |
| LOCK2 | 0 | lock | |
| HALF_LOCKED2 | flags | ||
| HALF_LOCKED2 | global &torture_mutex | ||
| HALF_LOCKED2 | global &torture_raw_spinlock | ||
| HALF_LOCKED2 | global &torture_rwlock | ||
| HALF_LOCKED2 | global &torture_rwsem | ||
| HALF_LOCKED2 | global &torture_spinlock |
drivers/gpu/drm/drm_mode_config.c dma_resv_lock_slow() -> ww_mutex_lock_slow()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | lock | 1386761667904524288 |
| PARAM_VALUE | 0 | lock->base.magic | 4096-ptr_max |
| PARAM_VALUE | 0 | lock->base.osq.tail.counter | 0-s32max |
| PARAM_VALUE | 0 | lock->ctx | 0 |
| PARAM_VALUE | 0 | lock->ww_class | 8825623990767841280 |
| PARAM_VALUE | 1 | ctx | 5576857051533688832 |
| PARAM_VALUE | 1 | ctx->contending_lock | 4096-ptr_max |
| PARAM_VALUE | 1 | ctx->wounded | 0 |
| DATA_SOURCE | 1 | ctx | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &dev->mode_config.connection_mutex | ||
| HALF_LOCKED2 | global &component_mutex | ||
| HALF_LOCKED2 | global &xenwatch_mutex |
drivers/gpu/drm/drm_modeset_lock.c modeset_lock() -> ww_mutex_lock_slow()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | lock | 1-u64max |
| PARAM_VALUE | 1 | ctx | 4096-ptr_max |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &client->modeset_mutex | ||
| HALF_LOCKED2 | &config->mutex | ||
| HALF_LOCKED2 | &dev->master_mutex | ||
| HALF_LOCKED2 | &dev->mode_config.mutex | ||
| HALF_LOCKED2 | &display->drm->mode_config.connection_mutex | ||
| HALF_LOCKED2 | &display->drm->mode_config.mutex | ||
| HALF_LOCKED2 | &fb_helper->client.modeset_mutex | ||
| HALF_LOCKED2 | &fb_helper->lock | ||
| HALF_LOCKED2 | &helper->lock | ||
| HALF_LOCKED2 | &kms->dump_mutex | ||
| HALF_LOCKED2 | &m->lock | ||
| HALF_LOCKED2 | &pool->lock | ||
| HALF_LOCKED2 | global &drm_bridge_unplug_srcu | ||
| HALF_LOCKED2 | global &drm_unplug_srcu |
kernel/locking/test-ww_mutex.c stress_inorder_work() -> ww_mutex_lock_slow()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | ctx | 468702848823025664 |
| PARAM_VALUE | 1 | ctx->wounded | 0-1 |
| NOCHECK_CALL | |||
| NO_OVERFLOW_SIMPLE | 1 | ctx->deadlock_inject_countdown | |
| NO_OVERFLOW_SIMPLE | 1 | ctx->deadlock_inject_interval | |
| HALF_LOCKED2 | &pool->lock |
kernel/locking/test-ww_mutex.c stress_reorder_work() -> ww_mutex_lock_slow()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | lock->base.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | lock->base.first_waiter->list.prev->next | 5159360019465732096 |
| PARAM_VALUE | 1 | ctx | 517644360700518400 |
| PARAM_VALUE | 1 | ctx->wounded | 0-1 |
| NOCHECK_CALL | |||
| NO_OVERFLOW_SIMPLE | 1 | ctx->deadlock_inject_countdown | |
| NO_OVERFLOW_SIMPLE | 1 | ctx->deadlock_inject_interval | |
| LOCK2 | 0 | lock | |
| HALF_LOCKED2 | &pool->lock |
kernel/locking/test-ww_mutex.c test_abba() -> ww_mutex_lock_slow()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | lock | 5705221976740245760 |
| PARAM_VALUE | 0 | lock->ctx | 0 |
| PARAM_VALUE | 0 | lock->ww_class | 2988183655152754688,7498843200183713792 |
| PARAM_VALUE | 1 | ctx | 8030658364977332224 |
| PARAM_VALUE | 1 | ctx->wounded | 0-1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| NO_OVERFLOW_SIMPLE | 1 | ctx->deadlock_inject_countdown | |
| NO_OVERFLOW_SIMPLE | 1 | ctx->deadlock_inject_interval | |
| LOCK2 | &abba.b_mutex | ||
| LOCK2 | global &run_lock | ||
| HALF_LOCKED2 | &of->mutex | ||
| TYPE_LOCK | (struct test_abba)->b_mutex |
kernel/locking/test-ww_mutex.c test_abba_work() -> ww_mutex_lock_slow()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | lock | 4096-ptr_max |
| PARAM_VALUE | 1 | ctx | 6841203980739543040 |
| PARAM_VALUE | 1 | ctx->wounded | 0-1 |
| NOCHECK_CALL | |||
| NO_OVERFLOW_SIMPLE | 1 | ctx->deadlock_inject_countdown | |
| NO_OVERFLOW_SIMPLE | 1 | ctx->deadlock_inject_interval | |
| LOCK2 | &abba->a_mutex | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct test_abba)->a_mutex |
kernel/locking/test-ww_mutex.c test_cycle_work() -> ww_mutex_lock_slow()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | lock->base.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | lock->base.first_waiter->list.prev->next | 5159360019465732096 |
| PARAM_VALUE | 1 | ctx | 5869887501821497344 |
| PARAM_VALUE | 1 | ctx->wounded | 0-1 |
| NOCHECK_CALL | |||
| NO_OVERFLOW_SIMPLE | 1 | ctx->deadlock_inject_countdown | |
| NO_OVERFLOW_SIMPLE | 1 | ctx->deadlock_inject_interval | |
| LOCK2 | 0 | lock | |
| HALF_LOCKED2 | &pool->lock |
lib/test_context-analysis.c test_ww_mutex_lock_ctx() -> ww_mutex_lock_slow()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | ctx | 3704146081720381440 |
| NOCHECK_CALL | |||
| NO_OVERFLOW_SIMPLE | 1 | ctx->deadlock_inject_countdown | |
| NO_OVERFLOW_SIMPLE | 1 | ctx->deadlock_inject_interval | |
| HALF_LOCKED2 | &d->mtx |
lib/test_context-analysis.c test_ww_mutex_lock_noctx() -> ww_mutex_lock_slow()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | ctx | 0 |
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &d->mtx | ||
| HALF_LOCKED2 | &d->mtx.base |