Commit 474e7218 authored by Mario Limonciello's avatar Mario Limonciello
Browse files

cpufreq/amd-pstate: Only update the cached value in msr_set_epp() on success



If writing the MSR MSR_AMD_CPPC_REQ fails then the cached value in the
amd_cpudata structure should not be updated.

Reviewed-by: default avatarGautham R. Shenoy <gautham.shenoy@amd.com>
Link: https://lore.kernel.org/r/20241209185248.16301-8-mario.limonciello@amd.com


Signed-off-by: default avatarMario Limonciello <mario.limonciello@amd.com>
parent 88a95ba0
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -278,11 +278,15 @@ static int msr_set_epp(struct amd_cpudata *cpudata, u32 epp)

	value &= ~AMD_CPPC_EPP_PERF_MASK;
	value |= FIELD_PREP(AMD_CPPC_EPP_PERF_MASK, epp);
	WRITE_ONCE(cpudata->cppc_req_cached, value);

	ret = wrmsrl_on_cpu(cpudata->cpu, MSR_AMD_CPPC_REQ, value);
	if (!ret)
	if (ret) {
		pr_err("failed to set energy perf value (%d)\n", ret);
		return ret;
	}

	cpudata->epp_cached = epp;
	WRITE_ONCE(cpudata->cppc_req_cached, value);

	return ret;
}