From nobody Tue Nov 03 09:02:08 2026 X-Original-To: dev-commits-src-branches@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 4jJjJ11Y7tz6yPqL for ; Tue, 03 Nov 2026 09:02:09 +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 4jJjJ06ZWMz4KXG for ; Tue, 03 Nov 2026 09:02:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1793696528; 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=4bGdGdUcplu3xD+AmyBZMI2VFFHnyWDRFclmbE/uN0Q=; b=dqYPy9TzagjqX10o2vuAd5/IdiwmURsjgihYkub0jWAVapFPmWrTyerCS6/y27I1bV/rzF jDp24RUdHj15a8RI+mfKhiO1VvsjOe/eZcR6asIDW9eIQs837bVOZ4RwRY7NRaUNpcnXkz J+nV9ezVwyiEEmfjxdr8o2HqNRII5LJPSdWCTKlJ4wtOrkqxIzsj73xnVgqH5CYbKaKmK9 1HryF2o/V1ps641Ts7SCPDFiC+xBNGbf0cw5bCT6nXqKlU4mmdx3fEqsCFJM2N6XsbrvRc TzWeZ/UfZtYObWfmM1xQGH5YCk0hz9/A+VWwlRESGXBg3WgStlgyB4g5qzBOTQ== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1793696528; b=AkghLCAPXDqNgiMRAXCSBGU+KZ3i0Dh4mraQXxJ8/FhtVJhXB4M4iua88Mfe4fxnk5MBMr vgUgkzJipSeiNPGaamV32vdo4tQXoofvBHEtttqWd8LfiOkHHSYHBucgTZV70LTCZU8g1w jKDXNMjLHKeOEmxzdsQr04S0VJYZ2KFshtCaQCn7hoo4Zf/xa76461LoUiin3sgheY3/8u 9X5BPvXATQo/Oq0Sg1XUEBSDbqP1E+uchcPnPqmE4zwM2l0ycrgCHdTkHjjb3MpupbEnTG 5g9zQVpwRy+Kkgot64YmUJ1fOwYVhyP83d4fEtJ2VB94J/JQxomYjwFSepbOow== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1793696528; 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=4bGdGdUcplu3xD+AmyBZMI2VFFHnyWDRFclmbE/uN0Q=; b=OES1ga00ZyfULDjyyL5jwF0PQv5I1LhN2oOv3R/z0m2zP4ld/SP7Yvl4H0XcyO5O8a6ovC DGFxErLizs91CbDhGw8M616+auDoRwFzFQViDpYWfP8QgYdHkYpPJDjYVpwEu07tWXcuWy S8cM5IUDD0b6YK+nPJl/JSEuiOGQOdCK4biWfybEWgSuOnaEHu4etxoP7nFJkdhMJJHASi imXarGE4osJlVNwYzHlfAuU0OXS9y77vyO2ooNpWbJ9ukiPoSg34D7tRpKZ9rwbgi+NmEs I19gcbtvoWY9g/2k1UODD+d2p9Cqyo5mQOE2N41zGE4Gr9/iBK+Qd3/eoa7btw== 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 4jJjJ06FNwz1Nq5 for ; Tue, 03 Nov 2026 09:02:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 44d0a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 03 Nov 2026 09:02:08 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 4a52b966727b - stable/15 - amd64: Make the SYSENTER and INTn action same as for IDT case. List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: Commits to the stable branches of the FreeBSD 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/stable/15 X-Git-Reftype: branch X-Git-Commit: 4a52b966727be87bbb1ae579f944eddc9cd2da54 Auto-Submitted: auto-generated Date: Tue, 03 Nov 2026 09:02:08 +0000 Message-Id: <6ae9a310.44d0a.6d9ae3ad@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=4a52b966727be87bbb1ae579f944eddc9cd2da54 commit 4a52b966727be87bbb1ae579f944eddc9cd2da54 Author: Konstantin Belousov AuthorDate: 2026-10-27 10:08:14 +0000 Commit: Konstantin Belousov CommitDate: 2026-11-03 09:01:14 +0000 amd64: Make the SYSENTER and INTn action same as for IDT case. (cherry picked from commit 73b3fb41e67a11f18b9b63a5265e174e4b688661) --- 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 9652ef6b6f22..f6b8c904071e 100644 --- a/sys/amd64/amd64/trap.c +++ b/sys/amd64/amd64/trap.c @@ -1569,6 +1569,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); @@ -1644,12 +1662,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: @@ -1661,7 +1676,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: