From nobody Wed Nov 12 16:52:51 2025 X-Original-To: dev-commits-src-main@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 4d68bR24Stz6GGyV; Wed, 12 Nov 2025 16:52:51 +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 4d68bR11dtz3Pqm; Wed, 12 Nov 2025 16:52:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1762966371; 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=j7WaQrCPogH1pW5PbKDVET40qn5cAJAkVT2gpKxBTjo=; b=G/G8n1fQIZJivB1FHC6gr0m3D24mmPum2uNZ+KB56XNX8vnoMs26dGlxn7+C5UkcHrhTOQ bFAdHOmi4t2ZgTpzz38Vx3cG9pSgMWGQxeOUrmHdsT3P7eurrZo5flui+kvPjYdEq9khnl ijrQvlL+VQjn1vzKMq5Qy0ypurdLovphfRRsAOsHn4o3y8aGuefu9OoGnPz5oSdxG0pBld 5SErnPeDe65wj2j7AskKKAGMnvzPtHvn+l2LXH3DpAW47pchIfj3G9ScKKbCtYxOHU3jrm J4J0NsJg5kLAdZDUW/i0QM/yiA6DKU7etfKIi/cySjAUJddUVfW4IoKmmYNzqg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1762966371; 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=j7WaQrCPogH1pW5PbKDVET40qn5cAJAkVT2gpKxBTjo=; b=LmYcchxjJv74yqJEQB78R94rVWoKhe+/fPoswaRLCD3HU9steYrUec3Z6DjtrZqeJzmnxt 5Q3bWEg8fkRE2pZ8QldkBA26/6pUxzNzHBhOE8mSgEOS3Y7cgcckumIzrDrJRX0CDDtUZQ SfLQBDvMVSjjVsUwAajb2TnGVWDmo0M1F2xDzm7N6is7qMAS4Y3uxJ0QsYn9f8TmUksuIA 3/HXAoY0gqEsH9k1ImIjTWp7Yy6wWHlGJ8EqHk6OBjVRquzb6vHhyFF3a8hMhnJ0o+4ejk ZEf9hesldFLQEPO7lkGOEUkrL6EsfhxpzAQmNxkZHIQsbjJDVlaRa80Mh0bnug== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1762966371; a=rsa-sha256; cv=none; b=jy+Njdoc1vOKgkGFnGOJoEQyrbh2Req4w2UYqAn5USPhuaRCVwJM6WFrqXpIwYPyxPVNiC H3TG/Y1b+2rwwHnsoM57Ps5SC+lak8Ig2U7W5ezI0/vtKN5ucwNTZf2pc4VEpSXq6ME6dv VApW59h1qqnbokwY0iXiYBFfoW/CW03j+xQtg2aPqlvlG4pO7v/o0/Wc40El0dJo2MKwx1 r40QzOzpKRh0r5blC6cuJnb/C/PY75urypM9k2N7wvwjB67afsZkS5cG7rsissf0GBHFdI kqlb39wbhyrHQnE1m7qk1YP//ZlNy2by12vVQUOpPh3mpAX9ls/tyK1MAiInxQ== 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 4d68bR0clrzjcf; Wed, 12 Nov 2025 16:52:51 +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 5ACGqpbk088585; Wed, 12 Nov 2025 16:52:51 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5ACGqpmI088582; Wed, 12 Nov 2025 16:52:51 GMT (envelope-from git) Date: Wed, 12 Nov 2025 16:52:51 GMT Message-Id: <202511121652.5ACGqpmI088582@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: b6f25aca11c9 - main - arm64/vmm: Fix handling of MDCR_EL2.TDE List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b6f25aca11c98acc49f111f2899ecd4e96c7debd Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=b6f25aca11c98acc49f111f2899ecd4e96c7debd commit b6f25aca11c98acc49f111f2899ecd4e96c7debd Author: Mark Johnston AuthorDate: 2025-11-12 15:19:07 +0000 Commit: Mark Johnston CommitDate: 2025-11-12 16:44:58 +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. MFC after: 3 days Fixes: 75cb949228bb ("arm64/vmm: Add breakpoint and single-stepping support") Sponsored by: CHERI Research Centre (EPSRC grant UKRI3001) --- 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 991b0d2bc345..aa1361049f49 100644 --- a/sys/arm64/vmm/vmm_arm64.c +++ b/sys/arm64/vmm/vmm_arm64.c @@ -1364,7 +1364,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: @@ -1385,7 +1385,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: