Re: [PATCH 1/3] xen/pv: allow pmu msr accesses to cause GP

From: Boris Ostrovsky
Date: Mon Sep 26 2022 - 16:10:16 EST



On 9/26/22 10:18 AM, Juergen Gross wrote:
bool pmu_msr_read(unsigned int msr, uint64_t *val, int *err)
{
if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL) {
- if (is_amd_pmu_msr(msr)) {
- if (!xen_amd_pmu_emulate(msr, val, 1))
- *val = native_read_msr_safe(msr, err);
- return true;
+ if (!is_amd_pmu_msr(msr))


You should be able to move vendor check inside is_<vendor>_pmu_msr().


-boris


+ return false;
+ if (!xen_amd_pmu_emulate(msr, val, 1)) {
+ *val = err ? native_read_msr_safe(msr, err)
+ : native_read_msr(msr);
}
+ return true;
} else {