On Tue, 2010-08-10 at 15:10 +0100, Jan Beulich wrote:
> From: Zdenek Salvet <salvet@xxxxxxxxxxx>
>
> According to Debian bug 591362 this has been causing problems. While
> no proof was given that the inverse lock order does actually occur
> anywhere (with interrupts enabled), it is plain unnecessary to take
> the risk.
>
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>
I'm right in thinking this is for traditional Xen/Linux kernel only,
aren't I?
Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
>
> --- a/arch/i386/kernel/time-xen.c
> +++ b/arch/i386/kernel/time-xen.c
> @@ -666,6 +666,7 @@ irqreturn_t timer_interrupt(int irq, voi
> s64 delta, delta_cpu, stolen, blocked;
> u64 sched_time;
> unsigned int i, cpu = smp_processor_id();
> + int schedule_clock_was_set_work = 0;
> struct shadow_time_info *shadow = &per_cpu(shadow_time, cpu);
> struct vcpu_runstate_info *runstate = &per_cpu(runstate, cpu);
>
> @@ -720,12 +721,14 @@ irqreturn_t timer_interrupt(int irq, voi
>
> if (shadow_tv_version != HYPERVISOR_shared_info->wc_version) {
> update_wallclock();
> - if (keventd_up())
> - schedule_work(&clock_was_set_work);
> + schedule_clock_was_set_work = 1;
> }
>
> write_sequnlock(&xtime_lock);
>
> + if (schedule_clock_was_set_work && keventd_up())
> + schedule_work(&clock_was_set_work);
> +
> /*
> * Account stolen ticks.
> * HACK: Passing NULL to account_steal_time()
>
>
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|