Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 27 May 2026 14:59:25 +0000
From:      John Baldwin <jhb@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: f7524d8fcbd7 - main - amd64: Inline set_top_of_stack_td into cpu_thread_new_kstack
Message-ID:  <6a1706cd.246ad.1498e044@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by jhb:

URL: https://cgit.FreeBSD.org/src/commit/?id=f7524d8fcbd76a432c163200a7c77ce964805beb

commit f7524d8fcbd76a432c163200a7c77ce964805beb
Author:     John Baldwin <jhb@FreeBSD.org>
AuthorDate: 2026-05-05 14:43:10 +0000
Commit:     John Baldwin <jhb@FreeBSD.org>
CommitDate: 2026-05-27 13:45:25 +0000

    amd64: Inline set_top_of_stack_td into cpu_thread_new_kstack
    
    Reviewed by:    kib
    Sponsored by:   AFRL, DARPA
    Pull Request:   https://ron-dev.freebsd.org/FreeBSD/src/pulls/23
---
 sys/amd64/amd64/machdep.c    |  2 +-
 sys/amd64/amd64/vm_machdep.c | 10 ++--------
 sys/amd64/include/md_var.h   |  1 -
 3 files changed, 3 insertions(+), 10 deletions(-)

diff --git a/sys/amd64/amd64/machdep.c b/sys/amd64/amd64/machdep.c
index 20c4be7880ff..510c6d375a2d 100644
--- a/sys/amd64/amd64/machdep.c
+++ b/sys/amd64/amd64/machdep.c
@@ -1369,6 +1369,7 @@ hammer_time(u_int64_t modulep, u_int64_t physfree)
 	thread0.td_kstack_pages = kstack_pages;
 	kstack0_sz = thread0.td_kstack_pages * PAGE_SIZE;
 	bzero(thread0.td_kstack, kstack0_sz);
+	cpu_thread_new_kstack(&thread0);
 	physfree += kstack0_sz;
 
 	/*
@@ -1521,7 +1522,6 @@ hammer_time(u_int64_t modulep, u_int64_t physfree)
 	 * We initialize the PCB pointer early so that exception
 	 * handlers will work.
 	 */
-	set_top_of_stack_td(&thread0);
 	thread0.td_pcb = get_pcb_td(&thread0);
 
 	/*
diff --git a/sys/amd64/amd64/vm_machdep.c b/sys/amd64/amd64/vm_machdep.c
index 2df53285d71d..244d82ee8ebb 100644
--- a/sys/amd64/amd64/vm_machdep.c
+++ b/sys/amd64/amd64/vm_machdep.c
@@ -83,13 +83,6 @@
 _Static_assert(OFFSETOF_MONITORBUF == offsetof(struct pcpu, pc_monitorbuf),
     "OFFSETOF_MONITORBUF does not correspond with offset of pc_monitorbuf.");
 
-void
-set_top_of_stack_td(struct thread *td)
-{
-	td->td_md.md_stack_base = td->td_kstack +
-	    td->td_kstack_pages * PAGE_SIZE;
-}
-
 struct savefpu *
 get_pcb_user_save_td(struct thread *td)
 {
@@ -384,7 +377,8 @@ cpu_thread_alloc(struct thread *td)
 void
 cpu_thread_new_kstack(struct thread *td)
 {
-	set_top_of_stack_td(td);
+	td->td_md.md_stack_base = td->td_kstack +
+	    td->td_kstack_pages * PAGE_SIZE;
 	td->td_frame = (struct trapframe *)td->td_md.md_stack_base - 1;
 }
 
diff --git a/sys/amd64/include/md_var.h b/sys/amd64/include/md_var.h
index 46a30518b212..4b98c5d8c418 100644
--- a/sys/amd64/include/md_var.h
+++ b/sys/amd64/include/md_var.h
@@ -94,7 +94,6 @@ void	gsbase_load_fault(void) __asm(__STRING(gsbase_load_fault));
 void	fpstate_drop(struct thread *td);
 void	pagezero(void *addr);
 void	setidt(int idx, alias_for_inthand_t *func, int typ, int dpl, int ist);
-void	set_top_of_stack_td(struct thread *td);
 struct savefpu *get_pcb_user_save_td(struct thread *td);
 struct savefpu *get_pcb_user_save_pcb(struct pcb *pcb);
 void	pci_early_quirks(void);


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a1706cd.246ad.1498e044>