aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/asm-x86/msr.h
diff options
context:
space:
mode:
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>2006-02-14 16:23:43 +0100
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>2006-02-14 16:23:43 +0100
commit193af2f5c726788dd836c42561550029eadd7ce6 (patch)
tree5af8d09c5aff63c7e0205755acab8ee26c616274 /xen/include/asm-x86/msr.h
parent45fb1a8c3fcff16ba782347c450b748e35b4829b (diff)
downloadxen-193af2f5c726788dd836c42561550029eadd7ce6.tar.gz
xen-193af2f5c726788dd836c42561550029eadd7ce6.tar.bz2
xen-193af2f5c726788dd836c42561550029eadd7ce6.zip
Upgrade arch/x86/cpu/* files to their equivalents in
linux-2.6.16-rc2/arch/i386/kernel/cpu/*. Also include kernel taint tracking and include that information, and Xen release info, in our crash dumps. Signed-off-by: Keir Fraser <keir@xensource.com>
Diffstat (limited to 'xen/include/asm-x86/msr.h')
-rw-r--r--xen/include/asm-x86/msr.h14
1 files changed, 8 insertions, 6 deletions
diff --git a/xen/include/asm-x86/msr.h b/xen/include/asm-x86/msr.h
index 8b5ea950e1..932cfcabb5 100644
--- a/xen/include/asm-x86/msr.h
+++ b/xen/include/asm-x86/msr.h
@@ -28,34 +28,36 @@ static inline void wrmsrl(unsigned int msr, __u64 val)
wrmsr(msr, lo, hi);
}
-#define rdmsr_user(msr,val1,val2) ({\
+/* rdmsr with exception handling */
+#define rdmsr_safe(msr,val1,val2) ({\
int _rc; \
__asm__ __volatile__( \
"1: rdmsr\n2:\n" \
".section .fixup,\"ax\"\n" \
- "3: movl $1,%2\n; jmp 2b\n" \
+ "3: movl %5,%2\n; jmp 2b\n" \
".previous\n" \
".section __ex_table,\"a\"\n" \
" "__FIXUP_ALIGN"\n" \
" "__FIXUP_WORD" 1b,3b\n" \
".previous\n" \
: "=a" (val1), "=d" (val2), "=&r" (_rc) \
- : "c" (msr), "2" (0)); \
+ : "c" (msr), "2" (0), "i" (-EFAULT)); \
_rc; })
-#define wrmsr_user(msr,val1,val2) ({\
+/* wrmsr with exception handling */
+#define wrmsr_safe(msr,val1,val2) ({\
int _rc; \
__asm__ __volatile__( \
"1: wrmsr\n2:\n" \
".section .fixup,\"ax\"\n" \
- "3: movl $1,%0\n; jmp 2b\n" \
+ "3: movl %5,%0\n; jmp 2b\n" \
".previous\n" \
".section __ex_table,\"a\"\n" \
" "__FIXUP_ALIGN"\n" \
" "__FIXUP_WORD" 1b,3b\n" \
".previous\n" \
: "=&r" (_rc) \
- : "c" (msr), "a" (val1), "d" (val2), "0" (0)); \
+ : "c" (msr), "a" (val1), "d" (val2), "0" (0), "i" (-EFAULT)); \
_rc; })
#define rdtsc(low,high) \