[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] x86: reduce scope of some symbols used with reset_stack_and_jump()



# HG changeset patch
# User Jan Beulich <jbeulich@xxxxxxxx>
# Date 1324473969 -3600
# Node ID 16dc2a1cd40f68be4f366f64934548b6824e8f18
# Parent  73ab77073140ddc853eabe99647b422cb49fa536
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@xxxxxxxx>
Acked-by: Keir Fraser <keir@xxxxxxx>
---


diff -r 73ab77073140 -r 16dc2a1cd40f xen/arch/x86/domain.c
--- a/xen/arch/x86/domain.c     Wed Dec 21 09:20:15 2011 +0100
+++ b/xen/arch/x86/domain.c     Wed Dec 21 14:26:09 2011 +0100
@@ -74,17 +74,6 @@
 
 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 @@
     (*dead_idle)();
 }
 
-void idle_loop(void)
+static void idle_loop(void)
 {
     for ( ; ; )
     {
@@ -141,6 +130,17 @@
     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 -r 73ab77073140 -r 16dc2a1cd40f xen/arch/x86/hvm/svm/svm.c
--- a/xen/arch/x86/hvm/svm/svm.c        Wed Dec 21 09:20:15 2011 +0100
+++ b/xen/arch/x86/hvm/svm/svm.c        Wed Dec 21 14:26:09 2011 +0100
@@ -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 -r 73ab77073140 -r 16dc2a1cd40f xen/arch/x86/setup.c
--- a/xen/arch/x86/setup.c      Wed Dec 21 09:20:15 2011 +0100
+++ b/xen/arch/x86/setup.c      Wed Dec 21 14:26:09 2011 +0100
@@ -508,7 +508,7 @@
     }
 }
 
-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 -r 73ab77073140 -r 16dc2a1cd40f xen/include/asm-x86/asm_defns.h
--- a/xen/include/asm-x86/asm_defns.h   Wed Dec 21 09:20:15 2011 +0100
+++ b/xen/include/asm-x86/asm_defns.h   Wed Dec 21 14:26:09 2011 +0100
@@ -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 -r 73ab77073140 -r 16dc2a1cd40f xen/include/asm-x86/current.h
--- a/xen/include/asm-x86/current.h     Wed Dec 21 09:20:15 2011 +0100
+++ b/xen/include/asm-x86/current.h     Wed Dec 21 14:26:09 2011 +0100
@@ -56,8 +56,8 @@
 
 #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 -r 73ab77073140 -r 16dc2a1cd40f xen/include/asm-x86/setup.h
--- a/xen/include/asm-x86/setup.h       Wed Dec 21 09:20:15 2011 +0100
+++ b/xen/include/asm-x86/setup.h       Wed Dec 21 14:26:09 2011 +0100
@@ -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-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.