Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 3 files:

Smatch caller information:

drivers/base/power/runtime.c __pm_runtime_set_status() -> device_links_read_lock()

Type Parameter Key Value

drivers/base/power/runtime.c __pm_runtime_set_status() -> device_links_read_lock()

Type Parameter Key Value

drivers/base/power/runtime.c __rpm_callback() -> device_links_read_lock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dev->driver_data->sfd_lock
HALF_LOCKED2 &dev->mutex
HALF_LOCKED2 flags

drivers/base/power/runtime.c __rpm_callback() -> device_links_read_lock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dev->driver_data->sfd_lock
HALF_LOCKED2 &dev->mutex
HALF_LOCKED2 flags

drivers/base/power/runtime.c pm_runtime_get_suppliers() -> device_links_read_lock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dev->mutex

drivers/base/power/runtime.c pm_runtime_put_suppliers() -> device_links_read_lock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dev->mutex

drivers/base/power/runtime.c rpm_suspend_suppliers() -> device_links_read_lock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dev->driver_data->sfd_lock
HALF_LOCKED2 &dev->mutex
HALF_LOCKED2 flags

drivers/base/core.c device_pm_move_to_tail() -> device_links_read_lock()

Type Parameter Key Value
HALF_LOCKED2 &pool->lock

drivers/base/power/main.c device_prepare_smart_suspend() -> device_links_read_lock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &system_transition_mutex
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 global &device_hotplug_lock

drivers/base/power/main.c dpm_async_resume_subordinate() -> device_links_read_lock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 global &system_transition_mutex

drivers/base/power/main.c dpm_async_suspend_superior() -> device_links_read_lock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 global &system_transition_mutex

drivers/base/power/main.c dpm_clear_superiors_direct_complete() -> device_links_read_lock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &dev->mutex
HALF_LOCKED2 global &system_transition_mutex
TYPE_LOCK (struct device)->mutex

drivers/base/power/main.c dpm_superior_set_must_resume() -> device_links_read_lock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 global &system_transition_mutex

drivers/base/power/main.c dpm_wait_for_consumers() -> device_links_read_lock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 global &system_transition_mutex

drivers/base/power/main.c dpm_wait_for_suppliers() -> device_links_read_lock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 global &system_transition_mutex