In preparation for unconditionally passing the struct timer_list pointer to all timer callbacks, switch to using the new timer_setup() and from_timer() to pass the timer pointer explicitly. (The prior workqueue patch missed a few timers.)
Showing the changes to kernel/workqueue.c (1 of 1 file). Show all
Unified · Split
| @@ -1831,9 +1831,9 @@ static void destroy_worker(struct worker *worker) · 1830 unmodified lines | ||
| 1831 | 1831 | wake_up_process(worker->task); |
| 1832 | 1832 | } |
| 1833 | 1833 | |
| 1834 | −static void idle_worker_timeout(unsigned long __pool) | |
| 1834 | +static void idle_worker_timeout(struct timer_list *t) | |
| 1835 | 1835 | { |
| 1836 | − struct worker_pool *pool = (void *)__pool; | |
| 1836 | + struct worker_pool *pool = from_timer(pool, t, idle_timer); | |
| 1837 | 1837 | |
| 1838 | 1838 | spin_lock_irq(&pool->lock); |
| 1839 | 1839 | |
| @@ -1879,9 +1879,9 @@ static void send_mayday(struct work_struct *work) · 39 unmodified lines | ||
| 1879 | 1879 | } |
| 1880 | 1880 | } |
| 1881 | 1881 | |
| 1882 | −static void pool_mayday_timeout(unsigned long __pool) | |
| 1882 | +static void pool_mayday_timeout(struct timer_list *t) | |
| 1883 | 1883 | { |
| 1884 | − struct worker_pool *pool = (void *)__pool; | |
| 1884 | + struct worker_pool *pool = from_timer(pool, t, mayday_timer); | |
| 1885 | 1885 | struct work_struct *work; |
| 1886 | 1886 | |
| 1887 | 1887 | spin_lock_irq(&pool->lock); |
| @@ -3241,11 +3241,9 @@ static int init_worker_pool(struct worker_pool *pool) · 1353 unmodified lines | ||
| 3241 | 3241 | INIT_LIST_HEAD(&pool->idle_list); |
| 3242 | 3242 | hash_init(pool->busy_hash); |
| 3243 | 3243 | |
| 3244 | − setup_deferrable_timer(&pool->idle_timer, idle_worker_timeout, | |
| 3245 | − (unsigned long)pool); | |
| 3244 | + timer_setup(&pool->idle_timer, idle_worker_timeout, TIMER_DEFERRABLE); | |
| 3246 | 3245 | |
| 3247 | − setup_timer(&pool->mayday_timer, pool_mayday_timeout, | |
| 3248 | − (unsigned long)pool); | |
| 3246 | + timer_setup(&pool->mayday_timer, pool_mayday_timeout, 0); | |
| 3249 | 3247 | |
| 3250 | 3248 | mutex_init(&pool->manager_arb); |
| 3251 | 3249 | mutex_init(&pool->attach_mutex); |