All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Teddy Astie" <teddy.astie@vates.tech>
To: "Ariadne Conill" <ariadne@ariadne.space>, linux-kernel@vger.kernel.org
Cc: mario.limonciello@amd.com, darwi@linutronix.de,
	sandipan.das@amd.com, kai.huang@intel.com, me@mixaill.net,
	yazen.ghannam@amd.com, riel@surriel.com, peterz@infradead.org,
	hpa@zytor.com, x86@kernel.org, tglx@linutronix.de,
	mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com,
	xen-devel@lists.xenproject.org, stable@vger.kernel.org
Subject: Re: [PATCH] x86/CPU/AMD: avoid printing reset reasons on Xen domU
Date: Fri, 19 Dec 2025 16:32:04 +0000	[thread overview]
Message-ID: <dbe68678-0bc4-483f-aef3-e4c7462bcaff@vates.tech> (raw)
In-Reply-To: <20251219010131.12659-1-ariadne@ariadne.space>

Le 19/12/2025 à 02:04, Ariadne Conill a écrit :
> Xen domU cannot access the given MMIO address for security reasons,
> resulting in a failed hypercall in ioremap() due to permissions.
>
> Fixes: ab8131028710 ("x86/CPU/AMD: Print the reason for the last reset")
> Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
> Cc: xen-devel@lists.xenproject.org
> Cc: stable@vger.kernel.org
> ---
>   arch/x86/kernel/cpu/amd.c | 6 ++++++
>   1 file changed, 6 insertions(+)
>
> diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
> index a6f88ca1a6b4..99308fba4d7d 100644
> --- a/arch/x86/kernel/cpu/amd.c
> +++ b/arch/x86/kernel/cpu/amd.c
> @@ -29,6 +29,8 @@
>   # include <asm/mmconfig.h>
>   #endif
>
> +#include <xen/xen.h>
> +
>   #include "cpu.h"
>
>   u16 invlpgb_count_max __ro_after_init = 1;
> @@ -1333,6 +1335,10 @@ static __init int print_s5_reset_status_mmio(void)
>   	if (!cpu_feature_enabled(X86_FEATURE_ZEN))
>   		return 0;
>
> +	/* Xen PV domU cannot access hardware directly, so bail for domU case */
> +	if (cpu_feature_enabled(X86_FEATURE_XENPV) && !xen_initial_domain())
> +		return 0;
> +
>   	addr = ioremap(FCH_PM_BASE + FCH_PM_S5_RESET_STATUS, sizeof(value));
>   	if (!addr)
>   		return 0;

Such MMIO only has a meaning in a physical machine, but the feature
check is bogus as being on Zen arch is not enough for ensuring this.

I think this also translates in most hypervisors with odd reset codes
being reported; without being specific to Xen PV (Zen CPU is
unfortunately not enough to ensuring such MMIO exists).

Aside that, attempting unexpected MMIO in a SEV-ES/SNP guest can cause
weird problems since they may not handled MMIO-NAE and could lead the
hypervisor to crash the guest instead (unexpected NPF).

Teddy


--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



WARNING: multiple messages have this Message-ID (diff)
From: "Teddy Astie" <teddy.astie@vates.tech>
To: "Ariadne Conill" <ariadne@ariadne.space>, linux-kernel@vger.kernel.org
Cc: mario.limonciello@amd.com, darwi@linutronix.de,
	sandipan.das@amd.com, kai.huang@intel.com, me@mixaill.net,
	yazen.ghannam@amd.com, riel@surriel.com, peterz@infradead.org,
	hpa@zytor.com, x86@kernel.org, tglx@linutronix.de,
	mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com,
	xen-devel@lists.xenproject.org, stable@vger.kernel.org
