|
@@ -999,7 +999,6 @@ static void cwq_activate_first_delayed(struct cpu_workqueue_struct *cwq)
|
|
|
* cwq_dec_nr_in_flight - decrement cwq's nr_in_flight
|
|
|
* @cwq: cwq of interest
|
|
|
* @color: color of work which left the queue
|
|
|
- * @delayed: for a delayed work
|
|
|
*
|
|
|
* A work either has completed or is removed from pending queue,
|
|
|
* decrement nr_in_flight of its cwq and handle workqueue flushing.
|
|
@@ -1007,8 +1006,7 @@ static void cwq_activate_first_delayed(struct cpu_workqueue_struct *cwq)
|
|
|
* CONTEXT:
|
|
|
* spin_lock_irq(gcwq->lock).
|
|
|
*/
|
|
|
-static void cwq_dec_nr_in_flight(struct cpu_workqueue_struct *cwq, int color,
|
|
|
- bool delayed)
|
|
|
+static void cwq_dec_nr_in_flight(struct cpu_workqueue_struct *cwq, int color)
|
|
|
{
|
|
|
/* ignore uncolored works */
|
|
|
if (color == WORK_NO_COLOR)
|
|
@@ -1016,13 +1014,11 @@ static void cwq_dec_nr_in_flight(struct cpu_workqueue_struct *cwq, int color,
|
|
|
|
|
|
cwq->nr_in_flight[color]--;
|
|
|
|
|
|
- if (!delayed) {
|
|
|
- cwq->nr_active--;
|
|
|
- if (!list_empty(&cwq->delayed_works)) {
|
|
|
- /* one down, submit a delayed one */
|
|
|
- if (cwq->nr_active < cwq->max_active)
|
|
|
- cwq_activate_first_delayed(cwq);
|
|
|
- }
|
|
|
+ cwq->nr_active--;
|
|
|
+ if (!list_empty(&cwq->delayed_works)) {
|
|
|
+ /* one down, submit a delayed one */
|
|
|
+ if (cwq->nr_active < cwq->max_active)
|
|
|
+ cwq_activate_first_delayed(cwq);
|
|
|
}
|
|
|
|
|
|
/* is flush in progress and are we at the flushing tip? */
|
|
@@ -1127,8 +1123,7 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
|
|
|
|
|
|
list_del_init(&work->entry);
|
|
|
cwq_dec_nr_in_flight(get_work_cwq(work),
|
|
|
- get_work_color(work),
|
|
|
- *work_data_bits(work) & WORK_STRUCT_DELAYED);
|
|
|
+ get_work_color(work));
|
|
|
|
|
|
spin_unlock(&gcwq->lock);
|
|
|
return 1;
|
|
@@ -2264,7 +2259,7 @@ __acquires(&gcwq->lock)
|
|
|
hlist_del_init(&worker->hentry);
|
|
|
worker->current_work = NULL;
|
|
|
worker->current_cwq = NULL;
|
|
|
- cwq_dec_nr_in_flight(cwq, work_color, false);
|
|
|
+ cwq_dec_nr_in_flight(cwq, work_color);
|
|
|
}
|
|
|
|
|
|
/**
|