From nobody Sun Nov 16 02:00:46 2025 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 4d8DcG4NFnz6Ghtc; Sun, 16 Nov 2025 02:00:46 +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 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4d8DcG2B47z3bSc; Sun, 16 Nov 2025 02:00:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1763258446; 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=+HkHCczC/6tunxflFN+ZXUAuIS5H5991P5+Fq1Ad3+M=; b=ZDk+nGWv4Fky6HPj6rg1qBokniHvgcfTNQOEUe9gzpBGdLNWMM+yHoWGAYx6jxGzTfSD+z eUkKG/uk/pMght5nuDOLymnzgxeZ0fxkAUbIGs596Epjrhs39Hk8dQksg3rOR+kt19HJTp i+ccRFIBz+pZMcMeoPNqa5wXfGGtW4HeAV8aFz1GxvsgjtUmIpsR3QdorB5HKvLBVM1Hc0 l1R6ldHpheZD4bZz5yq2hHZ4YlO1zJM68ZEkz1+321pdzdhZigLJCPIpHy6Ok8CxtOShc3 hwMhgBPJE/5Fw3fhiMC8xJB+5OzwHqLsDe/QlZ9tBvpz5heIt1/5AZ/hIT+iYQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1763258446; 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=+HkHCczC/6tunxflFN+ZXUAuIS5H5991P5+Fq1Ad3+M=; b=HQuR/0dEz9dM0bIcZKlvsX+sLGU383sEkVGK75sS02PpVNGByrjiTp1FSXQBnF9oMlvciH oC7QGj4kbGBJfxye0bJPEx2Nr9Geb4KV+FjS0rzLFl506PCbwsgfwA3Eg3cI2OJfMvJYYp fGB1wz4qWeoqyfvSB0PA6kBRc0d+cjwvZo9tnAfQ9ZDkwS0cfoe/BQIP6jfoDhZWIUWjEv qzXNDUSo66jVhsA/aXn+YCkeg9Q5i7rMMoG+9X/cHc3kVdTb50jkEWntVpur1R6awIWcRI jZ0yKbzxTbVZ08Rb9Immzr+SAyPYcJ9TSuKuQq3X+XquwvpG0cNS7tADzCGSew== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1763258446; a=rsa-sha256; cv=none; b=IShlTMaxnY2Mv/EsdPUZP27dTy6DWSx8VD32Ah6mk90xIIlimcy9/43Wes7TAc1AkTKCkC swXdUVHWllOIJM41sHlCvLvKSWELo7FimgQAgn4QjS18Y2ipJzwholzNtA57y32NjBWPSK dbv7QKgayQiyPn/yFyOWuvSWl+lFF6+hh7BPgXbvrYSERPY3ZRKXODPjebSEUEa+t5jVKi KNP5C/aI9GYK8p5+Mb9ZBLE21TvW/dwZLlzalPSr/jRFX7Emk6HStD90Y6V0hCFkOaLQ9h 4xfk+LRvKtskRFPJw8xrfSmF9ZSFa2RDKXp7zc7uYaROiHBy494FRt6idYZG+Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4d8DcG1Vbmz3XT; Sun, 16 Nov 2025 02:00:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5AG20kgs053036; Sun, 16 Nov 2025 02:00:46 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5AG20k3L053033; Sun, 16 Nov 2025 02:00:46 GMT (envelope-from git) Date: Sun, 16 Nov 2025 02:00:46 GMT Message-Id: <202511160200.5AG20k3L053033@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Colin Percival Subject: git: 4f0b47708003 - releng/15.0 - arm64/vmm: Fix handling of MDCR_EL2.TDE List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.0 X-Git-Reftype: branch X-Git-Commit: 4f0b47708003201f01dbe98da022970441716257 Auto-Submitted: auto-generated The branch releng/15.0 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=4f0b47708003201f01dbe98da022970441716257 commit 4f0b47708003201f01dbe98da022970441716257 Author: Mark Johnston AuthorDate: 2025-11-12 15:19:07 +0000 Commit: Colin Percival CommitDate: 2025-11-16 02:00:36 +0000 arm64/vmm: Fix handling of MDCR_EL2.TDE TDE (make EL2 the target EL for debug exceptions) is set both when setting guest breakpoints and when single-stepping the guest. In some cases we may configure both capabilities, and when subsequently disabling one of them we need to take care to avoid clearing TDE if the other is still configured. Approved by: re (cperciva) MFC after: 3 days Fixes: 75cb949228bb ("arm64/vmm: Add breakpoint and single-stepping support") Sponsored by: CHERI Research Centre (EPSRC grant UKRI3001) (cherry picked from commit b6f25aca11c98acc49f111f2899ecd4e96c7debd) (cherry picked from commit 295f7255a3917dd7e176c2fcb1034d629df0ac08) --- sys/arm64/vmm/vmm_arm64.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sys/arm64/vmm/vmm_arm64.c b/sys/arm64/vmm/vmm_arm64.c index 5bb038dec2d3..e4deb052d396 100644 --- a/sys/arm64/vmm/vmm_arm64.c +++ b/sys/arm64/vmm/vmm_arm64.c @@ -1356,7 +1356,7 @@ vmmops_setcap(void *vcpui, int num, int val) break; if (val != 0) hypctx->mdcr_el2 |= MDCR_EL2_TDE; - else + else if ((hypctx->setcaps & (1ul << VM_CAP_SS_EXIT)) == 0) hypctx->mdcr_el2 &= ~MDCR_EL2_TDE; break; case VM_CAP_SS_EXIT: @@ -1377,7 +1377,8 @@ vmmops_setcap(void *vcpui, int num, int val) hypctx->mdscr_el1 &= ~MDSCR_SS; hypctx->mdscr_el1 |= hypctx->debug_mdscr; hypctx->debug_mdscr &= ~MDSCR_SS; - hypctx->mdcr_el2 &= ~MDCR_EL2_TDE; + if ((hypctx->setcaps & (1ul << VM_CAP_BRK_EXIT)) == 0) + hypctx->mdcr_el2 &= ~MDCR_EL2_TDE; } break; case VM_CAP_MASK_HWINTR: