diff options
-rw-r--r-- | include/asm-x86/msr.h | 8 | ||||
-rw-r--r-- | include/asm-x86/paravirt.h | 7 |
2 files changed, 15 insertions, 0 deletions
diff --git a/include/asm-x86/msr.h b/include/asm-x86/msr.h index 2c698a2e81f9..3707650a169b 100644 --- a/include/asm-x86/msr.h +++ b/include/asm-x86/msr.h | |||
@@ -150,6 +150,14 @@ static inline int wrmsr_safe(unsigned msr, unsigned low, unsigned high) | |||
150 | __err; \ | 150 | __err; \ |
151 | }) | 151 | }) |
152 | 152 | ||
153 | static inline int rdmsrl_safe(unsigned msr, unsigned long long *p) | ||
154 | { | ||
155 | int err; | ||
156 | |||
157 | *p = native_read_msr_safe(msr, &err); | ||
158 | return err; | ||
159 | } | ||
160 | |||
153 | #define rdtscl(low) \ | 161 | #define rdtscl(low) \ |
154 | ((low) = (u32)native_read_tsc()) | 162 | ((low) = (u32)native_read_tsc()) |
155 | 163 | ||
diff --git a/include/asm-x86/paravirt.h b/include/asm-x86/paravirt.h index 0c23f7940bc4..3d419398499b 100644 --- a/include/asm-x86/paravirt.h +++ b/include/asm-x86/paravirt.h | |||
@@ -693,6 +693,13 @@ do { \ | |||
693 | _err; \ | 693 | _err; \ |
694 | }) | 694 | }) |
695 | 695 | ||
696 | static inline int rdmsrl_safe(unsigned msr, unsigned long long *p) | ||
697 | { | ||
698 | int err; | ||
699 | |||
700 | *p = paravirt_read_msr(msr, &err); | ||
701 | return err; | ||
702 | } | ||
696 | 703 | ||
697 | static inline u64 paravirt_read_tsc(void) | 704 | static inline u64 paravirt_read_tsc(void) |
698 | { | 705 | { |