[PATCH] platform/x86: intel-uncore-freq: Prevent driver loading in guests

Srinivas Pandruvada posted 1 patch 4 years ago
There is a newer version of this series
drivers/platform/x86/intel/uncore-frequency/uncore-frequency.c | 3 +++
1 file changed, 3 insertions(+)
[PATCH] platform/x86: intel-uncore-freq: Prevent driver loading in guests
Posted by Srinivas Pandruvada 4 years ago
Loading this driver in guests results in unchecked MSR access error for
MSR 0x620.

There is no use of reading and modifying package/die scoped uncore MSRs
in guests. So check for CPU feature X86_FEATURE_HYPERVISOR to prevent
loading of this driver in guests.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=215870
Suggested-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
---
 drivers/platform/x86/intel/uncore-frequency/uncore-frequency.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/platform/x86/intel/uncore-frequency/uncore-frequency.c b/drivers/platform/x86/intel/uncore-frequency/uncore-frequency.c
index c61f804dd44e..8f9c571d7257 100644
--- a/drivers/platform/x86/intel/uncore-frequency/uncore-frequency.c
+++ b/drivers/platform/x86/intel/uncore-frequency/uncore-frequency.c
@@ -212,6 +212,9 @@ static int __init intel_uncore_init(void)
 	const struct x86_cpu_id *id;
 	int ret;
 
+	if (cpu_feature_enabled(X86_FEATURE_HYPERVISOR))
+		return -ENODEV;
+
 	id = x86_match_cpu(intel_uncore_cpu_ids);
 	if (!id)
 		return -ENODEV;
-- 
2.31.1
Re: [PATCH] platform/x86: intel-uncore-freq: Prevent driver loading in guests
Posted by Hans de Goede 4 years ago
Hi,

On 4/21/22 20:41, Srinivas Pandruvada wrote:
> Loading this driver in guests results in unchecked MSR access error for
> MSR 0x620.
> 
> There is no use of reading and modifying package/die scoped uncore MSRs
> in guests. So check for CPU feature X86_FEATURE_HYPERVISOR to prevent
> loading of this driver in guests.
> 
> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=215870
> Suggested-by: Borislav Petkov <bp@suse.de>
> Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>

Thank you for your patch, I've applied this patch to my review-hans 
branch:
https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=review-hans

Note it will show up in my review-hans branch once I've pushed my
local branch there, which might take a while.

Once I've run some tests on this branch the patches there will be
added to the platform-drivers-x86/for-next branch and eventually
will be included in the pdx86 pull-request to Linus for the next
merge-window.

Regards,

Hans



> ---
>  drivers/platform/x86/intel/uncore-frequency/uncore-frequency.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/platform/x86/intel/uncore-frequency/uncore-frequency.c b/drivers/platform/x86/intel/uncore-frequency/uncore-frequency.c
> index c61f804dd44e..8f9c571d7257 100644
> --- a/drivers/platform/x86/intel/uncore-frequency/uncore-frequency.c
> +++ b/drivers/platform/x86/intel/uncore-frequency/uncore-frequency.c
> @@ -212,6 +212,9 @@ static int __init intel_uncore_init(void)
>  	const struct x86_cpu_id *id;
>  	int ret;
>  
> +	if (cpu_feature_enabled(X86_FEATURE_HYPERVISOR))
> +		return -ENODEV;
> +
>  	id = x86_match_cpu(intel_uncore_cpu_ids);
>  	if (!id)
>  		return -ENODEV;