Re: [PATCH] x86/mce: Report unavailable MCE support at informational level

From: Naman Jain

Date: Mon Oct 05 2026 - 12:04:22 EST


On Wed, Sep 23, 2026 at 10:30:33AM -0700, Dexuan Cui wrote:
> mcheck_init_device() reports an error and returns -EIO when
> mce_available() is false. However, MCE support being unavailable does
> not necessarily indicate an initialization failure.
> For example, a TDX guest with TD_CTLS.REDUCE_VE set and
> FEATURE_PARAVIRT_CTLS.MCA clear does not enumerate the MCE and MCA
> CPUID capabilities. This is an expected configuration, but it causes
> the kernel to print:
>
> mce: Unable to init MCE device (rc: -5)
>
> MCE can also be unavailable because it was explicitly disabled with
> mce=off or nomce. When it was disabled due to an earlier initialization
> problem, the relevant path already reports the reason.
> Report MCE unavailability at informational level and return -ENODEV
> directly instead of routing it through the common error path.
>
> Signed-off-by: Dexuan Cui <decui@xxxxxxxxxxxxx>
> ---
> arch/x86/kernel/cpu/mce/core.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/x86/kernel/cpu/mce/core.c b/arch/x86/kernel/cpu/mce/core.c
> index f3a793e3a6c8..24ac10075263 100644
> --- a/arch/x86/kernel/cpu/mce/core.c
> +++ b/arch/x86/kernel/cpu/mce/core.c
> @@ -2825,8 +2825,8 @@ static __init int mcheck_init_device(void)
> MAYBE_BUILD_BUG_ON(__VIRTUAL_MASK_SHIFT >= 63);
>
> if (!mce_available(&boot_cpu_data)) {
> - err = -EIO;
> - goto err_out;
> + pr_info("MCE is unavailable\n");
> + return -ENODEV;
> }
>
> if (!zalloc_cpumask_var(&mce_device_initialized, GFP_KERNEL)) {

LGTM.

Reviewed-by: Naman Jain <namjain@xxxxxxxxxxxxxxxxxxx>

Regards,
Naman Jain