2021-06-28 23:39:22

by Smita Koralahalli

[permalink] [raw]
Subject: [PATCH] EDAC/mce_amd: Do not load edac_mce_amd module on guests

Hypervisors may not expose SMCA feature to the guest.

Check for X86_FEATURE_HYPERVISOR on entry in mce_amd_init() and return
-ENODEV if set.

Suggested-by: Borislav Petkov <[email protected]>
Signed-off-by: Smita Koralahalli <[email protected]>
---
drivers/edac/mce_amd.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/drivers/edac/mce_amd.c b/drivers/edac/mce_amd.c
index 5dd905a3f30c..1a1629166aa3 100644
--- a/drivers/edac/mce_amd.c
+++ b/drivers/edac/mce_amd.c
@@ -1176,6 +1176,9 @@ static int __init mce_amd_init(void)
c->x86_vendor != X86_VENDOR_HYGON)
return -ENODEV;

+ if (cpu_feature_enabled(X86_FEATURE_HYPERVISOR))
+ return -ENODEV;
+
if (boot_cpu_has(X86_FEATURE_SMCA)) {
xec_mask = 0x3f;
goto out;
--
2.17.1


2021-07-08 20:42:10

by Yazen Ghannam

[permalink] [raw]
Subject: Re: [PATCH] EDAC/mce_amd: Do not load edac_mce_amd module on guests

On Mon, Jun 28, 2021 at 12:27:40PM -0500, Smita Koralahalli wrote:
> Hypervisors may not expose SMCA feature to the guest.
>
> Check for X86_FEATURE_HYPERVISOR on entry in mce_amd_init() and return
> -ENODEV if set.
>
> Suggested-by: Borislav Petkov <[email protected]>
> Signed-off-by: Smita Koralahalli <[email protected]>
> ---
> drivers/edac/mce_amd.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/edac/mce_amd.c b/drivers/edac/mce_amd.c
> index 5dd905a3f30c..1a1629166aa3 100644
> --- a/drivers/edac/mce_amd.c
> +++ b/drivers/edac/mce_amd.c
> @@ -1176,6 +1176,9 @@ static int __init mce_amd_init(void)
> c->x86_vendor != X86_VENDOR_HYGON)
> return -ENODEV;
>
> + if (cpu_feature_enabled(X86_FEATURE_HYPERVISOR))
> + return -ENODEV;
> +
> if (boot_cpu_has(X86_FEATURE_SMCA)) {
> xec_mask = 0x3f;
> goto out;
> --

Looks good to me.

Reviewed-by: Yazen Ghannam <[email protected]>

Thanks,
Yazen

2021-07-23 18:22:49

by Kim Phillips

[permalink] [raw]
Subject: Re: [PATCH] EDAC/mce_amd: Do not load edac_mce_amd module on guests

On 6/28/21 12:27 PM, Smita Koralahalli wrote:
> Hypervisors may not expose SMCA feature to the guest.
>
> Check for X86_FEATURE_HYPERVISOR on entry in mce_amd_init() and return
> -ENODEV if set.
>
> Suggested-by: Borislav Petkov <[email protected]>
> Signed-off-by: Smita Koralahalli <[email protected]>
> ---

This gets rid of the "Huh? What family is it: 0x19?!" messages in my
F19h hosted guest:


Tested-by: Kim Phillips <[email protected]>


Thanks,

Kim

2021-08-09 10:51:10

by Borislav Petkov

[permalink] [raw]
Subject: Re: [PATCH] EDAC/mce_amd: Do not load edac_mce_amd module on guests

On Mon, Jun 28, 2021 at 12:27:40PM -0500, Smita Koralahalli wrote:
> Hypervisors may not expose SMCA feature to the guest.
>
> Check for X86_FEATURE_HYPERVISOR on entry in mce_amd_init() and return
> -ENODEV if set.
>
> Suggested-by: Borislav Petkov <[email protected]>
> Signed-off-by: Smita Koralahalli <[email protected]>
> ---
> drivers/edac/mce_amd.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/edac/mce_amd.c b/drivers/edac/mce_amd.c
> index 5dd905a3f30c..1a1629166aa3 100644
> --- a/drivers/edac/mce_amd.c
> +++ b/drivers/edac/mce_amd.c
> @@ -1176,6 +1176,9 @@ static int __init mce_amd_init(void)
> c->x86_vendor != X86_VENDOR_HYGON)
> return -ENODEV;
>
> + if (cpu_feature_enabled(X86_FEATURE_HYPERVISOR))
> + return -ENODEV;
> +
> if (boot_cpu_has(X86_FEATURE_SMCA)) {
> xec_mask = 0x3f;
> goto out;
> --
> 2.17.1

Applied, thanks.

--
Regards/Gruss,
Boris.

https://people.kernel.org/tglx/notes-about-netiquette