.. | .. |
---|
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 | /* |
---|