diff options
Diffstat (limited to 'include/linux/kthread.h')
| -rw-r--r-- | include/linux/kthread.h | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/include/linux/kthread.h b/include/linux/kthread.h index 0714b24c0e45..22ccf9dee177 100644 --- a/include/linux/kthread.h +++ b/include/linux/kthread.h | |||
| @@ -49,8 +49,6 @@ extern int tsk_fork_get_node(struct task_struct *tsk); | |||
| 49 | * can be queued and flushed using queue/flush_kthread_work() | 49 | * can be queued and flushed using queue/flush_kthread_work() |
| 50 | * respectively. Queued kthread_works are processed by a kthread | 50 | * respectively. Queued kthread_works are processed by a kthread |
| 51 | * running kthread_worker_fn(). | 51 | * running kthread_worker_fn(). |
| 52 | * | ||
| 53 | * A kthread_work can't be freed while it is executing. | ||
| 54 | */ | 52 | */ |
| 55 | struct kthread_work; | 53 | struct kthread_work; |
| 56 | typedef void (*kthread_work_func_t)(struct kthread_work *work); | 54 | typedef void (*kthread_work_func_t)(struct kthread_work *work); |
| @@ -59,15 +57,14 @@ struct kthread_worker { | |||
| 59 | spinlock_t lock; | 57 | spinlock_t lock; |
| 60 | struct list_head work_list; | 58 | struct list_head work_list; |
| 61 | struct task_struct *task; | 59 | struct task_struct *task; |
| 60 | struct kthread_work *current_work; | ||
| 62 | }; | 61 | }; |
| 63 | 62 | ||
| 64 | struct kthread_work { | 63 | struct kthread_work { |
| 65 | struct list_head node; | 64 | struct list_head node; |
| 66 | kthread_work_func_t func; | 65 | kthread_work_func_t func; |
| 67 | wait_queue_head_t done; | 66 | wait_queue_head_t done; |
| 68 | atomic_t flushing; | 67 | struct kthread_worker *worker; |
| 69 | int queue_seq; | ||
| 70 | int done_seq; | ||
| 71 | }; | 68 | }; |
| 72 | 69 | ||
| 73 | #define KTHREAD_WORKER_INIT(worker) { \ | 70 | #define KTHREAD_WORKER_INIT(worker) { \ |
| @@ -79,7 +76,6 @@ struct kthread_work { | |||
| 79 | .node = LIST_HEAD_INIT((work).node), \ | 76 | .node = LIST_HEAD_INIT((work).node), \ |
| 80 | .func = (fn), \ | 77 | .func = (fn), \ |
| 81 | .done = __WAIT_QUEUE_HEAD_INITIALIZER((work).done), \ | 78 | .done = __WAIT_QUEUE_HEAD_INITIALIZER((work).done), \ |
| 82 | .flushing = ATOMIC_INIT(0), \ | ||
| 83 | } | 79 | } |
| 84 | 80 | ||
| 85 | #define DEFINE_KTHREAD_WORKER(worker) \ | 81 | #define DEFINE_KTHREAD_WORKER(worker) \ |
