From nobody Tue Oct 27 12:01:22 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 4jDTc25WKCz6xTMK for ; Tue, 27 Oct 2026 12:01:22 +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 4jDTc223sYz3D4H for ; Tue, 27 Oct 2026 12:01:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1793102482; 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=ANG/mWvoE9dz+CB7SuzyH0BNkjMBEOZy4axyyaLvLqM=; b=LwtFOeT+5iTGdsbge97va74B5K5O/aM/n+y77PcrnH2TbhD7PbSGZGGNuQ4xdHfM2/Tdp8 1AGaLeyfEFiQUG62jHIqbTZrXRnYBks3z7BgFnEQtoq1P7yzojIk1ck+kKkWD2Ng3Bh0Wm 3YwsIb5OZXtfpKsk2LZp4/6/wp+j1wzBBfYuCodoylSfHHepABTL9aJR0gPByMrL1I/Zup GNb6UqzZjVT4VEZdZqLENEgMiK4/VdYxvw8THR9drwy2SQdozTKIhczjMsl7/bx4j7K+zh /TeTT/MjxRu68AkIOPECn/DVcM9AzGSClyqvTf9K9vI9Qs9FFtzRj8m6YaocHw== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1793102482; b=azTFvK0Chlq3t6xp1mGzhMy2wkcsd4LmVqq/BTw1IV17jgULmrKtvR2/IdrEER3GM/UbHH /aSB7U6NjVo2+TXz3xMVf23wofwtND6iEzROw9CvjQ+ltg5z6UgVKtvT+LhcI46JwaKLaS s+IlGxhXrdXgt/s1Dqb/F0tDOM0DS53tYQFHeSMSvtu0Yo+t3whl9SC11nl8EVF/cZAHJ/ XYqf9h4iSNm0Pgw6pjrw2Y1WFmm3K1uD91uq2EVigC+lHLxIrweb7YG8adQ6Cc95Pv62qS 2zP6VhBkebxtUwX3M0+y2Crbch20HOKmF8YG6Fe7DGBG8eUOMCaYMnD7El+INQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1793102482; 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=ANG/mWvoE9dz+CB7SuzyH0BNkjMBEOZy4axyyaLvLqM=; b=kC2vABS05XO7kQFnEEDtmIm6JFZ6YEgkDhOGjPMN4tv2QPQ8SPOux5vM5Ksfzmp8uNZpSd zKh4ks9YyBJkt81vjB5QTH7HpIrwZM4gXg56GrmZv4B0iM5RsRFKo1Y3m8QuvFOZ0iStH1 feKo0u/uuuTiv/rpsvMGT/CFbbib8rMM1E8H2vqhZUUr7cMQxm8V16yz7fN5k1ZITSUOg4 fYuRmMQ5+ABNlgQi3UJr/5+ZiVpKW74Rghp02JmIhqBH3bUVoQfr3woIt5FKMi16yZu8hC dFuBzNUo0M/0O8VoMTm64fmJbnkpI/cpdjg6ADnunhA05Nv2EKcoLBBKICblsA== 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 4jDTc21g66zK12 for ; Tue, 27 Oct 2026 12:01:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 32ba6 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 27 Oct 2026 12:01:22 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Konstantin Belousov Subject: git: 73b3fb41e67a - main - amd64: Make the SYSENTER and INTn action same as for IDT case. 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: 73b3fb41e67a11f18b9b63a5265e174e4b688661 Auto-Submitted: auto-generated Date: Tue, 27 Oct 2026 12:01:22 +0000 Message-Id: <6ae09292.32ba6.40576321@gitrepo.freebsd.org> The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=73b3fb41e67a11f18b9b63a5265e174e4b688661 commit 73b3fb41e67a11f18b9b63a5265e174e4b688661 Author: Konstantin Belousov AuthorDate: 2026-10-27 10:08:14 +0000 Commit: Konstantin Belousov CommitDate: 2026-10-27 11:59:41 +0000 amd64: Make the SYSENTER and INTn action same as for IDT case. Fixes: 6e93f5e4d693 ("amd64: FRED support") Sponsored by: The FreeBSD Foundation MFC after: 1 week --- sys/amd64/amd64/trap.c | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/sys/amd64/amd64/trap.c b/sys/amd64/amd64/trap.c index 044d44d9e8f2..62d8d3b06c90 100644 --- a/sys/amd64/amd64/trap.c +++ b/sys/amd64/amd64/trap.c @@ -1573,6 +1573,24 @@ fred_inst_len(const struct trapframe_fred *frame) TF_FRED_EVINFO2_INSTLENSHIFT); } +/* + * Reaction to userspace having no permissions to generate the event. + * Report T_PROTFLT and rewind %rip back to emulate fault instead of + * trap. + */ +static void +trap_fred_u_noperm(struct trapframe_fred *frame, ksiginfo_t *ksi) +{ + frame->tf_idt.tf_rip -= fred_inst_len(frame); + frame->tf_idt.tf_addr = 0; + frame->tf_idt.tf_trapno = T_PROTFLT; + ksiginfo_init_trap(ksi); + ksi->ksi_signo = SIGBUS; + ksi->ksi_code = BUS_OBJERR; + ksi->ksi_trapno = T_PROTFLT; + ksi->ksi_addr = (void *)frame->tf_idt.tf_rip; +} + int fred_verbose_events; void trap_fred_u(struct trapframe_fred *frame); @@ -1648,12 +1666,9 @@ trap_fred_u(struct trapframe_fred *frame) break; } #endif - frame->tf_idt.tf_trapno = vec; - ksiginfo_init_trap(&ksi); - ksi.ksi_signo = SIGBUS; - ksi.ksi_code = BUS_OBJERR; - ksi.ksi_trapno = frame->tf_idt.tf_trapno; - ksi.ksi_addr = (void *)frame->tf_idt.tf_rip; + trap_fred_u_noperm(frame, &ksi); + /* error code: gate selector from IDT */ + frame->tf_idt.tf_err = (vec * 8) | 2; do_trapsig = true; break; case TF_FRED_EVINFO2_TYPE_SYSCALL: @@ -1665,7 +1680,8 @@ trap_fred_u(struct trapframe_fred *frame) amd64_syscall(td, (frame->tf_idt.tf_rflags & PSL_T) != 0); } else { - /* SYSENTER returns without action */ + trap_fred_u_noperm(frame, &ksi); + do_trapsig = true; } break; default: