[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-3.4-testing] x86: Process only pending timers in acpi idle handler, not all
# HG changeset patch # User Keir Fraser <keir.fraser@xxxxxxxxxx> # Date 1246883126 -3600 # Node ID 5018fc6b67a5b67cf05044a079a74b840d74ce1d # Parent ddf8e5917a12027af82adc599469ac59da1635e2 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-unstable changeset: 19890:7605b318619f xen-unstable date: Mon Jul 06 11:46:22 2009 +0100 --- xen/arch/x86/acpi/cpu_idle.c | 9 ++------- 1 files changed, 2 insertions(+), 7 deletions(-) diff -r ddf8e5917a12 -r 5018fc6b67a5 xen/arch/x86/acpi/cpu_idle.c --- a/xen/arch/x86/acpi/cpu_idle.c Thu Jul 02 16:17:12 2009 +0100 +++ b/xen/arch/x86/acpi/cpu_idle.c Mon Jul 06 13:25:26 2009 +0100 @@ -200,13 +200,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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |