xen-devel
[Xen-devel] [RFC PATCH 22/33] subarch stack pointer update
To: |
linux-kernel@xxxxxxxxxxxxxxx |
Subject: |
[Xen-devel] [RFC PATCH 22/33] subarch stack pointer update |
From: |
Chris Wright <chrisw@xxxxxxxxxxxx> |
Date: |
Tue, 18 Jul 2006 00:00:22 -0700 |
Cc: |
Andrew Morton <akpm@xxxxxxxx>, Zachary Amsden <zach@xxxxxxxxxx>, Jeremy Fitzhardinge <jeremy@xxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxx, Ian Pratt <ian.pratt@xxxxxxxxxxxxx>, Rusty Russell <rusty@xxxxxxxxxxxxxxx>, Andi Kleen <ak@xxxxxxx>, virtualization@xxxxxxxxxxxxxx, Christian Limpach <Christian.Limpach@xxxxxxxxxxxx> |
Delivery-date: |
Tue, 18 Jul 2006 02:36:51 -0700 |
Envelope-to: |
www-data@xxxxxxxxxxxxxxxxxx |
List-help: |
<mailto:xen-devel-request@lists.xensource.com?subject=help> |
List-id: |
Xen developer discussion <xen-devel.lists.xensource.com> |
List-post: |
<mailto:xen-devel@lists.xensource.com> |
List-subscribe: |
<http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe> |
List-unsubscribe: |
<http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe> |
References: |
<20060718091807.467468000@xxxxxxxxxxxx> |
Sender: |
xen-devel-bounces@xxxxxxxxxxxxxxxxxxx |
User-agent: |
quilt/0.45-1 |
Register the new kernel ('ring 0') stack pointer with the hypervisor
during context switch.
Signed-off-by: Ian Pratt <ian.pratt@xxxxxxxxxxxxx>
Signed-off-by: Christian Limpach <Christian.Limpach@xxxxxxxxxxxx>
Signed-off-by: Chris Wright <chrisw@xxxxxxxxxxxx>
---
include/asm-i386/mach-default/mach_processor.h | 7 +++++++
include/asm-i386/mach-xen/mach_processor.h | 8 ++++++++
include/asm-i386/processor.h | 1 +
3 files changed, 16 insertions(+)
diff -r 60dd30eed8f3 include/asm-i386/mach-default/mach_processor.h
--- a/include/asm-i386/mach-default/mach_processor.h Fri Mar 31 15:36:12
2006 +0100
+++ b/include/asm-i386/mach-default/mach_processor.h Fri Mar 31 15:38:00
2006 +0100
@@ -4,4 +4,11 @@
#define CPUID cpuid
#define CPUID_STR "cpuid"
+#ifndef __ASSEMBLY__
+static inline void mach_update_kernel_stack(unsigned long esp0,
+ unsigned short ss0)
+{
+}
+#endif
+
#endif /* __ASM_MACH_PROCESSOR_H */
diff -r 60dd30eed8f3 include/asm-i386/mach-xen/mach_processor.h
--- a/include/asm-i386/mach-xen/mach_processor.h Fri Mar 31 15:36:12
2006 +0100
+++ b/include/asm-i386/mach-xen/mach_processor.h Fri Mar 31 15:38:00
2006 +0100
@@ -6,4 +6,12 @@
#define CPUID XEN_CPUID
#define CPUID_STR XEN_CPUID
+#ifndef __ASSEMBLY__
+static inline void mach_update_kernel_stack(unsigned long esp0,
+ unsigned short ss0)
+{
+ HYPERVISOR_stack_switch(ss0, esp0);
+}
+#endif
+
#endif /* __ASM_MACH_PROCESSOR_H */
diff -r 60dd30eed8f3 include/asm-i386/processor.h
--- a/include/asm-i386/processor.h Fri Mar 31 15:36:12 2006 +0100
+++ b/include/asm-i386/processor.h Fri Mar 31 15:38:00 2006 +0100
@@ -500,6 +500,7 @@ static inline void load_esp0(struct tss_
tss->ss1 = thread->sysenter_cs;
wrmsr(MSR_IA32_SYSENTER_CS, thread->sysenter_cs, 0);
}
+ mach_update_kernel_stack(tss->esp0, tss->ss0);
}
#define start_thread(regs, new_eip, new_esp) do { \
--
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|