Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

drivers/md/raid5-ppl.c ppl_flush_endio() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read

drivers/md/md-llbitmap.c llbitmap_state_machine() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &mddev->bitmap_info.mutex
HALF_LOCKED2 &mddev->reconfig_mutex
HALF_LOCKED2 &of->mutex

drivers/md/md-llbitmap.c llbitmap_state_machine() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &mddev->bitmap_info.mutex
HALF_LOCKED2 &mddev->reconfig_mutex
HALF_LOCKED2 &of->mutex

drivers/md/md.c __mddev_resume() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &mddev->suspend_mutex
LOCK2 rcu_read
TYPE_LOCK (struct mddev)->suspend_mutex

drivers/md/md.c __mddev_resume() -> __md_wakeup_thread()

Type Parameter Key Value
BUF_SIZE 0 thread (-1),136
BUF_SIZE 0 thread (-1),136
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &mddev->suspend_mutex
LOCK2 rcu_read
TYPE_LOCK (struct mddev)->suspend_mutex

drivers/md/md.c action_store() -> __md_wakeup_thread()

Type Parameter Key Value
CAPABLE 0 21
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &mddev->reconfig_mutex
LOCK2 &of->mutex
LOCK2 rcu_read
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct kernfs_open_file)->mutex
TYPE_LOCK (struct mddev)->reconfig_mutex

drivers/md/md.c action_store() -> __md_wakeup_thread()

Type Parameter Key Value
CAPABLE 0 21
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &mddev->reconfig_mutex
LOCK2 &of->mutex
LOCK2 rcu_read
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct kernfs_open_file)->mutex
TYPE_LOCK (struct mddev)->reconfig_mutex

drivers/md/md.c array_state_store() -> __md_wakeup_thread()

Type Parameter Key Value
CAPABLE 0 21
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &mddev->lock
LOCK2 &of->mutex
LOCK2 rcu_read
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct kernfs_open_file)->mutex
TYPE_LOCK (struct mddev)->lock

drivers/md/md.c check_sb_changes() -> __md_wakeup_thread()

Type Parameter Key Value
PARAM_VALUE 0 thread->wqueue.lock.rlock.dep_map->name 0-255
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &cinfo->recv_mutex
LOCK2 rcu_read
HALF_LOCKED2 &mddev->reconfig_mutex
TYPE_LOCK (struct md_cluster_info)->recv_mutex

drivers/md/md.c do_md_run() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &mddev->reconfig_mutex
HALF_LOCKED2 &of->mutex

drivers/md/md.c md_error() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &cinfo->recv_mutex
HALF_LOCKED2 &mddev->lock
HALF_LOCKED2 &mddev->reconfig_mutex
HALF_LOCKED2 &of->mutex

drivers/md/md.c md_safemode_timeout() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read

drivers/md/md.c md_start() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &rs->md.reconfig_mutex

drivers/md/md.c md_start_sync() -> __md_wakeup_thread()

Type Parameter Key Value
PARAM_VALUE 0 thread 4096-ptr_max
BUF_SIZE 0 thread (-1),136
BUF_SIZE 0 thread (-1),136
DATA_SOURCE 0 thread r md_register_thread
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &pool->lock

drivers/md/md.c md_sync_error() -> __md_wakeup_thread()

Type Parameter Key Value
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read

drivers/md/md.c md_unfrozen_sync_thread() -> __md_wakeup_thread()

Type Parameter Key Value
NOCHECK_CALL
LOCK2 &md->suspend_lock
LOCK2 &mddev->reconfig_mutex
LOCK2 rcu_read
TYPE_LOCK (struct mapped_device)->suspend_lock
TYPE_LOCK (struct mddev)->reconfig_mutex

drivers/md/md.c md_write_end() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read

drivers/md/md.c md_write_start() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &bi->bi_bdev->bd_queue->queue_lock
HALF_LOCKED2 &md->io_barrier

drivers/md/md.c md_write_start() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &bi->bi_bdev->bd_queue->queue_lock
HALF_LOCKED2 &md->io_barrier

drivers/md/md.c md_write_start() -> __md_wakeup_thread()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &mddev->lock
LOCK2 rcu_read
HALF_LOCKED2 &bi->bi_bdev->bd_queue->queue_lock
HALF_LOCKED2 &md->io_barrier
TYPE_LOCK (struct mddev)->lock

drivers/md/md.c mddev_unlock() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &cinfo->recv_mutex
HALF_LOCKED2 &md->io_barrier
HALF_LOCKED2 &md->suspend_lock
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &rs->md.reconfig_mutex

drivers/md/md.c rdev_dec_pending() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read

drivers/md/md.c rdev_set_badblocks() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read

