aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Johnston <markj@FreeBSD.org>2021-06-01 14:28:57 +0000
committerMark Johnston <markj@FreeBSD.org>2021-06-08 13:37:48 +0000
commit0a41a2899eb226d34996b2470cf239d670ff186e (patch)
treead1644a0688646c70d7cbc6ea0f6d93e4dc43e8d
parent1adf2f76c0c89db1beb2de4ac03a0b70db84bb6a (diff)
downloadsrc-0a41a2899eb226d34996b2470cf239d670ff186e.tar.gz
src-0a41a2899eb226d34996b2470cf239d670ff186e.zip
i386: Make setidt_disp a size_t instead of uintptr_t
setidt_disp is the offset of the ISR trampoline relative to the address of the routines in exception.s, so uintptr_t is not quite right. Also remove a bogus declaration I added in commit 18f55c67f7, it is not required after all. Reported by: jrtc27 Reviewed by: jrtc27, kib Sponsored by: The FreeBSD Foundation (cherry picked from commit cbe59a6475b6c36fac4073bcfc328099fc873420)
-rw-r--r--sys/i386/i386/machdep.c2
-rw-r--r--sys/i386/include/md_var.h2
-rw-r--r--sys/x86/x86/local_apic.c4
3 files changed, 2 insertions, 6 deletions
diff --git a/sys/i386/i386/machdep.c b/sys/i386/i386/machdep.c
index 4ef37861b151..1aed12f422bc 100644
--- a/sys/i386/i386/machdep.c
+++ b/sys/i386/i386/machdep.c
@@ -1527,7 +1527,7 @@ static struct soft_segment_descriptor ldt_segs[] = {
.ssd_gran = 1 },
};
-uintptr_t setidt_disp;
+size_t setidt_disp;
void
setidt(int idx, inthand_t *func, int typ, int dpl, int selec)
diff --git a/sys/i386/include/md_var.h b/sys/i386/include/md_var.h
index 53e1861c8fff..0f0177012f3a 100644
--- a/sys/i386/include/md_var.h
+++ b/sys/i386/include/md_var.h
@@ -49,7 +49,7 @@ extern int sz_lcall_tramp;
#endif
extern uint32_t *vm_page_dump;
extern vm_offset_t proc0kstack;
-extern uintptr_t setidt_disp;
+extern size_t setidt_disp;
struct segment_descriptor;
union savefpu;
diff --git a/sys/x86/x86/local_apic.c b/sys/x86/x86/local_apic.c
index a34cfbb8b1c9..759c1ae8625a 100644
--- a/sys/x86/x86/local_apic.c
+++ b/sys/x86/x86/local_apic.c
@@ -2113,10 +2113,6 @@ native_lapic_ipi_vectored(u_int vector, int dest)
#endif /* SMP */
-#ifdef __i386__
-extern uintptr_t setidt_disp;
-#endif
-
/*
* Since the IDT is shared by all CPUs the IPI slot update needs to be globally
* visible.