From nobody Thu Dec 18 18:40:49 2025 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 4dXKHQ1Zy2z6LWQx for ; Thu, 18 Dec 2025 18:40:50 +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 4dXKHP4TFfz4Cwm for ; Thu, 18 Dec 2025 18:40:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1766083249; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ige3nabGnVn0afrftkKgOZ3VjnBJW5PZh4Lbq0/z9J4=; b=lNtlbiw3DOU7VC7N7ZWPbwSvfytfYL3XA1wpExLydK1tR+WeaOrB+nZuHI3BRDianIKhus O5j3IUV2Ev0S9tnBa13nFW3bzHME9O9jG7xZKr2tyNPk5S89kS5M8Bmu0pdygjv7oSxbLC pF/YwqxaXn9FEjMUFtv6mihLhpB3uvaHoh73XoVkNTUSzWLU0ihoXx7Vx7Nu3a6LlsidgL 7u2NNlZ1K6jUQ2ZANayzXjhXrBFnZUHy6x+dDoaCX8SLlG2bhATMNTVqS6jOviVZi2+uRd N0Kpk8l2IbeEBmW3f++RLu8jdoG6zqB3CQc5i5zYKf9QV+ZvX91nuaukd52UAg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1766083249; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ige3nabGnVn0afrftkKgOZ3VjnBJW5PZh4Lbq0/z9J4=; b=dw51BirrL8GU55TQMopa0/zDiKLZc621n4XxqVBKe7w2BRDmpqX3AOYl13VpBl+4MTMWGG mr6GJdKC/AuzrPwFZNMy9fZeADkWhycbO1oPFObNUGm4Q+FkAUPpcbKCK+MlpFK3DCoDcg udE8JvHWUj45ygQSZACu+IqPCowKDDgheV8Q5VBZ6Y77d9bAKA1h9e8KKuvRDEH5KJwSOc klbPUEwbWsZ/ce8z7vMhG4oowq3PHcKyNtHtf/8hjcZOxmaFMmJPyaG+znXzHnqAZ8iFAU WnAmkkaMxR6SdsmVK6eNHNXZ/iYLBzHqUHdvIdkydVyQyVV5SKy6/+gHExndkg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1766083249; a=rsa-sha256; cv=none; b=WVyQlVWBVtGyFr4TrCAyNk88Bvr8+hysqPgXP3+n4nW9rmN9S8M18IBsEOdUb+U/jdqNCS BhGf1D2YzVIQVyYIZrragsnUGPhJru7kIY13eoWDRrkAJd9kbEPai9pg2CaxHxUXkZtbGI rF8Ti/v6oUfV6k9ebserSuckFgC4ButIXs/f3oyRB2J1Sz0Aoz/DY9iEWIfFCUh5mHVJ+H pZAtnL9NptynDbtSyF8cPaN2bORtMBLzG+hv5nB0WPBGAypI6LB7oySsMGUgZGY3Ss5arg Yg8Ptwl8nfzvPjUjU2J2ZNXq3pvl0mHv410XOUS1TzJAiqyK81x2LBHemdfQQA== 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 4dXKHP3lW9zqSv for ; Thu, 18 Dec 2025 18:40:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 27c63 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 18 Dec 2025 18:40:49 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Konrad Witaszczyk From: John Baldwin Subject: git: 051540a092d1 - stable/15 - aarch64: Save correct value of x18 on trapframe for nested faults List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 051540a092d14c4d71410d137780b48db34dda93 Auto-Submitted: auto-generated Date: Thu, 18 Dec 2025 18:40:49 +0000 Message-Id: <69444ab1.27c63.3d6c5324@gitrepo.freebsd.org> The branch stable/15 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=051540a092d14c4d71410d137780b48db34dda93 commit 051540a092d14c4d71410d137780b48db34dda93 Author: Konrad Witaszczyk AuthorDate: 2025-09-16 11:21:57 +0000 Commit: John Baldwin CommitDate: 2025-12-18 18:24:44 +0000 aarch64: Save correct value of x18 on trapframe for nested faults x18 is overwritten with a temporary copy of the kernel stack pointer when it is saved in the trapframe. This does not matter in terms of function since nested exception return does not restore x18 from the trapframe, but it does mean that examining x18 in a debugger in stack frames above a nested fault outputs the wrong register value. To fix, compute the value of the original stack pointer to save in x18 later after the trapframe has been constructed. Reviewed by: jhb, andrew Sponsored by: AFRL, DARPA Differential Revision: https://reviews.freebsd.org/D52472 (cherry picked from commit 99213b3c352cdf568ea7cf5b4dddb1879f16a601) --- sys/arm64/arm64/exception.S | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sys/arm64/arm64/exception.S b/sys/arm64/arm64/exception.S index 6e673fbe5a43..5a4181348a54 100644 --- a/sys/arm64/arm64/exception.S +++ b/sys/arm64/arm64/exception.S @@ -42,7 +42,6 @@ */ .macro save_registers_head el .if \el == 1 - mov x18, sp stp x0, x1, [sp, #-(TF_SIZE - TF_X + 128)]! .else stp x0, x1, [sp, #-(TF_SIZE - TF_X)]! @@ -61,7 +60,9 @@ stp x24, x25, [sp, #(24 * 8)] stp x26, x27, [sp, #(26 * 8)] stp x28, x29, [sp, #(28 * 8)] -.if \el == 0 +.if \el == 1 + add x18, sp, #(TF_SIZE - TF_X + 128) +.else mrs x18, sp_el0 .endif mrs x10, elr_el1