Re: [PATCH] intel_pstate: Fix MSR_CONFIG_TDP_x addressing in core_get_max_pstate

From: Srinivas Pandruvada
Date: Fri Jul 08 2016 - 15:40:39 EST


On Fri, 2016-07-08 at 20:42 +0200, Jan Kiszka wrote:
> If MSR_CONFIG_TDP_CONTROL is locked, we currently try to address some
> MSR 0x80000648 or so. Mask out the relevant level bits 0 and 1.
>
> Found while running over the Jailhouse hypervisor which became upset
> about this strange MSR index.
>
> Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx>
Acked-by: Srinivas Pandruvada <srinivas.pandruvada@xxxxxxxxxxxxxxx>

> ---
> Âdrivers/cpufreq/intel_pstate.c | 2 +-
> Â1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/cpufreq/intel_pstate.c
> b/drivers/cpufreq/intel_pstate.c
> index 1fa1a32..1b15917 100644
> --- a/drivers/cpufreq/intel_pstate.c
> +++ b/drivers/cpufreq/intel_pstate.c
> @@ -944,7 +944,7 @@ static int core_get_max_pstate(void)
> Â if (err)
> Â goto skip_tar;
> Â
> - tdp_msr = MSR_CONFIG_TDP_NOMINAL + tdp_ctrl;
> + tdp_msr = MSR_CONFIG_TDP_NOMINAL + (tdp_ctrl
> & 0x3);
> Â err = rdmsrl_safe(tdp_msr, &tdp_ratio);
> Â if (err)
> Â goto skip_tar;