login
Header Space

 
 

[PATCH] [5/7] Readd rdmsrl_safe

Score:
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: <andreas.herrmann3@...>, <tglx@...>, <mingo@...>, <linux-kernel@...>
Date: Tuesday, March 11, 2008 - 10:53 pm

RDMSR for 64bit values with exception handling.

Makes it easier to deal with 64bit valued MSRs. The old 64bit code
base had that too as checking_rdmsrl(), but it got dropped somehow. 

Needed for followup patch.

Signed-off-by: Andi Kleen <ak@suse.de>

---
 include/asm-x86/msr.h      |    3 +++
 include/asm-x86/paravirt.h |    4 ++++
 2 files changed, 7 insertions(+)

Index: linux/include/asm-x86/msr.h
===================================================================
--- linux.orig/include/asm-x86/msr.h
+++ linux/include/asm-x86/msr.h
@@ -150,6 +150,9 @@ static inline int wrmsr_safe(unsigned ms
 		__err;							\
 	})
 
+#define rdmsrl_safe(msr,p) \
+	({ int __err; *(p) = native_read_msr_safe(msr, &__err); __err; })
+
 #define rdtscl(low)						\
 	((low) = (u32)native_read_tsc())
 
Index: linux/include/asm-x86/paravirt.h
===================================================================
--- linux.orig/include/asm-x86/paravirt.h
+++ linux/include/asm-x86/paravirt.h
@@ -687,6 +687,10 @@ static inline int paravirt_write_msr(uns
 	(*b) = _l >> 32;			\
 	_err; })
 
+#define rdmsrl_safe(msr, p) ({			\
+	int _err;				\
+	*(p) = paravirt_read_msr(msr, &_err);	\
+	_err; })
 
 static inline u64 paravirt_read_tsc(void)
 {
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH] [1/7] Implement true end_pfn_mapped for 32bit, Andi Kleen, (Tue Mar 11, 10:53 pm)
[PATCH] [6/7] Split large page mapping for AMD TSEG, Andi Kleen, (Tue Mar 11, 10:53 pm)
Re: [PATCH] [6/7] Split large page mapping for AMD TSEG, Thomas Gleixner, (Tue Mar 25, 12:44 pm)
Re: [PATCH] [6/7] Split large page mapping for AMD TSEG, Thomas Gleixner, (Fri Mar 21, 1:55 pm)
Re: [PATCH] [6/7] Split large page mapping for AMD TSEG, Joerg Roedel, (Tue Mar 25, 7:56 am)
[PATCH] [5/7] Readd rdmsrl_safe, Andi Kleen, (Tue Mar 11, 10:53 pm)
Re: [PATCH] [5/7] Readd rdmsrl_safe, Thomas Gleixner, (Fri Mar 21, 1:06 pm)
[PATCH] Readd rdmsrl_safe v2, Andi Kleen, (Sat Mar 22, 5:59 am)
Re: [PATCH] [5/7] Readd rdmsrl_safe, Andi Kleen, (Fri Mar 21, 1:16 pm)
Re: [PATCH] [5/7] Readd rdmsrl_safe, Thomas Gleixner, (Fri Mar 21, 1:58 pm)
Re: [PATCH] [5/7] Readd rdmsrl_safe, Andi Kleen, (Fri Mar 21, 2:06 pm)
Re: [PATCH] [5/7] Readd rdmsrl_safe, Thomas Gleixner, (Fri Mar 21, 2:14 pm)
Re: [PATCH] [5/7] Readd rdmsrl_safe, Andi Kleen, (Fri Mar 21, 2:46 pm)
Re: [PATCH] [5/7] Readd rdmsrl_safe II, Andi Kleen, (Fri Mar 21, 2:48 pm)
[PATCH] [3/7] Add set_memory_4k to pageattr.c, Andi Kleen, (Tue Mar 11, 10:53 pm)
speck-geostationary