From nobody Tue Jan 27 18:31:46 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 4f0vBW0Xtmz6QDjB for ; Tue, 27 Jan 2026 18:31:47 +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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f0vBV5jbJz3lHC for ; Tue, 27 Jan 2026 18:31:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1769538706; 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=jgIxPyelxz/dmj6EOdM0eVyiUQeSU8s6bq2tUOzfJUg=; b=HMF8D8TIIk4eud7Xxfai/pk4M8h7KftWXynobgUiIGdEq92wEozX2kMi68msVxjZMp1HXL 4LijaOyRMOgDwnNBxiO4XtfTJXcTnDKXV/dDtrTExWBDPT71j8hYxdlRfazpGRbvnPknBk j2COIq7qx13qLAAUKYHAY0sOg2XGqK3Ik8BdQ+5os0O9LSAea53TkoT3H3Vd+xo1SNy+/d cHw7+2/rDXsVqN8q9OgJWVxs8gBA0wbiYZ4RcZDjuyOSiD2u1mBnfuh7UAUdxfBsh9XhNN HgVLMDjnvuXVxGiz6tRYKHejKYV3ptfS+3b8l0iBHb3O4tYxClTPF1WcXnefpQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1769538706; 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=jgIxPyelxz/dmj6EOdM0eVyiUQeSU8s6bq2tUOzfJUg=; b=k+FaO2qc8/Q3vMc7vCaUMx5d+H9d+fmNeWQKJ6uQiX107ELbnGul1F8JS1XLS1SD+NQwg9 sVJiz39wJznmZTNHZx+ccSWEHjyAGBmvZ3X/4anpEWuSkkRpGbFZa239a7+YBUzENMroum r4B6/VjDMFu6FGzfbfVaPXjGbnUnx01YJQks4nexBrfvtaIN7crjTVERQfNMAMPrIXKH2X 0UuenlpldsDD0blejP+3Att8DkbU+K7ndDha7O7vWloC+0BZ2xq2Qx8e73Vvs3B9sm/RB7 OfLH2HaJe080Rw9fWkZcOnhRgkNOeWwFL9b5aLk4e3uG4cuIPecgnkQy0kpMCQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1769538706; a=rsa-sha256; cv=none; b=LEeTiG2EdEBB5xdBVq+UHu5rPTd0h5EzffnJwKS8carntMAsnDG037ABNTtQZqOglfFsR2 E9iDJ0OQkJ7+gxICTOOTOmKf+SI25o/2uy9snghVwO+I2aMCc5jBErs5rbx/Zs+VGfKQWs R+p0eHaq7E0EV45tInwYfDfCFYdJpCgAHPXwCfrAlQV+ZilmbZuak+7+vWVKrvFAQFcu61 NHs8wO4hb58nzjt0sb0O1WMCWxfYy9JVg2rO+vYBRQ1M6MhZSm3XhLnF8rqfys/RD86JX/ HWvOxdRV+hNdsFKVgG4Ls51y6p3j7ftyGEkCJxa3+Kxwz5Ds6W3HR+sg2ZhbUg== 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 4f0vBV5Ck3z3CG for ; Tue, 27 Jan 2026 18:31:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id f303 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 27 Jan 2026 18:31:46 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: John Baldwin Subject: git: 093fffa296d0 - main - sys: Use __is_aligned and __align_down for some kstack alignment operations 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/main X-Git-Reftype: branch X-Git-Commit: 093fffa296d009de8cebf713a58ddbf876f05c5c Auto-Submitted: auto-generated Date: Tue, 27 Jan 2026 18:31:46 +0000 Message-Id: <69790492.f303.599c2083@gitrepo.freebsd.org> The branch main has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=093fffa296d009de8cebf713a58ddbf876f05c5c commit 093fffa296d009de8cebf713a58ddbf876f05c5c Author: John Baldwin AuthorDate: 2026-01-27 18:31:23 +0000 Commit: John Baldwin CommitDate: 2026-01-27 18:31:23 +0000 sys: Use __is_aligned and __align_down for some kstack alignment operations Reviewed by: kib, jhibbits Effort: CHERI upstreaming Sponsored by: AFRL, DARPA Differential Revision: https://reviews.freebsd.org/D54840 --- sys/amd64/amd64/vm_machdep.c | 3 +-- sys/i386/i386/vm_machdep.c | 3 ++- sys/powerpc/powerpc/exec_machdep.c | 4 ++-- sys/powerpc/powerpc/machdep.c | 5 ++--- sys/powerpc/powerpc/vm_machdep.c | 4 ++-- 5 files changed, 9 insertions(+), 10 deletions(-) diff --git a/sys/amd64/amd64/vm_machdep.c b/sys/amd64/amd64/vm_machdep.c index c763ff58680e..2e180003e93d 100644 --- a/sys/amd64/amd64/vm_machdep.c +++ b/sys/amd64/amd64/vm_machdep.c @@ -93,8 +93,7 @@ set_top_of_stack_td(struct thread *td) struct savefpu * get_pcb_user_save_td(struct thread *td) { - KASSERT(((vm_offset_t)td->td_md.md_usr_fpu_save % - XSAVE_AREA_ALIGN) == 0, + KASSERT(__is_aligned(td->td_md.md_usr_fpu_save, XSAVE_AREA_ALIGN), ("Unaligned pcb_user_save area ptr %p td %p", td->td_md.md_usr_fpu_save, td)); return (td->td_md.md_usr_fpu_save); diff --git a/sys/i386/i386/vm_machdep.c b/sys/i386/i386/vm_machdep.c index 80b45070d896..698d3b26813c 100644 --- a/sys/i386/i386/vm_machdep.c +++ b/sys/i386/i386/vm_machdep.c @@ -91,7 +91,8 @@ get_pcb_user_save_td(struct thread *td) p = td->td_kstack + td->td_kstack_pages * PAGE_SIZE - roundup2(cpu_max_ext_state_size, XSAVE_AREA_ALIGN); - KASSERT((p % XSAVE_AREA_ALIGN) == 0, ("Unaligned pcb_user_save area")); + KASSERT(__is_aligned(p, XSAVE_AREA_ALIGN), + ("Unaligned pcb_user_save area")); return ((union savefpu *)p); } diff --git a/sys/powerpc/powerpc/exec_machdep.c b/sys/powerpc/powerpc/exec_machdep.c index 318927e01360..00c04b4ddbaa 100644 --- a/sys/powerpc/powerpc/exec_machdep.c +++ b/sys/powerpc/powerpc/exec_machdep.c @@ -1082,8 +1082,8 @@ cpu_thread_alloc(struct thread *td) { struct pcb *pcb; - pcb = (struct pcb *)((td->td_kstack + td->td_kstack_pages * PAGE_SIZE - - sizeof(struct pcb)) & ~0x3fUL); + pcb = (struct pcb *)__align_down(td->td_kstack + td->td_kstack_pages * + PAGE_SIZE - sizeof(struct pcb), 0x40); td->td_pcb = pcb; td->td_frame = (struct trapframe *)pcb - 1; } diff --git a/sys/powerpc/powerpc/machdep.c b/sys/powerpc/powerpc/machdep.c index e9979712aa9c..f4a065e1ce46 100644 --- a/sys/powerpc/powerpc/machdep.c +++ b/sys/powerpc/powerpc/machdep.c @@ -488,9 +488,8 @@ powerpc_init(vm_offset_t fdt, vm_offset_t toc, vm_offset_t ofentry, void *mdp, /* * Finish setting up thread0. */ - thread0.td_pcb = (struct pcb *) - ((thread0.td_kstack + thread0.td_kstack_pages * PAGE_SIZE - - sizeof(struct pcb)) & ~15UL); + thread0.td_pcb = (struct pcb *)__align_down(thread0.td_kstack + + thread0.td_kstack_pages * PAGE_SIZE - sizeof(struct pcb), 16); bzero((void *)thread0.td_pcb, sizeof(struct pcb)); pc->pc_curpcb = thread0.td_pcb; diff --git a/sys/powerpc/powerpc/vm_machdep.c b/sys/powerpc/powerpc/vm_machdep.c index 1fd853783cc8..00fdc301a7e7 100644 --- a/sys/powerpc/powerpc/vm_machdep.c +++ b/sys/powerpc/powerpc/vm_machdep.c @@ -123,8 +123,8 @@ cpu_fork(struct thread *td1, struct proc *p2, struct thread *td2, int flags) if (td1 == curthread) cpu_update_pcb(td1); - pcb = (struct pcb *)((td2->td_kstack + - td2->td_kstack_pages * PAGE_SIZE - sizeof(struct pcb)) & ~0x3fUL); + pcb = (struct pcb *)__align_down(td2->td_kstack + + td2->td_kstack_pages * PAGE_SIZE - sizeof(struct pcb), 0x40); td2->td_pcb = pcb; /* Copy the pcb */