Following build warning noticed on arm64, Reported-by: Linux Kernel Functional Testing <lkft@xxxxxxxxxx> suspecting commit: KVM: arm64: PMU: Fix GET_ONE_REG for vPMC regs to return the current value commit 9228b26194d1cc00449f12f306f53ef2e234a55b upstream. Build log: ---------- arch/arm64/kvm/sys_regs.c:1671:43: error: initialization of 'int (*)(struct kvm_vcpu *, const struct sys_reg_desc *, const struct kvm_one_reg *, void *)' from incompatible pointer type 'int (*)(struct kvm_vcpu *, const struct sys_reg_desc *, u64 *)' {aka 'int (*)(struct kvm_vcpu *, const struct sys_reg_desc *, long long unsigned int *)'} [-Werror=incompatible-pointer-types] 1671 | .reg = PMCCNTR_EL0, .get_user = get_pmu_evcntr}, | ^~~~~~~~~~~~~~ arch/arm64/kvm/sys_regs.c:1671:43: note: (near initialization for 'sys_reg_descs[224].__get_user') arch/arm64/kvm/sys_regs.c:999:48: error: initialization of 'int (*)(struct kvm_vcpu *, const struct sys_reg_desc *, const struct kvm_one_reg *, void *)' from incompatible pointer type 'int (*)(struct kvm_vcpu *, const struct sys_reg_desc *, u64 *)' {aka 'int (*)(struct kvm_vcpu *, const struct sys_reg_desc *, long long unsigned int *)'} [-Werror=incompatible-pointer-types] 999 | .reset = reset_pmevcntr, .get_user = get_pmu_evcntr, \ | ^~~~~~~~~~~~~~ arch/arm64/kvm/sys_regs.c:1768:9: note: in expansion of macro 'PMU_PMEVCNTR_EL0' 1768 | PMU_PMEVCNTR_EL0(0), | ^~~~~~~~~~~~~~~~ arch/arm64/kvm/sys_regs.c:999:48: note: (near initialization for 'sys_reg_descs[307].__get_user') 999 | .reset = reset_pmevcntr, .get_user = get_pmu_evcntr, \ | ^~~~~~~~~~~~~~ arch/arm64/kvm/sys_regs.c:1768:9: note: in expansion of macro 'PMU_PMEVCNTR_EL0' 1768 | PMU_PMEVCNTR_EL0(0), | ^~~~~~~~~~~~~~~~ arch/arm64/kvm/sys_regs.c:999:48: error: initialization of 'int (*)(struct kvm_vcpu *, const struct sys_reg_desc *, const struct kvm_one_reg *, void *)' from incompatible pointer type 'int (*)(struct kvm_vcpu *, const struct sys_reg_desc *, u64 *)' {aka 'int (*)(struct kvm_vcpu *, const struct sys_reg_desc *, long long unsigned int *)'} [-Werror=incompatible-pointer-types] 999 | .reset = reset_pmevcntr, .get_user = get_pmu_evcntr, \ | ^~~~~~~~~~~~~~ arch/arm64/kvm/sys_regs.c:1769:9: note: in expansion of macro 'PMU_PMEVCNTR_EL0' 1769 | PMU_PMEVCNTR_EL0(1), | ^~~~~~~~~~~~~~~~ arch/arm64/kvm/sys_regs.c:999:48: note: (near initialization for 'sys_reg_descs[308].__get_user') 999 | .reset = reset_pmevcntr, .get_user = get_pmu_evcntr, \ | ^~~~~~~~~~~~~~ arch/arm64/kvm/sys_regs.c:1769:9: note: in expansion of macro 'PMU_PMEVCNTR_EL0' 1769 | PMU_PMEVCNTR_EL0(1), | ^~~~~~~~~~~~~~~~ arch/arm64/kvm/sys_regs.c:999:48: error: initialization of 'int (*)(struct kvm_vcpu *, const struct sys_reg_desc *, const struct kvm_one_reg *, void *)' from incompatible pointer type 'int (*)(struct kvm_vcpu *, const struct sys_reg_desc *, u64 *)' {aka 'int (*)(struct kvm_vcpu *, const struct sys_reg_desc *, long long unsigned int *)'} [-Werror=incompatible-pointer-types] 999 | .reset = reset_pmevcntr, .get_user = get_pmu_evcntr, \ | ^~~~~~~~~~~~~~ Test history: https://qa-reports.linaro.org/lkft/linux-stable-rc-queues-queue_5.15/build/v5.15.105-89-gcc2d591a5bc2/testrun/16027152/suite/build/test/gcc-11-defconfig-lkftconfig/history/ build_name : gcc-11-defconfig-lkftconfig config : https://storage.tuxsuite.com/public/linaro/lkft/builds/2NuUVvMlXSgSoQEcLJRppFfOniR/config download_url : https://storage.tuxsuite.com/public/linaro/lkft/builds/2NuUVvMlXSgSoQEcLJRppFfOniR/ git_describe : v5.15.105-89-gcc2d591a5bc2 git_repo : https://gitlab.com/Linaro/lkft/mirrors/stable/linux-stable-rc-queues git_sha : cc2d591a5bc25e770c332a191509830e883b1a28 git_short_log : cc2d591a5bc2 ("KVM: arm64: Disable interrupts while walking userspace PTs") -- Linaro LKFT https://lkft.linaro.org