drivers/md/md.c restart_array() -> __md_wakeup_thread()

Type Parameter Key Value
CAPABLE 0 21
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &mddev->lock
HALF_LOCKED2 &mddev->reconfig_mutex
HALF_LOCKED2 &of->mutex

drivers/md/raid1.c handle_write_finished() -> __md_wakeup_thread()

Type Parameter Key Value
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read

drivers/md/raid1.c raid1_reshape() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &md->suspend_lock
HALF_LOCKED2 &mddev->reconfig_mutex
HALF_LOCKED2 &mddev->reconfig_mutex
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &rs->md.reconfig_mutex

drivers/md/raid1.c raid1_unplug() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read

drivers/md/raid1.c raid1_write_request() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &bio->bi_bdev->bd_queue->queue_lock
HALF_LOCKED2 &md->io_barrier

drivers/md/raid1.c rdev_dec_pending() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read

drivers/md/raid1.c reschedule_retry() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read

drivers/md/md-bitmap.c bitmap_load() -> __md_wakeup_thread()

Type Parameter Key Value
PARAM_VALUE 0 thread 0,4096-ptr_max
CAPPED_DATA 0 thread 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &md->suspend_lock
HALF_LOCKED2 &mddev->reconfig_mutex
HALF_LOCKED2 &of->mutex

drivers/md/md-bitmap.c location_store() -> __md_wakeup_thread()

Type Parameter Key Value
CAPABLE 0 21
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &mddev->reconfig_mutex
LOCK2 &of->mutex
LOCK2 rcu_read
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct kernfs_open_file)->mutex
TYPE_LOCK (struct mddev)->reconfig_mutex

drivers/md/md-bitmap.c rdev_dec_pending() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read

drivers/md/md-bitmap.c timeout_store() -> __md_wakeup_thread()

Type Parameter Key Value
PARAM_VALUE 0 thread 0,4096-ptr_max
PARAM_VALUE 0 thread->timeout 1-922337203685477,9223372036854775806-u64max
CAPPED_DATA 0 thread 1
CAPABLE 0 21
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &of->mutex
LOCK2 rcu_read
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct kernfs_open_file)->mutex

drivers/md/dm-raid.c raid_message() -> __md_wakeup_thread()

Type Parameter Key Value
NOCHECK_CALL
LOCK2 &md->io_barrier
LOCK2 rcu_read
TYPE_LOCK (struct mapped_device)->io_barrier

drivers/md/dm-raid.c raid_message() -> __md_wakeup_thread()

Type Parameter Key Value
NOCHECK_CALL
LOCK2 &md->io_barrier
LOCK2 rcu_read
TYPE_LOCK (struct mapped_device)->io_barrier

drivers/md/raid5.c add_all_stripe_bios() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &bi->bi_bdev->bd_queue->queue_lock
HALF_LOCKED2 &md->io_barrier

drivers/md/raid5.c add_bio_to_retry() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read

drivers/md/raid5.c do_release_stripe() -> __md_wakeup_thread()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &conf->device_lock
LOCK2 rcu_read
HALF_LOCKED2 irq
TYPE_LOCK (struct r5conf)->device_lock

drivers/md/raid5.c do_release_stripe() -> __md_wakeup_thread()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &conf->device_lock
LOCK2 rcu_read
HALF_LOCKED2 irq
TYPE_LOCK (struct r5conf)->device_lock

drivers/md/raid5.c handle_failed_stripe() -> __md_wakeup_thread()

Type Parameter Key Value
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read

drivers/md/raid5.c handle_stripe_clean_event() -> __md_wakeup_thread()

Type Parameter Key Value
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read

drivers/md/raid5.c make_stripe_request() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &bi->bi_bdev->bd_queue->queue_lock
HALF_LOCKED2 &md->io_barrier

drivers/md/raid5.c raid5_check_reshape() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &md->suspend_lock
HALF_LOCKED2 &mddev->reconfig_mutex
HALF_LOCKED2 &mddev->reconfig_mutex
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &rs->md.reconfig_mutex

drivers/md/raid5.c raid5_release_stripe() -> __md_wakeup_thread()

Type Parameter Key Value
PARAM_VALUE 0 thread 1-u64max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &conf->cache_size_mutex
HALF_LOCKED2 &conf->device_lock
HALF_LOCKED2 &log->io_list_lock
HALF_LOCKED2 &log->no_space_stripes_lock
HALF_LOCKED2 &ppl_conf->no_mem_stripes_lock
HALF_LOCKED2 flags
HALF_LOCKED2 irq