Subject: Re: [PATCH] x86/CPU/AMD: avoid printing reset reasons on Xen domU
Date: Fri, 19 Dec 2025 16:32:03 +0000	[thread overview]
Message-ID: <dbe68678-0bc4-483f-aef3-e4c7462bcaff@vates.tech> (raw)
In-Reply-To: <20251219010131.12659-1-ariadne@ariadne.space>

Le 19/12/2025 à 02:04, Ariadne Conill a écrit :
> Xen domU cannot access the given MMIO address for security reasons,
> resulting in a failed hypercall in ioremap() due to permissions.
>
> Fixes: ab8131028710 ("x86/CPU/AMD: Print the reason for the last reset")
> Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
> Cc: xen-devel@lists.xenproject.org
> Cc: stable@vger.kernel.org
> ---
>   arch/x86/kernel/cpu/amd.c | 6 ++++++
>   1 file changed, 6 insertions(+)
>
> diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
> index a6f88ca1a6b4..99308fba4d7d 100644
> --- a/arch/x86/kernel/cpu/amd.c
> +++ b/arch/x86/kernel/cpu/amd.c
> @@ -29,6 +29,8 @@
>   # include <asm/mmconfig.h>
>   #endif
>
> +#include <xen/xen.h>
> +
>   #include "cpu.h"
>
>   u16 invlpgb_count_max __ro_after_init = 1;
> @@ -1333,6 +1335,10 @@ static __init int print_s5_reset_status_mmio(void)
>   	if (!cpu_feature_enabled(X86_FEATURE_ZEN))
>   		return 0;
>
> +	/* Xen PV domU cannot access hardware directly, so bail for domU case */
> +	if (cpu_feature_enabled(X86_FEATURE_XENPV) && !xen_initial_domain())
> +		return 0;
> +
>   	addr = ioremap(FCH_PM_BASE + FCH_PM_S5_RESET_STATUS, sizeof(value));
>   	if (!addr)
>   		return 0;

Such MMIO only has a meaning in a physical machine, but the feature
check is bogus as being on Zen arch is not enough for ensuring this.

I think this also translates in most hypervisors with odd reset codes
being reported; without being specific to Xen PV (Zen CPU is
unfortunately not enough to ensuring such MMIO exists).

Aside that, attempting unexpected MMIO in a SEV-ES/SNP guest can cause
weird problems since they may not handled MMIO-NAE and could lead the
hypervisor to crash the guest instead (unexpected NPF).

Teddy


--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




  parent reply	other threads:[~2025-12-19 16:32 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-19  1:01 [PATCH] x86/CPU/AMD: avoid printing reset reasons on Xen domU Ariadne Conill
2025-12-19  3:56 ` Borislav Petkov
2025-12-19 16:09   ` Sean Christopherson
2025-12-19 16:26     ` Andrew Cooper
2025-12-19 17:36       ` Sean Christopherson
2025-12-19 23:14         ` Borislav Petkov
2025-12-19 22:18     ` Ariadne Conill
2025-12-19 23:16     ` Borislav Petkov
2025-12-19 23:19     ` Ariadne Conill
2025-12-19 16:32 ` Teddy Astie [this message]
2025-12-19 16:32   ` Teddy Astie
2025-12-19 17:38   ` Sean Christopherson
2025-12-20  1:44     ` Teddy Astie
2025-12-20  1:44       ` Teddy Astie
2025-12-22 15:46       ` Sean Christopherson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=dbe68678-0bc4-483f-aef3-e4c7462bcaff@vates.tech \
    --to=teddy.astie@vates.tech \
    --cc=ariadne@ariadne.space \
    --cc=bp@alien8.de \
    --cc=darwi@linutronix.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=hpa@zytor.com \
    --cc=kai.huang@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mario.limonciello@amd.com \
    --cc=me@mixaill.net \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=riel@surriel.com \
    --cc=sandipan.das@amd.com \
    --cc=stable@vger.kernel.org \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    --cc=xen-devel@lists.xenproject.org \
    --cc=yazen.ghannam@amd.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.