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
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
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
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