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)
{
--
| Parag Warudkar | BUG: soft lockup - CPU#1 stuck for 15s! [swapper:0] |
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| Yinghai Lu | Re: [GIT *] Allow request_firmware() to be satisfied from in-kernel, use it in mor... |
| Linus Torvalds | Linux 2.6.27-rc8 |
git: | |
| Jakub Narebski | Re: VCS comparison table |
| Ismail | Re: [ANNOUNCE] GIT 1.5.3-rc4 |
| Toby White | Using Filemerge.app as a git-diff viewer |
| Wincent Colaiuta | Re: [ANNOUNCE] GIT 1.5.4 |
| Jeff Quast | Re: OpenBSD speed on desktops |
| Richard Stallman | Real men don't attack straw men |
| Daniel | GPRS/EDGE modems to use with a notebook |
| Jake Conk | Setting up ccd RAID 1 Howto OpenBSD 4.1 |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Jeff Garzik | Re: [bug?] tg3: Failed to load firmware "tigon/tg3_tso.bin" |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| David Miller | Re: [PATCH 20/31]: pkt_sched: Perform bulk of qdisc destruction in RCU. |
