From nobody Mon Feb 9 17:57:18 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 4f8spq65mvz6Rmpt for ; Mon, 09 Feb 2026 17:57:23 +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 4f8spk51TDz3sLG for ; Mon, 09 Feb 2026 17:57:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770659838; 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=sFd4pb+s4XZvp0lw0LzM60oS2OQaevHImVhNdtwDoFA=; b=g2Srp3/vVfVosqWDMW3bFqbo5H4qD+CocmUCZA2OTDDIAhzspvajzQAmbMzbJiMtzto7Dn xgk7XvkG3UOw37x9C95y2vUuBvd6Hxe25QKTj4iL6Uk5BRpwsuG7y6m4q8gvwQRfRhK8y1 61l+WJ7FNX8LeY8LulfeQwSMvSmN2tEQ47wsigO+UjoYHnTwruux94ZcjSFEU7rl/8paJF cNYLS5jBwHmPUaB7qP0GEnxA9YIgawCJ9GGISfSIGMMAC3ltlim4kWzCY5gOktnq50iiFu FYKLFI2qqybZE7YzZxwd7p9UHmgtvQNWs5bRPLbLIOsNSUtcJYZsxXjXBTYhmA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770659838; a=rsa-sha256; cv=none; b=mE0H79LrI6sCOauxj1Y9I273gVL5ZQNzSAIvbt7GJpXZgutuDCH18a7lXYdGj/lJ+fdnHd woexv16boJ/Hrc/EeAYiRSN3ad1NyB5EwIviV6h/wzJu9bjiWvQJVNb0A1ffKOdoFGveZq RcuBki5SNhTGb7xQxVAhe7OSxVJPdpFYkLUvLXdNEQr+XvopqORrcamNz/16i0Mv0304Bc YD7Bc+oZMOG+zl2xtsTbfCjTja/mOk5lBt6cG2aiVHcK/xIIn0F2ZmBWVOR9wMzlZUuXvR gjBp1vd3CvDCS8UbR6U2Id4p2wrgaYGfp9mOheE20IoMKXplwvl2/lRSFYqTIQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770659838; 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=sFd4pb+s4XZvp0lw0LzM60oS2OQaevHImVhNdtwDoFA=; b=L/gmEXSh5aQvXkBz2KPwhG2IrejwIwM3dqBHEvnq4A8ixjL+it8Ki5U6dl2VQ32xfCGdj2 HZVkZSJdhFHvzHi9HDWRm2/RJDudgL7HE51tOAh75NdKKV7l6bbmHxgdkzUQu301ICqIrJ KBhn5SApfhUSG6tZAoh/v3GudDT/DSf+80oFOXwfaeghOZCwCdt+KG/PXXNOxeACJ95fOv MkdkLyZeoEu73JKHlVK6XrlICv/ogXb+3I69t8rXIKBQcJJiWFdWJauLt1dITIlFoseC/B LCkam36feDVvtEG9qlMtykFj3SDKdLRYikU52wRk3aJ5C2ltZhVTb6myIbqehQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8spk4Sq2zjvY for ; Mon, 09 Feb 2026 17:57:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 26e3c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 17:57:18 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Konstantin Belousov Subject: git: 97ce8f7d2b8e - main - amd64: define and use STACKALIGN and REDZONE_SZ 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: kib X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 97ce8f7d2b8eff42460f60e8c49d9849b58b6e81 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 17:57:18 +0000 Message-Id: <698a1ffe.26e3c.47182d66@gitrepo.freebsd.org> The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=97ce8f7d2b8eff42460f60e8c49d9849b58b6e81 commit 97ce8f7d2b8eff42460f60e8c49d9849b58b6e81 Author: Konstantin Belousov AuthorDate: 2026-02-07 00:36:44 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-09 17:57:00 +0000 amd64: define and use STACKALIGN and REDZONE_SZ Reviewed by: brooks, emaste, jhb Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D55151 --- sys/amd64/amd64/exec_machdep.c | 4 ++-- sys/amd64/amd64/machdep.c | 6 +++--- sys/amd64/amd64/mp_machdep.c | 4 ++-- sys/amd64/include/param.h | 3 +++ 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/sys/amd64/amd64/exec_machdep.c b/sys/amd64/amd64/exec_machdep.c index 6752b716deb5..b5eda6f83d46 100644 --- a/sys/amd64/amd64/exec_machdep.c +++ b/sys/amd64/amd64/exec_machdep.c @@ -151,7 +151,7 @@ sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask) td->td_sigstk.ss_flags |= SS_ONSTACK; #endif } else - sp = (char *)regs->tf_rsp - 128; + sp = (char *)regs->tf_rsp - REDZONE_SZ; if (xfpusave != NULL) { sp -= xfpusave_len; sp = (char *)((unsigned long)sp & ~0x3Ful); @@ -159,7 +159,7 @@ sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask) } sp -= sizeof(struct sigframe); /* Align to 16 bytes. */ - sfp = (struct sigframe *)((unsigned long)sp & ~0xFul); + sfp = (struct sigframe *)STACKALIGN(sp); /* Build the argument list for the signal handler. */ regs->tf_rdi = sig; /* arg 1 in %rdi */ diff --git a/sys/amd64/amd64/machdep.c b/sys/amd64/amd64/machdep.c index ae5df475f046..b0da0b763b22 100644 --- a/sys/amd64/amd64/machdep.c +++ b/sys/amd64/amd64/machdep.c @@ -1216,8 +1216,8 @@ amd64_bsp_pcpu_init2(uint64_t rsp0) { PCPU_SET(rsp0, rsp0); - PCPU_SET(pti_rsp0, ((vm_offset_t)PCPU_PTR(pti_stack) + - PC_PTI_STACK_SZ * sizeof(uint64_t)) & ~0xful); + PCPU_SET(pti_rsp0, STACKALIGN((vm_offset_t)PCPU_PTR(pti_stack) + + PC_PTI_STACK_SZ * sizeof(uint64_t))); PCPU_SET(curpcb, thread0.td_pcb); } @@ -1585,7 +1585,7 @@ hammer_time(u_int64_t modulep, u_int64_t physfree) /* make an initial tss so cpu can get interrupt stack on syscall! */ rsp0 = thread0.td_md.md_stack_base; /* Ensure the stack is aligned to 16 bytes */ - rsp0 &= ~0xFul; + rsp0 = STACKALIGN(rsp0); PCPU_PTR(common_tss)->tss_rsp0 = rsp0; amd64_bsp_pcpu_init2(rsp0); diff --git a/sys/amd64/amd64/mp_machdep.c b/sys/amd64/amd64/mp_machdep.c index 61f1bdb6f942..05e4109e73bb 100644 --- a/sys/amd64/amd64/mp_machdep.c +++ b/sys/amd64/amd64/mp_machdep.c @@ -217,8 +217,8 @@ init_secondary(void) pc->pc_curthread = 0; pc->pc_tssp = &pc->pc_common_tss; pc->pc_rsp0 = 0; - pc->pc_pti_rsp0 = (((vm_offset_t)&pc->pc_pti_stack + - PC_PTI_STACK_SZ * sizeof(uint64_t)) & ~0xful); + pc->pc_pti_rsp0 = STACKALIGN(((vm_offset_t)&pc->pc_pti_stack + + PC_PTI_STACK_SZ * sizeof(uint64_t))); gdt = pc->pc_gdt; pc->pc_tss = (struct system_segment_descriptor *)&gdt[GPROC0_SEL]; pc->pc_fs32p = &gdt[GUFS32_SEL]; diff --git a/sys/amd64/include/param.h b/sys/amd64/include/param.h index 642a031d8841..079937d9f53a 100644 --- a/sys/amd64/include/param.h +++ b/sys/amd64/include/param.h @@ -43,6 +43,9 @@ #include +#define STACKALIGNBYTES (16 - 1) +#define REDZONE_SZ 128 + /* * Machine dependent constants for AMD64. */