diff options
author | kaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk> | 2003-10-06 09:43:35 +0000 |
---|---|---|
committer | kaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk> | 2003-10-06 09:43:35 +0000 |
commit | 302f83aab83caf3455c8a2d7b1bd30847dd24c16 (patch) | |
tree | b28178f8563f21472d5cec58c45fa0ecd2526d07 /xen/common/softirq.c | |
parent | 922fddb0355189b9e0b4a85bca04d03569b7ad56 (diff) | |
download | xen-302f83aab83caf3455c8a2d7b1bd30847dd24c16.tar.gz xen-302f83aab83caf3455c8a2d7b1bd30847dd24c16.tar.bz2 xen-302f83aab83caf3455c8a2d7b1bd30847dd24c16.zip |
bitkeeper revision 1.479 (3f813947vLCvbxYLugd4rI8gd1R05Q)
sched.h, softirq.c, schedule.c, event.c, domain.c, process.c:
Cleanups to new scheduler world.
Diffstat (limited to 'xen/common/softirq.c')
-rw-r--r-- | xen/common/softirq.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/xen/common/softirq.c b/xen/common/softirq.c index b828af6a73..951fb91395 100644 --- a/xen/common/softirq.c +++ b/xen/common/softirq.c @@ -225,14 +225,9 @@ void tasklet_kill(struct tasklet_struct *t) { if (in_interrupt()) printk("Attempt to kill tasklet from interrupt\n"); - - while (test_and_set_bit(TASKLET_STATE_SCHED, &t->state)) { - set_current_state(TASK_RUNNING); - do { - current->policy |= SCHED_YIELD; - schedule(); - } while (test_bit(TASKLET_STATE_SCHED, &t->state)); - } + while (test_and_set_bit(TASKLET_STATE_SCHED, &t->state)) + while (test_bit(TASKLET_STATE_SCHED, &t->state)) + do_softirq(); tasklet_unlock_wait(t); clear_bit(TASKLET_STATE_SCHED, &t->state); } |