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. */