Module Name: src
Committed By: martin
Date: Thu Apr 5 18:15:03 UTC 2018
Modified Files:
src/sys/arch/amd64/amd64 [netbsd-8]: db_interface.c spl.S vector.S
src/sys/arch/i386/i386 [netbsd-8]: db_interface.c machdep.c spl.S
vector.S
src/sys/arch/x86/include [netbsd-8]: intr.h
src/sys/arch/x86/x86 [netbsd-8]: intr.c lapic.c
Log Message:
Pull up following revision(s) (requested by christos in ticket #696):
sys/arch/amd64/amd64/vector.S: revision 1.62 (patch)
sys/arch/x86/include/intr.h: revision 1.55
sys/arch/i386/i386/vector.S: revision 1.77
sys/arch/i386/i386/db_interface.c: revision 1.82 (patch)
sys/arch/amd64/amd64/spl.S: revision 1.34 (patch)
sys/arch/amd64/amd64/db_interface.c: revision 1.33 (patch)
sys/arch/x86/x86/intr.c: revision 1.125
sys/arch/i386/i386/spl.S: revision 1.43 (patch)
sys/arch/i386/i386/machdep.c: revision 1.805 (patch)
sys/arch/x86/x86/lapic.c: revision 1.66 (patch)
Rename the DDB IPI IDT vectors for consistency. ok maxv@
Rename Xpreempt{recurse,resume} -> X{recurse,resume}_preempt so that
they fit the pattern. Also the debugger trap sniffer matches them
without adding special entries...
XXX: pullup-8.
To generate a diff of this commit:
cvs rdiff -u -r1.25 -r1.25.2.1 src/sys/arch/amd64/amd64/db_interface.c
cvs rdiff -u -r1.30 -r1.30.10.1 src/sys/arch/amd64/amd64/spl.S
cvs rdiff -u -r1.49.2.2 -r1.49.2.3 src/sys/arch/amd64/amd64/vector.S
cvs rdiff -u -r1.72 -r1.72.2.1 src/sys/arch/i386/i386/db_interface.c
cvs rdiff -u -r1.782.6.4 -r1.782.6.5 src/sys/arch/i386/i386/machdep.c
cvs rdiff -u -r1.40 -r1.40.22.1 src/sys/arch/i386/i386/spl.S
cvs rdiff -u -r1.69 -r1.69.2.1 src/sys/arch/i386/i386/vector.S
cvs rdiff -u -r1.50.2.1 -r1.50.2.2 src/sys/arch/x86/include/intr.h
cvs rdiff -u -r1.101.2.4 -r1.101.2.5 src/sys/arch/x86/x86/intr.c
cvs rdiff -u -r1.58.2.4 -r1.58.2.5 src/sys/arch/x86/x86/lapic.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/amd64/amd64/db_interface.c
diff -u src/sys/arch/amd64/amd64/db_interface.c:1.25 src/sys/arch/amd64/amd64/db_interface.c:1.25.2.1
--- src/sys/arch/amd64/amd64/db_interface.c:1.25 Tue May 23 08:54:38 2017
+++ src/sys/arch/amd64/amd64/db_interface.c Thu Apr 5 18:15:02 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: db_interface.c,v 1.25 2017/05/23 08:54:38 nonaka Exp $ */
+/* $NetBSD: db_interface.c,v 1.25.2.1 2018/04/05 18:15:02 martin Exp $ */
/*
* Mach Operating System
@@ -33,7 +33,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: db_interface.c,v 1.25 2017/05/23 08:54:38 nonaka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: db_interface.c,v 1.25.2.1 2018/04/05 18:15:02 martin Exp $");
#include "opt_ddb.h"
#include "opt_multiprocessor.h"
@@ -95,7 +95,7 @@ static bool ddb_mp_online;
int ddb_cpu = NOCPU;
typedef void (vector)(void);
-extern vector Xintrddb, Xx2apic_intrddb;
+extern vector Xintr_ddbipi, Xintr_x2apic_ddbipi;
void
db_machine_init(void)
@@ -103,10 +103,10 @@ db_machine_init(void)
#ifdef MULTIPROCESSOR
#ifndef XEN
- vector *handler = &Xintrddb;
+ vector *handler = &Xintr_ddbipi;
#if NLAPIC > 0
if (lapic_is_x2apic())
- handler = &Xx2apic_intrddb;
+ handler = &Xintr_x2apic_ddbipi;
#endif
ddb_vec = idt_vec_alloc(0xf0, 0xff);
setgate(&idt[ddb_vec], handler, 1, SDT_SYS386IGT, SEL_KPL,
Index: src/sys/arch/amd64/amd64/spl.S
diff -u src/sys/arch/amd64/amd64/spl.S:1.30 src/sys/arch/amd64/amd64/spl.S:1.30.10.1
--- src/sys/arch/amd64/amd64/spl.S:1.30 Sun Nov 22 13:41:24 2015
+++ src/sys/arch/amd64/amd64/spl.S Thu Apr 5 18:15:02 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: spl.S,v 1.30 2015/11/22 13:41:24 maxv Exp $ */
+/* $NetBSD: spl.S,v 1.30.10.1 2018/04/05 18:15:02 martin Exp $ */
/*
* Copyright (c) 2003 Wasabi Systems, Inc.
@@ -116,7 +116,7 @@ IDTVEC(softintr)
popq %r15 /* unwind switchframe */
addq $(5 * 8),%rsp
jmp *%r13 /* back to Xspllower/Xdoreti */
-END(Xsoftintr)
+IDTVEC_END(softintr)
/*
* softintr_ret()
@@ -145,25 +145,25 @@ END(softint_trigger)
/*
- * Xpreemptrecurse()
+ * Xrecurse_preempt()
*
* Handles preemption interrupts via Xspllower().
*/
-IDTVEC(preemptrecurse)
+IDTVEC(recurse_preempt)
movl $IPL_PREEMPT, CPUVAR(ILEVEL)
sti
xorq %rdi, %rdi
call _C_LABEL(kpreempt)
cli
jmp *%r13 /* back to Xspllower */
-END(Xpreemptrecurse)
+IDTVEC_END(recurse_preempt)
/*
- * Xpreemptresume()
+ * Xresume_preempt()
*
* Handles preemption interrupts via Xdoreti().
*/
-IDTVEC(preemptresume)
+IDTVEC(resume_preempt)
movl $IPL_PREEMPT, CPUVAR(ILEVEL)
sti
testq $SEL_RPL, TF_CS(%rsp)
@@ -176,7 +176,7 @@ IDTVEC(preemptresume)
call _C_LABEL(preempt) # from user
cli
jmp *%r13 /* back to Xdoreti */
-END(Xpreemptresume)
+IDTVEC_END(resume_preempt)
/*
* int splraise(int s);
@@ -300,7 +300,7 @@ IDTVEC(spllower)
popq %r13
popq %rbx
ret
-END(Xspllower)
+IDTVEC_END(spllower)
/*
* void Xdoreti(void);
@@ -354,4 +354,4 @@ LABEL(doreti_checkast)
CLI(si)
jmp doreti_checkast /* recheck ASTs */
END(doreti_checkast)
-END(Xdoreti)
+IDTVEC_END(doreti)
Index: src/sys/arch/amd64/amd64/vector.S
diff -u src/sys/arch/amd64/amd64/vector.S:1.49.2.2 src/sys/arch/amd64/amd64/vector.S:1.49.2.3
--- src/sys/arch/amd64/amd64/vector.S:1.49.2.2 Thu Mar 22 16:59:03 2018
+++ src/sys/arch/amd64/amd64/vector.S Thu Apr 5 18:15:02 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: vector.S,v 1.49.2.2 2018/03/22 16:59:03 martin Exp $ */
+/* $NetBSD: vector.S,v 1.49.2.3 2018/04/05 18:15:02 martin Exp $ */
/*-
* Copyright (c) 1998, 2007, 2008 The NetBSD Foundation, Inc.
@@ -160,7 +160,7 @@ IDTVEC_END(intr_lapic_ipi)
TEXT_USER_END
#if defined(DDB)
-IDTVEC(handle_intrddbipi)
+IDTVEC(handle_ddbipi)
movl $0xf,%eax
movq %rax,%cr8
movq _C_LABEL(local_apic_va),%rbx
@@ -170,8 +170,8 @@ IDTVEC(handle_intrddbipi)
xorl %eax,%eax
movq %rax,%cr8
INTRFASTEXIT
-IDTVEC_END(handle_intrddbipi)
-IDTVEC(handle_x2apic_intrddbipi)
+IDTVEC_END(handle_ddbipi)
+IDTVEC(handle_x2apic_ddbipi)
movl $0xf,%eax
movq %rax,%cr8
movl $(MSR_X2APIC_BASE + MSR_X2APIC_EOI),%ecx
@@ -183,21 +183,21 @@ IDTVEC(handle_x2apic_intrddbipi)
xorl %eax,%eax
movq %rax,%cr8
INTRFASTEXIT
-IDTVEC_END(handle_x2apic_intrddbipi)
+IDTVEC_END(handle_x2apic_ddbipi)
TEXT_USER_BEGIN
-IDTVEC(intrddb)
+IDTVEC(intr_ddbipi)
pushq $0
pushq $T_BPTFLT
INTRENTRY
- jmp _C_LABEL(Xhandle_intrddbipi)
-IDTVEC_END(intrddb)
-IDTVEC(x2apic_intrddb)
+ jmp _C_LABEL(Xhandle_ddbipi)
+IDTVEC_END(intr_ddbipi)
+IDTVEC(intr_x2apic_ddbipi)
pushq $0
pushq $T_BPTFLT
INTRENTRY
- jmp _C_LABEL(Xhandle_x2apic_intrddbipi)
-IDTVEC_END(x2apic_intrddb)
+ jmp _C_LABEL(Xhandle_x2apic_ddbipi)
+IDTVEC_END(intr_x2apic_ddbipi)
TEXT_USER_END
#endif /* DDB */
Index: src/sys/arch/i386/i386/db_interface.c
diff -u src/sys/arch/i386/i386/db_interface.c:1.72 src/sys/arch/i386/i386/db_interface.c:1.72.2.1
--- src/sys/arch/i386/i386/db_interface.c:1.72 Tue May 23 08:54:38 2017
+++ src/sys/arch/i386/i386/db_interface.c Thu Apr 5 18:15:02 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: db_interface.c,v 1.72 2017/05/23 08:54:38 nonaka Exp $ */
+/* $NetBSD: db_interface.c,v 1.72.2.1 2018/04/05 18:15:02 martin Exp $ */
/*
* Mach Operating System
@@ -33,7 +33,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: db_interface.c,v 1.72 2017/05/23 08:54:38 nonaka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: db_interface.c,v 1.72.2.1 2018/04/05 18:15:02 martin Exp $");
#include "opt_ddb.h"
#include "opt_multiprocessor.h"
@@ -105,7 +105,7 @@ db_regs_t *ddb_regp = 0;
int ddb_cpu = NOCPU;
typedef void (vector)(void);
-extern vector Xintrddbipi, Xx2apic_intrddbipi;
+extern vector Xintr_ddbipi, Xintr_x2apic_ddbipi;
void
db_machine_init(void)
@@ -113,10 +113,10 @@ db_machine_init(void)
#ifdef MULTIPROCESSOR
#ifndef XEN
- vector *handler = &Xintrddbipi;
+ vector *handler = &Xintr_ddbipi;
#if NLAPIC > 0
if (lapic_is_x2apic())
- handler = &Xx2apic_intrddbipi;
+ handler = &Xintr_x2apic_ddbipi;
#endif
ddb_vec = idt_vec_alloc(0xf0, 0xff);
idt_vec_set(ddb_vec, handler);
Index: src/sys/arch/i386/i386/machdep.c
diff -u src/sys/arch/i386/i386/machdep.c:1.782.6.4 src/sys/arch/i386/i386/machdep.c:1.782.6.5
--- src/sys/arch/i386/i386/machdep.c:1.782.6.4 Tue Mar 13 15:47:45 2018
+++ src/sys/arch/i386/i386/machdep.c Thu Apr 5 18:15:02 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: machdep.c,v 1.782.6.4 2018/03/13 15:47:45 martin Exp $ */
+/* $NetBSD: machdep.c,v 1.782.6.5 2018/04/05 18:15:02 martin Exp $ */
/*-
* Copyright (c) 1996, 1997, 1998, 2000, 2004, 2006, 2008, 2009
@@ -67,7 +67,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.782.6.4 2018/03/13 15:47:45 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.782.6.5 2018/04/05 18:15:02 martin Exp $");
#include "opt_beep.h"
#include "opt_compat_ibcs2.h"
@@ -607,7 +607,7 @@ tss_init(struct i386tss *tss, void *stac
extern vector IDTVEC(tss_trap08);
#if defined(DDB) && defined(MULTIPROCESSOR)
-extern vector Xintrddbipi, Xx2apic_intrddbipi;
+extern vector Xintr_ddbipi, Xintr_x2apic_ddbipi;
extern int ddb_vec;
#endif
@@ -639,7 +639,7 @@ cpu_set_tss_gates(struct cpu_info *ci)
ci->ci_ddbipi_stack = (char *)uvm_km_alloc(kernel_map, USPACE, 0,
UVM_KMF_WIRED);
tss_init(&ci->ci_tss->ddbipi_tss, ci->ci_ddbipi_stack,
- x2apic_mode ? Xx2apic_intrddbipi : Xintrddbipi);
+ x2apic_mode ? Xintr_x2apic_ddbipi : Xintr_ddbipi);
setsegment(&sd, &ci->ci_tss->ddbipi_tss, sizeof(struct i386tss) - 1,
SDT_SYS386TSS, SEL_KPL, 0, 0);
Index: src/sys/arch/i386/i386/spl.S
diff -u src/sys/arch/i386/i386/spl.S:1.40 src/sys/arch/i386/i386/spl.S:1.40.22.1
--- src/sys/arch/i386/i386/spl.S:1.40 Sat Jan 11 17:06:15 2014
+++ src/sys/arch/i386/i386/spl.S Thu Apr 5 18:15:02 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: spl.S,v 1.40 2014/01/11 17:06:15 christos Exp $ */
+/* $NetBSD: spl.S,v 1.40.22.1 2018/04/05 18:15:02 martin Exp $ */
/*
* Copyright (c) 1998, 2007, 2008 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <machine/asm.h>
-__KERNEL_RCSID(0, "$NetBSD: spl.S,v 1.40 2014/01/11 17:06:15 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: spl.S,v 1.40.22.1 2018/04/05 18:15:02 martin Exp $");
#include "opt_vm86.h"
#include "opt_ddb.h"
@@ -393,11 +393,11 @@ ENTRY(softint_trigger)
END(softint_trigger)
/*
- * Xpreemptrecurse()
+ * Xrecurse_preempt()
*
* Handles preemption interrupts via Xspllower().
*/
-IDTVEC(preemptrecurse)
+IDTVEC(recurse_preempt)
movl $IPL_PREEMPT, CPUVAR(ILEVEL)
sti
pushl $0
@@ -405,14 +405,14 @@ IDTVEC(preemptrecurse)
addl $4, %esp
cli
jmp *%esi
-IDTVEC_END(preemptrecurse)
+IDTVEC_END(recurse_preempt)
/*
- * Xpreemptresume()
+ * Xresume_preempt()
*
* Handles preemption interrupts via Xdoreti().
*/
-IDTVEC(preemptresume)
+IDTVEC(resume_preempt)
movl $IPL_PREEMPT, CPUVAR(ILEVEL)
sti
testb $CHK_UPL, TF_CS(%esp)
@@ -431,5 +431,5 @@ IDTVEC(preemptresume)
call _C_LABEL(preempt) # from user
cli
jmp *%esi
-IDTVEC_END(preemptresume)
+IDTVEC_END(resume_preempt)
#endif /* !XEN */
Index: src/sys/arch/i386/i386/vector.S
diff -u src/sys/arch/i386/i386/vector.S:1.69 src/sys/arch/i386/i386/vector.S:1.69.2.1
--- src/sys/arch/i386/i386/vector.S:1.69 Tue May 23 08:54:38 2017
+++ src/sys/arch/i386/i386/vector.S Thu Apr 5 18:15:02 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: vector.S,v 1.69 2017/05/23 08:54:38 nonaka Exp $ */
+/* $NetBSD: vector.S,v 1.69.2.1 2018/04/05 18:15:02 martin Exp $ */
/*
* Copyright 2002 (c) Wasabi Systems, Inc.
@@ -65,7 +65,7 @@
*/
#include <machine/asm.h>
-__KERNEL_RCSID(0, "$NetBSD: vector.S,v 1.69 2017/05/23 08:54:38 nonaka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vector.S,v 1.69.2.1 2018/04/05 18:15:02 martin Exp $");
#include "opt_ddb.h"
#include "opt_multiprocessor.h"
@@ -225,7 +225,7 @@ IDTVEC_END(intr_x2apic_tlb)
* No need to use INTRENTRY, since we were brought here through a task-gate
* which triggered a hardware context switch and saved the GPRs in the TSS.
*/
-IDTVEC(intrddbipi)
+IDTVEC(intr_ddbipi)
1:
str %ax
GET_TSS
@@ -243,9 +243,9 @@ IDTVEC(intrddbipi)
movl $0,LAPIC_TPRI(%ebx)
iret
jmp 1b
-IDTVEC_END(intrddbipi)
+IDTVEC_END(intr_ddbipi)
-IDTVEC(x2apic_intrddbipi)
+IDTVEC(intr_x2apic_ddbipi)
1:
str %ax
GET_TSS
@@ -269,7 +269,7 @@ IDTVEC(x2apic_intrddbipi)
wrmsr
iret
jmp 1b
-IDTVEC_END(x2apic_intrddbipi)
+IDTVEC_END(intr_x2apic_ddbipi)
#endif /* DDB */
#endif /* MULTIPROCESSOR */
Index: src/sys/arch/x86/include/intr.h
diff -u src/sys/arch/x86/include/intr.h:1.50.2.1 src/sys/arch/x86/include/intr.h:1.50.2.2
--- src/sys/arch/x86/include/intr.h:1.50.2.1 Sat Jan 13 21:50:31 2018
+++ src/sys/arch/x86/include/intr.h Thu Apr 5 18:15:02 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: intr.h,v 1.50.2.1 2018/01/13 21:50:31 snj Exp $ */
+/* $NetBSD: intr.h,v 1.50.2.2 2018/04/05 18:15:02 martin Exp $ */
/*-
* Copyright (c) 1998, 2001, 2006, 2007, 2008 The NetBSD Foundation, Inc.
@@ -171,8 +171,8 @@ splraiseipl(ipl_cookie_t icookie)
*/
void Xsoftintr(void);
-void Xpreemptrecurse(void);
-void Xpreemptresume(void);
+void Xrecurse_preempt(void);
+void Xresume_preempt(void);
extern struct intrstub i8259_stubs[];
extern struct intrstub ioapic_edge_stubs[];
Index: src/sys/arch/x86/x86/intr.c
diff -u src/sys/arch/x86/x86/intr.c:1.101.2.4 src/sys/arch/x86/x86/intr.c:1.101.2.5
--- src/sys/arch/x86/x86/intr.c:1.101.2.4 Mon Mar 26 11:19:39 2018
+++ src/sys/arch/x86/x86/intr.c Thu Apr 5 18:15:03 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: intr.c,v 1.101.2.4 2018/03/26 11:19:39 martin Exp $ */
+/* $NetBSD: intr.c,v 1.101.2.5 2018/04/05 18:15:03 martin Exp $ */
/*-
* Copyright (c) 2007, 2008, 2009 The NetBSD Foundation, Inc.
@@ -133,7 +133,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intr.c,v 1.101.2.4 2018/03/26 11:19:39 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intr.c,v 1.101.2.5 2018/04/05 18:15:03 martin Exp $");
#include "opt_intrdebug.h"
#include "opt_multiprocessor.h"
@@ -1331,8 +1331,8 @@ cpu_intr_init(struct cpu_info *ci)
#endif
isp = kmem_zalloc(sizeof(*isp), KM_SLEEP);
- isp->is_recurse = Xpreemptrecurse;
- isp->is_resume = Xpreemptresume;
+ isp->is_recurse = Xrecurse_preempt;
+ isp->is_resume = Xresume_preempt;
fake_preempt_intrhand.ih_level = IPL_PREEMPT;
isp->is_handlers = &fake_preempt_intrhand;
isp->is_pic = &softintr_pic;
Index: src/sys/arch/x86/x86/lapic.c
diff -u src/sys/arch/x86/x86/lapic.c:1.58.2.4 src/sys/arch/x86/x86/lapic.c:1.58.2.5
--- src/sys/arch/x86/x86/lapic.c:1.58.2.4 Thu Nov 30 14:23:12 2017
+++ src/sys/arch/x86/x86/lapic.c Thu Apr 5 18:15:03 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: lapic.c,v 1.58.2.4 2017/11/30 14:23:12 martin Exp $ */
+/* $NetBSD: lapic.c,v 1.58.2.5 2018/04/05 18:15:03 martin Exp $ */
/*-
* Copyright (c) 2000, 2008 The NetBSD Foundation, Inc.
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: lapic.c,v 1.58.2.4 2017/11/30 14:23:12 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: lapic.c,v 1.58.2.5 2018/04/05 18:15:03 martin Exp $");
#include "acpica.h"
#include "ioapic.h"
@@ -80,7 +80,7 @@ __KERNEL_RCSID(0, "$NetBSD: lapic.c,v 1.
#ifdef MULTIPROCESSOR
#ifdef __x86_64__
typedef void (vector)(void);
-extern vector Xx2apic_intrddb;
+extern vector Xintr_x2apic_ddbipi;
extern int ddb_vec;
#endif
#endif
@@ -333,7 +333,7 @@ lapic_setup_bsp(paddr_t lapic_base)
#endif
#if defined(DDB) && defined(MULTIPROCESSOR)
#ifdef __x86_64__
- setgate(&idt[ddb_vec], &Xx2apic_intrddb, 1, SDT_SYS386IGT, SEL_KPL,
+ setgate(&idt[ddb_vec], &Xintr_x2apic_ddbipi, 1, SDT_SYS386IGT, SEL_KPL,
GSEL(GCODE_SEL, SEL_KPL));
#else
/* Set DDB IPI handler in cpu_set_tss_gates() when cpu0 is attached. */