drivers/md/raid5.c raid5_wakeup_stripe_thread() -> __md_wakeup_thread()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &conf->device_lock
LOCK2 rcu_read
HALF_LOCKED2 irq
TYPE_LOCK (struct r5conf)->device_lock

drivers/md/raid5.c rdev_dec_pending() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read

drivers/md/raid5.c release_inactive_stripe_list() -> __md_wakeup_thread()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read

drivers/md/raid5.c reshape_request() -> __md_wakeup_thread()

Type Parameter Key Value
NOCHECK_CALL
LOCK2 rcu_read

drivers/md/raid5.c reshape_request() -> __md_wakeup_thread()

Type Parameter Key Value
NOCHECK_CALL
LOCK2 rcu_read

drivers/md/raid5.c stripe_add_to_batch_list() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &head->stripe_lock
LOCK2 &sh->stripe_lock
LOCK2 irq
LOCK2 rcu_read
HALF_LOCKED2 &bi->bi_bdev->bd_queue->queue_lock
HALF_LOCKED2 &md->io_barrier
TYPE_LOCK (struct stripe_head)->stripe_lock

drivers/md/raid10.c handle_write_completed() -> __md_wakeup_thread()

Type Parameter Key Value
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read

drivers/md/raid10.c raid10_unplug() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read

drivers/md/raid10.c raid10_write_one_disk() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &bio->bi_bdev->bd_queue->queue_lock
HALF_LOCKED2 &md->io_barrier

drivers/md/raid10.c raid10_write_request() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &bio->bi_bdev->bd_queue->queue_lock
HALF_LOCKED2 &md->io_barrier

drivers/md/raid10.c rdev_dec_pending() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read

drivers/md/raid10.c reschedule_retry() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read

drivers/md/raid10.c reshape_request() -> __md_wakeup_thread()

Type Parameter Key Value
NOCHECK_CALL
LOCK2 rcu_read

drivers/md/md-cluster.c __recover_slot() -> __md_wakeup_thread()

Type Parameter Key Value
PARAM_VALUE 0 thread 1-u64max
BUF_SIZE 0 thread (-1),136
BUF_SIZE 0 thread (-1),136
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &cinfo->recv_mutex
HALF_LOCKED2 &ls->ls_in_recovery
HALF_LOCKED2 &ls->ls_recoverd_active

drivers/md/md-cluster.c ack_bast() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &ls->ls_cb_lock
HALF_LOCKED2 &ls->ls_recoverd_active
HALF_LOCKED2 bh

drivers/md/md-cluster.c load_bitmaps() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &mddev->reconfig_mutex
HALF_LOCKED2 &of->mutex

drivers/md/md-cluster.c lock_comm() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &mddev->reconfig_mutex

drivers/md/md-cluster.c metadata_update_start() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &mddev->cluster_info->recv_mutex
HALF_LOCKED2 &mddev->reconfig_mutex
HALF_LOCKED2 &mddev->reconfig_mutex
HALF_LOCKED2 &of->mutex

drivers/md/md-cluster.c process_remove_disk() -> __md_wakeup_thread()

Type Parameter Key Value
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &cinfo->recv_mutex
LOCK2 rcu_read
TYPE_LOCK (struct md_cluster_info)->recv_mutex

drivers/md/md-cluster.c process_suspend_info() -> __md_wakeup_thread()

Type Parameter Key Value
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &cinfo->recv_mutex
LOCK2 rcu_read
TYPE_LOCK (struct md_cluster_info)->recv_mutex

drivers/md/md-cluster.c recover_bitmaps() -> __md_wakeup_thread()

Type Parameter Key Value
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read

drivers/md/md-cluster.c recover_bitmaps() -> __md_wakeup_thread()

Type Parameter Key Value
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read

drivers/md/raid5-cache.c r5c_do_reclaim() -> __md_wakeup_thread()

Type Parameter Key Value
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read

drivers/md/raid5-cache.c r5c_finish_stripe_write_out() -> __md_wakeup_thread()

Type Parameter Key Value
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read

drivers/md/raid5-cache.c r5c_release_extra_page() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read

drivers/md/raid5-cache.c r5l_do_reclaim() -> __md_wakeup_thread()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &log->io_list_lock
LOCK2 irq
LOCK2 rcu_read
TYPE_LOCK (struct r5l_log)->io_list_lock

drivers/md/raid5-cache.c r5l_log_endio() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read

drivers/md/raid5-cache.c r5l_wake_reclaim() -> __md_wakeup_thread()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &conf->device_lock
HALF_LOCKED2 &log->io_list_lock
HALF_LOCKED2 flags
HALF_LOCKED2 irq

drivers/md/raid5-cache.c rdev_dec_pending() -> __md_wakeup_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &mddev->reconfig_mutex