Skip to content

Commit

Permalink
xen: re-register runstate area earlier on resume.
Browse files Browse the repository at this point in the history
This is necessary to ensure the runstate area is available to
xen_sched_clock before any calls to printk which will require it in
order to provide a timestamp.

I chose to pull the xen_setup_runstate_info out of xen_time_init into
the caller in order to maintain parity with calling
xen_setup_runstate_info separately from calling xen_time_resume.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Cc: Stable Kernel <stable@kernel.org>
  • Loading branch information
Ian Campbell authored and Jeremy Fitzhardinge committed Dec 3, 2009
1 parent ae78880 commit be01292
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 3 deletions.
2 changes: 2 additions & 0 deletions arch/x86/xen/enlighten.c
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,8 @@ void xen_vcpu_restore(void)
HYPERVISOR_vcpu_op(VCPUOP_down, cpu, NULL))
BUG();

xen_setup_runstate_info(cpu);

xen_vcpu_setup(cpu);

if (other_cpu &&
Expand Down
5 changes: 2 additions & 3 deletions arch/x86/xen/time.c
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ bool xen_vcpu_stolen(int vcpu)
return per_cpu(runstate, vcpu).state == RUNSTATE_runnable;
}

static void setup_runstate_info(int cpu)
void xen_setup_runstate_info(int cpu)
{
struct vcpu_register_runstate_memory_area area;

Expand Down Expand Up @@ -442,8 +442,6 @@ void xen_setup_timer(int cpu)

evt->cpumask = cpumask_of(cpu);
evt->irq = irq;

setup_runstate_info(cpu);
}

void xen_teardown_timer(int cpu)
Expand Down Expand Up @@ -494,6 +492,7 @@ __init void xen_time_init(void)

setup_force_cpu_cap(X86_FEATURE_TSC);

xen_setup_runstate_info(cpu);
xen_setup_timer(cpu);
xen_setup_cpu_clockevents();
}
1 change: 1 addition & 0 deletions arch/x86/xen/xen-ops.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ void __init xen_build_dynamic_phys_to_machine(void);

void xen_init_irq_ops(void);
void xen_setup_timer(int cpu);
void xen_setup_runstate_info(int cpu);
void xen_teardown_timer(int cpu);
cycle_t xen_clocksource_read(void);
void xen_setup_cpu_clockevents(void);
Expand Down

0 comments on commit be01292

Please sign in to comment.