From: Greg Kroah-Hartman Date: Tue, 11 Apr 2023 14:03:54 +0000 (+0200) Subject: drop queue-5.15/kvm-arm64-pmu-fix-get_one_reg-for-vpmc-regs-to-retur.patch X-Git-Tag: v5.15.107~17 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=05a28f616ee97f6e7d829860fc36d6824f1cc4e4;p=thirdparty%2Fkernel%2Fstable-queue.git drop queue-5.15/kvm-arm64-pmu-fix-get_one_reg-for-vpmc-regs-to-retur.patch --- diff --git a/queue-5.15/kvm-arm64-pmu-fix-get_one_reg-for-vpmc-regs-to-retur.patch b/queue-5.15/kvm-arm64-pmu-fix-get_one_reg-for-vpmc-regs-to-retur.patch deleted file mode 100644 index ac4174c6d0c..00000000000 --- a/queue-5.15/kvm-arm64-pmu-fix-get_one_reg-for-vpmc-regs-to-retur.patch +++ /dev/null @@ -1,84 +0,0 @@ -From 9fbc81f2e30dcfa51e1e617ccf2f17ccf0cfceac Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Sun, 12 Mar 2023 20:32:08 -0700 -Subject: KVM: arm64: PMU: Fix GET_ONE_REG for vPMC regs to return the current - value - -From: Reiji Watanabe - -[ Upstream commit 9228b26194d1cc00449f12f306f53ef2e234a55b ] - -Have KVM_GET_ONE_REG for vPMU counter (vPMC) registers (PMCCNTR_EL0 -and PMEVCNTR_EL0) return the sum of the register value in the sysreg -file and the current perf event counter value. - -Values of vPMC registers are saved in sysreg files on certain occasions. -These saved values don't represent the current values of the vPMC -registers if the perf events for the vPMCs count events after the save. -The current values of those registers are the sum of the sysreg file -value and the current perf event counter value. But, when userspace -reads those registers (using KVM_GET_ONE_REG), KVM returns the sysreg -file value to userspace (not the sum value). - -Fix this to return the sum value for KVM_GET_ONE_REG. - -Fixes: 051ff581ce70 ("arm64: KVM: Add access handler for event counter register") -Cc: stable@vger.kernel.org -Reviewed-by: Marc Zyngier -Signed-off-by: Reiji Watanabe -Link: https://lore.kernel.org/r/20230313033208.1475499-1-reijiw@google.com -Signed-off-by: Oliver Upton -Signed-off-by: Sasha Levin ---- - arch/arm64/kvm/sys_regs.c | 21 +++++++++++++++++++-- - 1 file changed, 19 insertions(+), 2 deletions(-) - -diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c -index c11612db4a371..c211f719c2474 100644 ---- a/arch/arm64/kvm/sys_regs.c -+++ b/arch/arm64/kvm/sys_regs.c -@@ -764,6 +764,22 @@ static bool pmu_counter_idx_valid(struct kvm_vcpu *vcpu, u64 idx) - return true; - } - -+static int get_pmu_evcntr(struct kvm_vcpu *vcpu, const struct sys_reg_desc *r, -+ u64 *val) -+{ -+ u64 idx; -+ -+ if (r->CRn == 9 && r->CRm == 13 && r->Op2 == 0) -+ /* PMCCNTR_EL0 */ -+ idx = ARMV8_PMU_CYCLE_IDX; -+ else -+ /* PMEVCNTRn_EL0 */ -+ idx = ((r->CRm & 3) << 3) | (r->Op2 & 7); -+ -+ *val = kvm_pmu_get_counter_value(vcpu, idx); -+ return 0; -+} -+ - static bool access_pmu_evcntr(struct kvm_vcpu *vcpu, - struct sys_reg_params *p, - const struct sys_reg_desc *r) -@@ -980,7 +996,7 @@ static bool access_pmuserenr(struct kvm_vcpu *vcpu, struct sys_reg_params *p, - /* Macro to expand the PMEVCNTRn_EL0 register */ - #define PMU_PMEVCNTR_EL0(n) \ - { PMU_SYS_REG(SYS_PMEVCNTRn_EL0(n)), \ -- .reset = reset_pmevcntr, \ -+ .reset = reset_pmevcntr, .get_user = get_pmu_evcntr, \ - .access = access_pmu_evcntr, .reg = (PMEVCNTR0_EL0 + n), } - - /* Macro to expand the PMEVTYPERn_EL0 register */ -@@ -1651,7 +1667,8 @@ static const struct sys_reg_desc sys_reg_descs[] = { - { PMU_SYS_REG(SYS_PMCEID1_EL0), - .access = access_pmceid, .reset = NULL }, - { PMU_SYS_REG(SYS_PMCCNTR_EL0), -- .access = access_pmu_evcntr, .reset = reset_unknown, .reg = PMCCNTR_EL0 }, -+ .access = access_pmu_evcntr, .reset = reset_unknown, -+ .reg = PMCCNTR_EL0, .get_user = get_pmu_evcntr}, - { PMU_SYS_REG(SYS_PMXEVTYPER_EL0), - .access = access_pmu_evtyper, .reset = NULL }, - { PMU_SYS_REG(SYS_PMXEVCNTR_EL0), --- -2.39.2 - diff --git a/queue-5.15/series b/queue-5.15/series index bae8f9202bb..4a473f8740c 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -1,4 +1,3 @@ -kvm-arm64-pmu-fix-get_one_reg-for-vpmc-regs-to-retur.patch soc-sifive-ccache-rename-sifive-l2-cache-to-composab.patch soc-sifive-ccache-determine-the-cache-level-from-dts.patch soc-sifive-ccache-reduce-printing-on-init.patch