diff options
-rw-r--r-- | kernel/sched/core.c | 2 | ||||
-rw-r--r-- | kernel/workqueue.c | 9 | ||||
-rw-r--r-- | kernel/workqueue_internal.h | 2 |
3 files changed, 6 insertions, 7 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c index ea8f49ae0062..4edecc15177d 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c | |||
@@ -3174,7 +3174,7 @@ static void __sched notrace __schedule(bool preempt) | |||
3174 | if (prev->flags & PF_WQ_WORKER) { | 3174 | if (prev->flags & PF_WQ_WORKER) { |
3175 | struct task_struct *to_wakeup; | 3175 | struct task_struct *to_wakeup; |
3176 | 3176 | ||
3177 | to_wakeup = wq_worker_sleeping(prev, cpu); | 3177 | to_wakeup = wq_worker_sleeping(prev); |
3178 | if (to_wakeup) | 3178 | if (to_wakeup) |
3179 | try_to_wake_up_local(to_wakeup); | 3179 | try_to_wake_up_local(to_wakeup); |
3180 | } | 3180 | } |
diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 16e13d8628a3..2232ae3e3ad6 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c | |||
@@ -857,7 +857,6 @@ void wq_worker_waking_up(struct task_struct *task, int cpu) | |||
857 | /** | 857 | /** |
858 | * wq_worker_sleeping - a worker is going to sleep | 858 | * wq_worker_sleeping - a worker is going to sleep |
859 | * @task: task going to sleep | 859 | * @task: task going to sleep |
860 | * @cpu: CPU in question, must be the current CPU number | ||
861 | * | 860 | * |
862 | * This function is called during schedule() when a busy worker is | 861 | * This function is called during schedule() when a busy worker is |
863 | * going to sleep. Worker on the same cpu can be woken up by | 862 | * going to sleep. Worker on the same cpu can be woken up by |
@@ -869,7 +868,7 @@ void wq_worker_waking_up(struct task_struct *task, int cpu) | |||
869 | * Return: | 868 | * Return: |
870 | * Worker task on @cpu to wake up, %NULL if none. | 869 | * Worker task on @cpu to wake up, %NULL if none. |
871 | */ | 870 | */ |
872 | struct task_struct *wq_worker_sleeping(struct task_struct *task, int cpu) | 871 | struct task_struct *wq_worker_sleeping(struct task_struct *task) |
873 | { | 872 | { |
874 | struct worker *worker = kthread_data(task), *to_wakeup = NULL; | 873 | struct worker *worker = kthread_data(task), *to_wakeup = NULL; |
875 | struct worker_pool *pool; | 874 | struct worker_pool *pool; |
@@ -885,7 +884,7 @@ struct task_struct *wq_worker_sleeping(struct task_struct *task, int cpu) | |||
885 | pool = worker->pool; | 884 | pool = worker->pool; |
886 | 885 | ||
887 | /* this can only happen on the local cpu */ | 886 | /* this can only happen on the local cpu */ |
888 | if (WARN_ON_ONCE(cpu != raw_smp_processor_id() || pool->cpu != cpu)) | 887 | if (WARN_ON_ONCE(pool->cpu != raw_smp_processor_id())) |
889 | return NULL; | 888 | return NULL; |
890 | 889 | ||
891 | /* | 890 | /* |
@@ -4695,7 +4694,7 @@ static void work_for_cpu_fn(struct work_struct *work) | |||
4695 | } | 4694 | } |
4696 | 4695 | ||
4697 | /** | 4696 | /** |
4698 | * work_on_cpu - run a function in user context on a particular cpu | 4697 | * work_on_cpu - run a function in thread context on a particular cpu |
4699 | * @cpu: the cpu to run on | 4698 | * @cpu: the cpu to run on |
4700 | * @fn: the function to run | 4699 | * @fn: the function to run |
4701 | * @arg: the function arg | 4700 | * @arg: the function arg |
@@ -5221,8 +5220,8 @@ int workqueue_sysfs_register(struct workqueue_struct *wq) | |||
5221 | 5220 | ||
5222 | wq_dev->wq = wq; | 5221 | wq_dev->wq = wq; |
5223 | wq_dev->dev.bus = &wq_subsys; | 5222 | wq_dev->dev.bus = &wq_subsys; |
5224 | wq_dev->dev.init_name = wq->name; | ||
5225 | wq_dev->dev.release = wq_device_release; | 5223 | wq_dev->dev.release = wq_device_release; |
5224 | dev_set_name(&wq_dev->dev, "%s", wq->name); | ||
5226 | 5225 | ||
5227 | /* | 5226 | /* |
5228 | * unbound_attrs are created separately. Suppress uevent until | 5227 | * unbound_attrs are created separately. Suppress uevent until |
diff --git a/kernel/workqueue_internal.h b/kernel/workqueue_internal.h index 45215870ac6c..8635417c587b 100644 --- a/kernel/workqueue_internal.h +++ b/kernel/workqueue_internal.h | |||
@@ -69,6 +69,6 @@ static inline struct worker *current_wq_worker(void) | |||
69 | * sched/core.c and workqueue.c. | 69 | * sched/core.c and workqueue.c. |
70 | */ | 70 | */ |
71 | void wq_worker_waking_up(struct task_struct *task, int cpu); | 71 | void wq_worker_waking_up(struct task_struct *task, int cpu); |
72 | struct task_struct *wq_worker_sleeping(struct task_struct *task, int cpu); | 72 | struct task_struct *wq_worker_sleeping(struct task_struct *task); |
73 | 73 | ||
74 | #endif /* _KERNEL_WORKQUEUE_INTERNAL_H */ | 74 | #endif /* _KERNEL_WORKQUEUE_INTERNAL_H */ |