|
@@ -46,6 +46,8 @@ static inline unsigned int nmi_perfctr_msr_to_bit(unsigned int msr)
|
|
|
/* returns the bit offset of the performance counter register */
|
|
|
switch (boot_cpu_data.x86_vendor) {
|
|
|
case X86_VENDOR_AMD:
|
|
|
+ if (msr >= MSR_F15H_PERF_CTR)
|
|
|
+ return (msr - MSR_F15H_PERF_CTR) >> 1;
|
|
|
return msr - MSR_K7_PERFCTR0;
|
|
|
case X86_VENDOR_INTEL:
|
|
|
if (cpu_has(&boot_cpu_data, X86_FEATURE_ARCH_PERFMON))
|
|
@@ -70,6 +72,8 @@ static inline unsigned int nmi_evntsel_msr_to_bit(unsigned int msr)
|
|
|
/* returns the bit offset of the event selection register */
|
|
|
switch (boot_cpu_data.x86_vendor) {
|
|
|
case X86_VENDOR_AMD:
|
|
|
+ if (msr >= MSR_F15H_PERF_CTL)
|
|
|
+ return (msr - MSR_F15H_PERF_CTL) >> 1;
|
|
|
return msr - MSR_K7_EVNTSEL0;
|
|
|
case X86_VENDOR_INTEL:
|
|
|
if (cpu_has(&boot_cpu_data, X86_FEATURE_ARCH_PERFMON))
|