Lines Matching refs:task

55 static void __irda_task_delete(struct irda_task *task);
162 static void __irda_task_delete(struct irda_task *task) in __irda_task_delete() argument
164 del_timer(&task->timer); in __irda_task_delete()
166 kfree(task); in __irda_task_delete()
169 static void irda_task_delete(struct irda_task *task) in irda_task_delete() argument
172 hashbin_remove(tasks, (long) task, NULL); in irda_task_delete()
174 __irda_task_delete(task); in irda_task_delete()
185 static int irda_task_kick(struct irda_task *task) in irda_task_kick() argument
191 IRDA_ASSERT(task != NULL, return -1;); in irda_task_kick()
192 IRDA_ASSERT(task->magic == IRDA_TASK_MAGIC, return -1;); in irda_task_kick()
196 timeout = task->function(task); in irda_task_kick()
200 irda_task_delete(task); in irda_task_kick()
203 } while ((timeout == 0) && (task->state != IRDA_TASK_DONE)); in irda_task_kick()
207 irda_task_delete(task); in irda_task_kick()
212 if (task->state == IRDA_TASK_DONE) { in irda_task_kick()
213 del_timer(&task->timer); in irda_task_kick()
216 if (task->finished) in irda_task_kick()
217 task->finished(task); in irda_task_kick()
220 if (task->parent) { in irda_task_kick()
222 if (task->parent->state == IRDA_TASK_CHILD_WAIT) { in irda_task_kick()
223 task->parent->state = IRDA_TASK_CHILD_DONE; in irda_task_kick()
226 del_timer(&task->parent->timer); in irda_task_kick()
229 irda_task_kick(task->parent); in irda_task_kick()
232 irda_task_delete(task); in irda_task_kick()
234 irda_start_timer(&task->timer, timeout, (void *) task, in irda_task_kick()
254 struct irda_task *task; in irda_task_timer_expired() local
256 task = data; in irda_task_timer_expired()
258 irda_task_kick(task); in irda_task_timer_expired()