aboutsummaryrefslogtreecommitdiffstats
path: root/xen
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2011-12-21 14:26:09 +0100
committerJan Beulich <jbeulich@suse.com>2011-12-21 14:26:09 +0100
commit68471b6a19c21353c8c849d3205af690e3cf7e38 (patch)
tree117790fab6be2197cdab175c14ac5517175735fc /xen
parent2a117bba4b2be20c585a0b0987e1f70594b4dc7a (diff)
downloadxen-68471b6a19c21353c8c849d3205af690e3cf7e38.tar.gz
xen-68471b6a19c21353c8c849d3205af690e3cf7e38.tar.bz2
xen-68471b6a19c21353c8c849d3205af690e3cf7e38.zip
x86: reduce scope of some symbols used with reset_stack_and_jump()
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@suse.com> Acked-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'xen')
-rw-r--r--xen/arch/x86/domain.c24
-rw-r--r--xen/arch/x86/hvm/svm/svm.c2
-rw-r--r--xen/arch/x86/setup.c2
-rw-r--r--xen/include/asm-x86/asm_defns.h4
-rw-r--r--xen/include/asm-x86/current.h4
-rw-r--r--xen/include/asm-x86/setup.h2
6 files changed, 21 insertions, 17 deletions
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index b8a64c39ec..532c0ec379 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -74,17 +74,6 @@ static void paravirt_ctxt_switch_to(struct vcpu *v);
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;
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 016fdf3c0b..6986f4a97f 100644
--- 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. */
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 32b20c28ef..ae236c94c3 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -508,7 +508,7 @@ static void __init kexec_reserve_area(struct e820map *e820)
}
}
-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 */
diff --git a/xen/include/asm-x86/asm_defns.h b/xen/include/asm-x86/asm_defns.h
index ca6152e64a..e6a710ee0f 100644
--- 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
diff --git a/xen/include/asm-x86/current.h b/xen/include/asm-x86/current.h
index bed04f1c24..017d4b7106 100644
--- 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_info(void)
#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))
diff --git a/xen/include/asm-x86/setup.h b/xen/include/asm-x86/setup.h
index b684f01348..aeabb50423 100644
--- 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);