| .. | .. |
|---|
| 687 | 687 | set_work_data(work, WORK_STRUCT_NO_POOL, 0); |
|---|
| 688 | 688 | } |
|---|
| 689 | 689 | |
|---|
| 690 | +static inline struct pool_workqueue *work_struct_pwq(unsigned long data) |
|---|
| 691 | +{ |
|---|
| 692 | + return (struct pool_workqueue *)(data & WORK_STRUCT_WQ_DATA_MASK); |
|---|
| 693 | +} |
|---|
| 694 | + |
|---|
| 690 | 695 | static struct pool_workqueue *get_work_pwq(struct work_struct *work) |
|---|
| 691 | 696 | { |
|---|
| 692 | 697 | unsigned long data = atomic_long_read(&work->data); |
|---|
| 693 | 698 | |
|---|
| 694 | 699 | if (data & WORK_STRUCT_PWQ) |
|---|
| 695 | | - return (void *)(data & WORK_STRUCT_WQ_DATA_MASK); |
|---|
| 700 | + return work_struct_pwq(data); |
|---|
| 696 | 701 | else |
|---|
| 697 | 702 | return NULL; |
|---|
| 698 | 703 | } |
|---|
| .. | .. |
|---|
| 720 | 725 | assert_rcu_or_pool_mutex(); |
|---|
| 721 | 726 | |
|---|
| 722 | 727 | if (data & WORK_STRUCT_PWQ) |
|---|
| 723 | | - return ((struct pool_workqueue *) |
|---|
| 724 | | - (data & WORK_STRUCT_WQ_DATA_MASK))->pool; |
|---|
| 728 | + return work_struct_pwq(data)->pool; |
|---|
| 725 | 729 | |
|---|
| 726 | 730 | pool_id = data >> WORK_OFFQ_POOL_SHIFT; |
|---|
| 727 | 731 | if (pool_id == WORK_OFFQ_POOL_NONE) |
|---|
| .. | .. |
|---|
| 742 | 746 | unsigned long data = atomic_long_read(&work->data); |
|---|
| 743 | 747 | |
|---|
| 744 | 748 | if (data & WORK_STRUCT_PWQ) |
|---|
| 745 | | - return ((struct pool_workqueue *) |
|---|
| 746 | | - (data & WORK_STRUCT_WQ_DATA_MASK))->pool->id; |
|---|
| 749 | + return work_struct_pwq(data)->pool->id; |
|---|
| 747 | 750 | |
|---|
| 748 | 751 | return data >> WORK_OFFQ_POOL_SHIFT; |
|---|
| 749 | 752 | } |
|---|
| .. | .. |
|---|
| 4954 | 4957 | pool->flags |= POOL_DISASSOCIATED; |
|---|
| 4955 | 4958 | |
|---|
| 4956 | 4959 | raw_spin_unlock_irq(&pool->lock); |
|---|
| 4957 | | - |
|---|
| 4958 | | - for_each_pool_worker(worker, pool) |
|---|
| 4959 | | - WARN_ON_ONCE(set_cpus_allowed_ptr(worker->task, cpu_active_mask) < 0); |
|---|
| 4960 | | - |
|---|
| 4961 | 4960 | mutex_unlock(&wq_pool_attach_mutex); |
|---|
| 4962 | 4961 | |
|---|
| 4963 | 4962 | /* |
|---|