aboutsummaryrefslogtreecommitdiffstats
path: root/xen/common/softirq.c
diff options
context:
space:
mode:
authorkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>2003-10-06 09:43:35 +0000
committerkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>2003-10-06 09:43:35 +0000
commit302f83aab83caf3455c8a2d7b1bd30847dd24c16 (patch)
treeb28178f8563f21472d5cec58c45fa0ecd2526d07 /xen/common/softirq.c
parent922fddb0355189b9e0b4a85bca04d03569b7ad56 (diff)
downloadxen-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.c11
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);
}