From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-oo1-f72.google.com (mail-oo1-f72.google.com [209.85.161.72]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 625E1314B6D for ; Mon, 17 Aug 2026 04:21:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.161.72 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786940467; cv=none; b=MKq7PwrJFlRfws9NKBrUOjDx8UXS4vieA9He/pGrSHJJ0rMy1/imRNjeLLD1giz9maRECKnRDxh3dqA5tTxIu6DZlIJuKi4cFN0lR3R+jn1VdMGSMCe1/xYWdQBAxB6V8oipqDiMJXtJqafzO/hxRuXnjtz7N3BCcipAJrAEkOQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786940467; c=relaxed/simple; bh=svYz+QsX7dtpedtqHqww6ZTpPVUveypQSsJmW25Hjvg=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=Xf6X/3rlb2g4/A/MtMyagycG9RzFdemMPfcQ/DnMDdlw7j+0ftcI06bJtbvuEg9S1siQSC63xtBGlnMDJ4yQUMZtT0JJWpQd2FAVmOSSWh2N2tXH8+lE98pHfu/i+eQbOX8Hhj+yigtr/TICtWg+iTTx8J81ECDxu7YhwK7w88k= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--avagin.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=eXjYP7ag; arc=none smtp.client-ip=209.85.161.72 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--avagin.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="eXjYP7ag" Received: by mail-oo1-f72.google.com with SMTP id 006d021491bc7-6aae90de0c1so3519419eaf.0 for ; Sun, 16 Aug 2026 21:21:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1786940460; x=1787545260; darn=lists.linux.dev; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=CoyS/Te2F5yF1AVsXNnrALUu84hJAgdlObRwg/dPksI=; b=eXjYP7aguOBOLE++WN8tONxu0OYCFcnTYHY9xKeTyaRdB6RkiKTf2DmGkIwPFwvff/ GqZmKz5IenEviUh1XW9RR/MfsKaoXvUepoakAcnk0ROVFMEiwloz5BIBW1E9oolmuHpj D089nKnCVMWmEUJcZJc7/SjvaFCqjVQTWlq26FpaDEZV5lrAoEq7cTyN6PGkUxWI86B2 Slp6PEWccl2zToZU3+RvYXZPZJKySwkTsO4SubyGj9/1B1xtlPQRw7bjnjo8SjQa4jiT 6bt1haVDyP/hKEg1wvSnad84IJvl5oKngCD0XI+cKWVCB5PlkmvxK3b1Ul0P4h9p3XCM 8E0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786940460; x=1787545260; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=CoyS/Te2F5yF1AVsXNnrALUu84hJAgdlObRwg/dPksI=; b=MKwEUtldJEbtZ3VV9V2/wFYnL4ThXOdEJuGle7ZbZ260h9KWL49Htqjh/fIiOyn/NX jZ4UIU95DbqwmuB2LEHgGU6aFoCqOjKTkS1DSCE/zyAduODGe8dHSksA/fV1ADEinNr1 kEe0jjfIxJ5BpngeSFbNay+PmWB+J+sjsQ8RkZnoSNfMrzGOOgvSNEevqVnej9dFeSct ZBE9wm6Lopt7rG53NScCB9FxZexwxLIqnhSqQUK6THjHEWKJXlFuhK4QqUACzV7u8rtv wtEOpi2FzkBrGQVj40qKj6UGqfPkGWjaHEpobbJoPjoUhuWYztdi8ynMfdFgvPqu7EKo c2Iw== X-Forwarded-Encrypted: i=1; AHgh+RpZmG88N3Kn00wp/iHnHa6lwlvRyG1EFs/KpxBUpfuMfmf9Z6IqQxadEGBfke9HkiN0jhJb@lists.linux.dev X-Gm-Message-State: AOJu0YzZd17lXExFEcX9VL7dNaUHYtSCKvPJLODrwz79Mpz8Ht4UpEyB lFA9Pa1yTMcVakDcbbSZj5DNfTg7qBeWi1B+LZnvvuLh8Xwv8suTtZtkU7SgI9UsxyxTMGRIxqn oD5Il/A== X-Received: from ilbeo25-n2.prod.google.com ([2002:a05:6e02:2919:20b0:509:545b:77b5]) (user=avagin job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6820:2d03:b0:6a9:fa7f:faaf with SMTP id 006d021491bc7-6b0c5a8f072mr17604962eaf.5.1786940460025; Sun, 16 Aug 2026 21:21:00 -0700 (PDT) Date: Mon, 17 Aug 2026 04:20:44 +0000 In-Reply-To: <20260817042048.1579415-1-avagin@google.com> Precedence: bulk X-Mailing-List: criu@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260817042048.1579415-1-avagin@google.com> X-Mailer: git-send-email 2.55.0.691.gc56d675ccc-goog Message-ID: <20260817042048.1579415-5-avagin@google.com> Subject: [PATCH 4/8] x86/fpu: Document reasoning of FX-only fallback From: Andrei Vagin To: Thomas Gleixner , Ingo Molnar , Borislav Petkov , "Chang S. Bae" Cc: linux-kernel@vger.kernel.org, criu@lists.linux.dev, Dave Hansen , x86@kernel.org, Andrei Vagin , Alexander Mikhalitsyn , "H. Peter Anvin" Content-Type: text/plain; charset="UTF-8" Add a comment to check_xstate_in_sigframe() to explain reasoning behind falling back to the FX-only state when signal frame metadata is inconsistent. The fallback is intended to preserve backward compatibility with legacy user-space processes that are not aware of XSAVE states and might only fill or copy just the legacy FP state. This fallback is dangerous as it can trigger silent corruptions of user-space state by resetting extended registers if the process was using them but the frame metadata was malformed. Reviewed-by: Alexander Mikhalitsyn Signed-off-by: Andrei Vagin --- arch/x86/kernel/fpu/signal.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/x86/kernel/fpu/signal.c b/arch/x86/kernel/fpu/signal.c index 6a14b528ac7f..85021c5ea649 100644 --- a/arch/x86/kernel/fpu/signal.c +++ b/arch/x86/kernel/fpu/signal.c @@ -54,6 +54,14 @@ static inline bool check_xstate_in_sigframe(struct fxregs_state __user *buf_fx, if (likely(magic2 == FP_XSTATE_MAGIC2)) return true; err_setfx: + /* + * The fallback to FX-only state is used to preserve backward + * compatibility with user-space processes that are not aware of xsave + * states. + * + * In all other cases, returning false (to trigger SIGSEGV) is + * preferred to avoid silent user-space state corruption. + */ trace_x86_fpu_xstate_check_failed(x86_task_fpu(current)); /* Set the parameters for fx only state */ -- 2.55.0.691.gc56d675ccc-goog