From nobody Wed Oct 28 13:46:57 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4jF7vQ3BYkz6xV9k for ; Wed, 28 Oct 2026 13:46:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 4jF7vP6pC6z4Pc3 for ; Wed, 28 Oct 2026 13:46:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1793195218; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+NhwXCU+p/fR6PUP5pCvpyjRrODlybspDiKIVq3A4Os=; b=k8g/dfVpVSREGQDFDOeArlATATBCRkdPZ2s+yBZLbMf5sSrMaKwoLsNvqpXACEYMQiLPKq 4yOsb+M8Tb3TQxryu1BHE973RdymbOQz12zROXwoF6A6DLgFaQuLjpdsxekPqoitOWVQXB U8bGr3dvRXp70rTIl0BZII3uyyPFNTkdmY9o5ahFdKwYNf8HFD6t148iahOkoYmPyGlXad T0MW3aIHEaDiQKB8hYQAyH7F/Wkhnz5jodiYIq0neerGO1lxksEmjKcrHVbFHoHbiT0bE9 kLYgvnjhmYCDtbYAB1oUEXFb8wn/EgQu3M9G0FJpytQasHgoo/Kw076CBexmug== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1793195218; b=p0w7FR8k7qxFy7Gk+G2xT8pbMYEX3ejpQexJNMrhYjanmnCWV/1CEd/5w583qk9p7nmFGK U1V9QO/TdY1ifEdH+nPswLSzMFqNNjlnDpcJybRIVQ11sELP6YdleT0VMDMzADYNgKyt0m nJhlDuDTMOQlqHjjM5uMQ+xFKVvtUnsenc3uOG/Wno949AaXDQe3lctcWVVtYetXkTMumK YLzx2fg6ch5vIPDZr96WBnxwzgB+eBsXoZ0mcqVNMCbSIfkhaM/1H178M0bFBtxI2Qg67Z RYDVVioXPcn+2zala92COd3i+BYq0ajl5jrQFNYDgZVqX2a8J/nSfs1qQhJxWg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1793195218; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+NhwXCU+p/fR6PUP5pCvpyjRrODlybspDiKIVq3A4Os=; b=LIkC0Rzppc+NlXhn+yJw/9bqfseGEAf9fe9Utz9BVi9qdOa9gMWUW2R50WHxfIbX/JbTN4 0+nJwtFjR+ZnzDpoo0WSxgBi6mJ2EJd8V4kndZoM9PdFvYvNQJlw+PZ2kWfS06pTN/dOgl b01uaMydeNt2j+J/FPfL+ujVhj1vDQA08z0VdZySLDommzqhTwgn0TIXHDz3r0Q2Hyvc27 pYfUfN60i50z+x98kUG/po2diCKUSg9cO25L8ptQMdyYpLs+TAVV+A+tn4aHThqPRd8RxZ g0+EUvWKkKFEgEyGJ+r49q47oTAHDFfOi6Reqezw/mVQQcV7fkAQoIpq2ueLjA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4jF7vP5qhPz18j4 for ; Wed, 28 Oct 2026 13:46:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 18956 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 28 Oct 2026 13:46:57 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Konstantin Belousov Subject: git: dcc5adb27e3b - main - amd64: strictly enforce the caller's mode for FRED 64bit syscall handler in C List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org List-Id: Commit messages for all branches of the src repository List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: dcc5adb27e3b00f003c2256a9e9aa2fcc20c4d32 Auto-Submitted: auto-generated Date: Wed, 28 Oct 2026 13:46:57 +0000 Message-Id: <6ae1fcd1.18956.3bf61246@gitrepo.freebsd.org> The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=dcc5adb27e3b00f003c2256a9e9aa2fcc20c4d32 commit dcc5adb27e3b00f003c2256a9e9aa2fcc20c4d32 Author: Konstantin Belousov AuthorDate: 2026-10-28 00:45:33 +0000 Commit: Konstantin Belousov CommitDate: 2026-10-28 13:46:36 +0000 amd64: strictly enforce the caller's mode for FRED 64bit syscall handler in C For FRED SYSCALL calls, check that the LM bit is set. Note that this handler is redundant for 64bit mode since syscalls are handled by the asm fast path. Intel CPUs raise #UD for SYSCALL in the compatibility mode, and for AMD we set up the MSR_CSTAR to fast_syscall32 for IDT case, which is nop. So practically it should only matter if AMD CPUs with FRED enabled allow SYSCALL from compatibility mode. Reported and reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week --- sys/amd64/amd64/trap.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/amd64/amd64/trap.c b/sys/amd64/amd64/trap.c index 62d8d3b06c90..08485c852cac 100644 --- a/sys/amd64/amd64/trap.c +++ b/sys/amd64/amd64/trap.c @@ -1674,7 +1674,8 @@ trap_fred_u(struct trapframe_fred *frame) case TF_FRED_EVINFO2_TYPE_SYSCALL: /* Excessive */ enable_intr(); - if (vec == TF_FRED_EVINFO2_VEC_SYSCALL) { + if (vec == TF_FRED_EVINFO2_VEC_SYSCALL && + (frame->tf_idt.tf_fred_evinfo2 & TF_FRED_EVINFO2_LM) != 0) { frame->tf_idt.tf_err = fred_inst_len(frame); td->td_frame = &frame->tf_idt; amd64_syscall(td, (frame->tf_idt.tf_rflags & PSL_T) !=