[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] x86: reduce scope of some symbols used with reset_stack_and_jump()
On 21/12/2011 08:14, "Jan Beulich" <JBeulich@xxxxxxxx> wrote: > By making the macro properly advertise the use of the input symbol to > the compiler, it is no longer necessary for them to be global if > they're defined and used in just one source file. > > Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> Acked-by: Keir Fraser <keir@xxxxxxx> > --- a/xen/arch/x86/domain.c > +++ b/xen/arch/x86/domain.c > @@ -74,17 +74,6 @@ static void paravirt_ctxt_switch_to(stru > > static void vcpu_destroy_pagetables(struct vcpu *v); > > -static void continue_idle_domain(struct vcpu *v) > -{ > - reset_stack_and_jump(idle_loop); > -} > - > -static void continue_nonidle_domain(struct vcpu *v) > -{ > - check_wakeup_from_wait(); > - reset_stack_and_jump(ret_from_intr); > -} > - > static void default_idle(void) > { > local_irq_disable(); > @@ -118,7 +107,7 @@ static void play_dead(void) > (*dead_idle)(); > } > > -void idle_loop(void) > +static void idle_loop(void) > { > for ( ; ; ) > { > @@ -141,6 +130,17 @@ void startup_cpu_idle_loop(void) > reset_stack_and_jump(idle_loop); > } > > +static void continue_idle_domain(struct vcpu *v) > +{ > + reset_stack_and_jump(idle_loop); > +} > + > +static void continue_nonidle_domain(struct vcpu *v) > +{ > + check_wakeup_from_wait(); > + reset_stack_and_jump(ret_from_intr); > +} > + > void dump_pageframe_info(struct domain *d) > { > struct page_info *page; > --- a/xen/arch/x86/hvm/svm/svm.c > +++ b/xen/arch/x86/hvm/svm/svm.c > @@ -63,6 +63,8 @@ > #include <asm/debugger.h> > #include <asm/xstate.h> > > +void svm_asm_do_resume(void); > + > u32 svm_feature_flags; > > /* Indicates whether guests may use EFER.LMSLE. */ > --- a/xen/arch/x86/setup.c > +++ b/xen/arch/x86/setup.c > @@ -508,7 +508,7 @@ static void __init kexec_reserve_area(st > } > } > > -void init_done(void) > +static void noinline init_done(void) > { > /* Free (or page-protect) the init areas. */ > memset(__init_begin, 0xcc, __init_end - __init_begin); /* int3 poison */ > --- a/xen/include/asm-x86/asm_defns.h > +++ b/xen/include/asm-x86/asm_defns.h > @@ -8,6 +8,10 @@ > #endif > #include <asm/processor.h> > > +#ifndef __ASSEMBLY__ > +void ret_from_intr(void); > +#endif > + > #ifdef __x86_64__ > #include <asm/x86_64/asm_defns.h> > #else > --- a/xen/include/asm-x86/current.h > +++ b/xen/include/asm-x86/current.h > @@ -56,8 +56,8 @@ static inline struct cpu_info *get_cpu_i > > #define reset_stack_and_jump(__fn) \ > __asm__ __volatile__ ( \ > - "mov %0,%%"__OP"sp; jmp "STR(__fn) \ > - : : "r" (guest_cpu_user_regs()) : "memory" ) > + "mov %0,%%"__OP"sp; jmp %c1" \ > + : : "r" (guest_cpu_user_regs()), "i" (__fn) : "memory" ) > > #define schedule_tail(vcpu) (((vcpu)->arch.schedule_tail)(vcpu)) > > --- a/xen/include/asm-x86/setup.h > +++ b/xen/include/asm-x86/setup.h > @@ -7,8 +7,6 @@ > extern bool_t early_boot; > extern unsigned long xenheap_initial_phys_start; > > -void init_done(void); > - > void early_cpu_init(void); > void early_time_init(void); > void early_page_fault(void); > > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxxxxxxxx > http://lists.xensource.com/xen-devel _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |