|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] [xen-unstable] x86: Process only pending timers in acpi
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1246877182 -3600
# Node ID 7605b318619f71d4786ecca8d3fbc17a7b237e3d
# Parent 88627284ec29fc75d1db45528ddc2ce06a5149a6
x86: Process only pending timers in acpi idle handler, not all
softirqs. This fixes a bug where bailing into SCHEDULE_SOFTIRQ may not
actually return.
From: Ke Yu <ke.yu@xxxxxxxxx>
Signed-off-by: Keir Fraser <keir.fraser@xxxxxxxxxx>
---
xen/arch/x86/acpi/cpu_idle.c | 9 ++-------
1 files changed, 2 insertions(+), 7 deletions(-)
diff -r 88627284ec29 -r 7605b318619f xen/arch/x86/acpi/cpu_idle.c
--- a/xen/arch/x86/acpi/cpu_idle.c Mon Jul 06 11:42:05 2009 +0100
+++ b/xen/arch/x86/acpi/cpu_idle.c Mon Jul 06 11:46:22 2009 +0100
@@ -225,13 +225,8 @@ static void acpi_processor_idle(void)
cpufreq_dbs_timer_suspend();
sched_tick_suspend();
- /*
- * sched_tick_suspend may raise TIMER_SOFTIRQ by __stop_timer,
- * which will break the later assumption of no sofirq pending,
- * so add do_softirq
- */
- if ( softirq_pending(smp_processor_id()) )
- do_softirq();
+ /* sched_tick_suspend() can raise TIMER_SOFTIRQ. Process it now. */
+ process_pending_timers();
/*
* Interrupts must be disabled during bus mastering calculations and
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] [xen-unstable] x86: Process only pending timers in acpi idle handler, not all,
Xen patchbot-unstable <=
|
|
|
|
|