aboutsummaryrefslogtreecommitdiff
path: root/include/asm-x86
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-x86')
-rw-r--r--include/asm-x86/msr.h6
-rw-r--r--include/asm-x86/paravirt.h2
2 files changed, 4 insertions, 4 deletions
diff --git a/include/asm-x86/msr.h b/include/asm-x86/msr.h
index b6262e99fc8..effb7319c0a 100644
--- a/include/asm-x86/msr.h
+++ b/include/asm-x86/msr.h
@@ -94,10 +94,10 @@ static inline unsigned long long native_read_tsc(void)
return val;
}
-static inline unsigned long long native_read_pmc(void)
+static inline unsigned long long native_read_pmc(int counter)
{
unsigned long long val;
- asm volatile("rdpmc" : "=A" (val));
+ asm volatile("rdpmc" : "=A" (val) : "c" (counter));
return val;
}
@@ -154,7 +154,7 @@ static inline int wrmsr_safe(u32 __msr, u32 __low, u32 __high)
#define rdpmc(counter,low,high) \
do { \
- u64 _l = native_read_pmc(); \
+ u64 _l = native_read_pmc(counter); \
(low) = (u32)_l; \
(high) = (u32)(_l >> 32); \
} while(0)
diff --git a/include/asm-x86/paravirt.h b/include/asm-x86/paravirt.h
index d1780e32722..4782be68d0f 100644
--- a/include/asm-x86/paravirt.h
+++ b/include/asm-x86/paravirt.h
@@ -118,7 +118,7 @@ struct pv_cpu_ops {
int (*write_msr)(unsigned int msr, u64 val);
u64 (*read_tsc)(void);
- u64 (*read_pmc)(void);
+ u64 (*read_pmc)(int counter);
/* These two are jmp to, not actually called. */
void (*irq_enable_syscall_ret)(void);