Module Name:    src
Committed By:   thorpej
Date:           Tue Jan 16 01:26:34 UTC 2024

Modified Files:
        src/sys/arch/mvme68k/conf: files.mvme68k
        src/sys/arch/mvme68k/include: cpu.h intr.h types.h vectors.h
        src/sys/arch/mvme68k/mvme68k: genassym.cf isr.h locore.s machdep.c
            trap.c
Removed Files:
        src/sys/arch/mvme68k/mvme68k: isr.c

Log Message:
Switch mvme68k over to the common interrupt dispatch code and G/C
__HAVE_LEGACY_INTRCNT.


To generate a diff of this commit:
cvs rdiff -u -r1.67 -r1.68 src/sys/arch/mvme68k/conf/files.mvme68k
cvs rdiff -u -r1.52 -r1.53 src/sys/arch/mvme68k/include/cpu.h
cvs rdiff -u -r1.22 -r1.23 src/sys/arch/mvme68k/include/intr.h
cvs rdiff -u -r1.15 -r1.16 src/sys/arch/mvme68k/include/types.h
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/mvme68k/include/vectors.h
cvs rdiff -u -r1.40 -r1.41 src/sys/arch/mvme68k/mvme68k/genassym.cf
cvs rdiff -u -r1.36 -r0 src/sys/arch/mvme68k/mvme68k/isr.c
cvs rdiff -u -r1.12 -r1.13 src/sys/arch/mvme68k/mvme68k/isr.h
cvs rdiff -u -r1.126 -r1.127 src/sys/arch/mvme68k/mvme68k/locore.s
cvs rdiff -u -r1.162 -r1.163 src/sys/arch/mvme68k/mvme68k/machdep.c
cvs rdiff -u -r1.114 -r1.115 src/sys/arch/mvme68k/mvme68k/trap.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/mvme68k/conf/files.mvme68k
diff -u src/sys/arch/mvme68k/conf/files.mvme68k:1.67 src/sys/arch/mvme68k/conf/files.mvme68k:1.68
--- src/sys/arch/mvme68k/conf/files.mvme68k:1.67	Sat Jan 13 20:18:46 2024
+++ src/sys/arch/mvme68k/conf/files.mvme68k	Tue Jan 16 01:26:34 2024
@@ -1,4 +1,4 @@
-#	$NetBSD: files.mvme68k,v 1.67 2024/01/13 20:18:46 thorpej Exp $
+#	$NetBSD: files.mvme68k,v 1.68 2024/01/16 01:26:34 thorpej Exp $
 
 # config file for mvme68k
 
@@ -91,13 +91,14 @@ file arch/mvme68k/mvme68k/bus_space.c
 file arch/mvme68k/mvme68k/clock.c
 file arch/mvme68k/mvme68k/conf.c
 file arch/mvme68k/mvme68k/disksubr.c
-file arch/mvme68k/mvme68k/isr.c
 file arch/mvme68k/mvme68k/machdep.c
 file arch/mvme68k/mvme68k/pmap_bootstrap.c	compile-with "${NOPROF_C}"
 file arch/mvme68k/mvme68k/trap.c
 file arch/m68k/m68k/cacheops.c
 file arch/m68k/m68k/db_memrw.c			ddb | kgdb
 file arch/m68k/m68k/kgdb_machdep.c		kgdb
+file arch/m68k/m68k/m68k_intr.c
+file arch/m68k/m68k/m68k_intr_stubs.s
 file arch/m68k/m68k/m68k_trap.c
 file arch/m68k/m68k/mmu_subr.s
 file arch/m68k/m68k/pmap_motorola.c

Index: src/sys/arch/mvme68k/include/cpu.h
diff -u src/sys/arch/mvme68k/include/cpu.h:1.52 src/sys/arch/mvme68k/include/cpu.h:1.53
--- src/sys/arch/mvme68k/include/cpu.h:1.52	Tue Jan  9 04:16:26 2024
+++ src/sys/arch/mvme68k/include/cpu.h	Tue Jan 16 01:26:34 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: cpu.h,v 1.52 2024/01/09 04:16:26 thorpej Exp $	*/
+/*	$NetBSD: cpu.h,v 1.53 2024/01/16 01:26:34 thorpej Exp $	*/
 
 /*
  * Copyright (c) 1988 University of Utah.
@@ -60,17 +60,17 @@
 /*
  * Arguments to hardclock and gatherstats encapsulate the previous
  * machine state in an opaque clockframe.  On the mvme68k, we use
- * what the hardware pushes on an interrupt (frame format 0).
+ * what the locore.s glue puts on the stack before calling C-code.
  */
 struct clockframe {
-	u_short	sr;		/* sr at time of interrupt */
-	u_long	pc;		/* pc at time of interrupt */
-	u_short	fmt:4,
-		vec:12;		/* vector offset (4-word frame) */
+	u_int	cf_regs[4];	/* d0,d1,a0,a1 */
+	u_short	cf_sr;		/* sr at time of interrupt */
+	u_long	cf_pc;		/* pc at time of interrupt */
+	u_short	cf_vo;		/* vector offset (4-word frame) */
 } __attribute__((packed));
 
-#define	CLKF_USERMODE(framep)	(((framep)->sr & PSL_S) == 0)
-#define	CLKF_PC(framep)		((framep)->pc)
+#define	CLKF_USERMODE(framep)	(((framep)->cf_sr & PSL_S) == 0)
+#define	CLKF_PC(framep)		((framep)->cf_pc)
 
 /*
  * The clock interrupt handler can determine if it's a nested
@@ -78,8 +78,7 @@ struct clockframe {
  * (Remember, the clock interrupt handler itself will cause the
  * depth counter to be incremented).
  */
-extern volatile unsigned int interrupt_depth;
-#define	CLKF_INTR(framep)	(interrupt_depth > 1)
+#define	CLKF_INTR(framep)	(idepth > 1)
 
 
 /*

Index: src/sys/arch/mvme68k/include/intr.h
diff -u src/sys/arch/mvme68k/include/intr.h:1.22 src/sys/arch/mvme68k/include/intr.h:1.23
--- src/sys/arch/mvme68k/include/intr.h:1.22	Tue Jul 11 11:07:54 2023
+++ src/sys/arch/mvme68k/include/intr.h	Tue Jan 16 01:26:34 2024
@@ -1,11 +1,11 @@
-/*	$NetBSD: intr.h,v 1.22 2023/07/11 11:07:54 riastradh Exp $	*/
+/*	$NetBSD: intr.h,v 1.23 2024/01/16 01:26:34 thorpej Exp $	*/
 
 /*-
- * Copyright (c) 2000 The NetBSD Foundation, Inc.
+ * Copyright (c) 2024 The NetBSD Foundation, Inc.
  * All rights reserved.
  *
  * This code is derived from software contributed to The NetBSD Foundation
- * by Jason R. Thorpe and Steve C. Woodford.
+ * by Jason R. Thorpe.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -29,65 +29,21 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
-#ifndef _MVME68K_INTR_H
-#define _MVME68K_INTR_H
+#ifndef _MVME68K_INTR_H_
+#define _MVME68K_INTR_H_
 
-#include <machine/psl.h>
+#include <m68k/psl.h>
 
-#define	IPL_NONE	0	/* disable only this interrupt */
-#define	IPL_SOFTCLOCK	1	/* clock software interrupts */
-#define	IPL_SOFTBIO	2	/* block software interrupts */
-#define	IPL_SOFTNET	3	/* network software interrupts */
-#define	IPL_SOFTSERIAL	4	/* serial software interrupts */
-#define	IPL_VM		5
-#define	IPL_SCHED	6
-#define	IPL_HIGH	7
-#define	NIPL		8
-
-#if defined(_KERNEL) || defined(_KMEMUSER)
-typedef struct {
-	uint16_t _psl;
-} ipl_cookie_t;
-#endif
-
-#ifdef _KERNEL
-#define spl0()			_spl0()
-#define splsoftclock()		splraise1()
-#define splsoftbio()		splraise1()
-#define splsoftnet()		splraise1()
-#define splsoftserial()		splraise1()
-#define splvm()			splraise3()
-#define splsched()		spl7()
-#define splhigh()		spl7()
-
-#ifndef _LOCORE
-
-extern const uint16_t ipl2psl_table[NIPL];
-
-typedef int ipl_t;
-
-static __inline ipl_cookie_t
-makeiplcookie(ipl_t ipl)
-{
-
-	return (ipl_cookie_t){._psl = ipl2psl_table[ipl]};
-}
-
-static __inline int
-splraiseipl(ipl_cookie_t icookie)
-{
-
-	return _splraise(icookie._psl);
-}
-
-static __inline void
-splx(int sr)
-{
+#define	MACHINE_PSL_IPL_SOFTCLOCK	PSL_IPL1
+#define	MACHINE_PSL_IPL_SOFTBIO		PSL_IPL1
+#define	MACHINE_PSL_IPL_SOFTNET		PSL_IPL1
+#define	MACHINE_PSL_IPL_SOFTSERIAL	PSL_IPL1
+#define	MACHINE_PSL_IPL_VM		PSL_IPL3
+#define	MACHINE_PSL_IPL_SCHED		PSL_IPL7
 
-	__asm volatile("movw %0,%%sr" : : "di" (sr));
-}
+#define	MACHINE_INTREVCNT_NAMES						\
+	{ "spur", "lev1", "lev2", "lev3", "lev4", "clock", "lev6", "nmi" }
 
-#endif /* !_LOCORE */
-#endif /* _KERNEL */
+#include <m68k/intr.h>
 
-#endif /* _MVME68K_INTR_H */
+#endif	/* _MVME68K_INTR_H */

Index: src/sys/arch/mvme68k/include/types.h
diff -u src/sys/arch/mvme68k/include/types.h:1.15 src/sys/arch/mvme68k/include/types.h:1.16
--- src/sys/arch/mvme68k/include/types.h:1.15	Thu Apr  1 04:43:00 2021
+++ src/sys/arch/mvme68k/include/types.h	Tue Jan 16 01:26:34 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: types.h,v 1.15 2021/04/01 04:43:00 simonb Exp $	*/
+/*	$NetBSD: types.h,v 1.16 2024/01/16 01:26:34 thorpej Exp $	*/
 
 #ifndef _MACHINE_TYPES_H_
 #define	_MACHINE_TYPES_H_
@@ -6,6 +6,6 @@
 #include <m68k/types.h>
 
 #define	__HAVE_DEVICE_REGISTER
-#define	__HAVE_LEGACY_INTRCNT
+#define	__HAVE_M68K_INTR_VECTORED
 
 #endif

Index: src/sys/arch/mvme68k/include/vectors.h
diff -u src/sys/arch/mvme68k/include/vectors.h:1.1 src/sys/arch/mvme68k/include/vectors.h:1.2
--- src/sys/arch/mvme68k/include/vectors.h:1.1	Sat Jan 13 20:18:46 2024
+++ src/sys/arch/mvme68k/include/vectors.h	Tue Jan 16 01:26:34 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: vectors.h,v 1.1 2024/01/13 20:18:46 thorpej Exp $	*/
+/*	$NetBSD: vectors.h,v 1.2 2024/01/16 01:26:34 thorpej Exp $	*/
 
 /*-
  * Copyright (c) 2024 The NetBSD Foundation, Inc.
@@ -36,14 +36,14 @@
 
 #include <m68k/vectors.h>
 
-#define	MACHINE_AV0_HANDLER	intrhand_autovec
-#define	MACHINE_AV1_HANDLER	intrhand_autovec
-#define	MACHINE_AV2_HANDLER	intrhand_autovec
-#define	MACHINE_AV3_HANDLER	intrhand_autovec
-#define	MACHINE_AV4_HANDLER	intrhand_autovec
-#define	MACHINE_AV5_HANDLER	intrhand_autovec
-#define	MACHINE_AV6_HANDLER	intrhand_autovec
-#define	MACHINE_AV7_HANDLER	intrhand_autovec
+#define	MACHINE_AV0_HANDLER	intrstub_autovec
+#define	MACHINE_AV1_HANDLER	intrstub_autovec
+#define	MACHINE_AV2_HANDLER	intrstub_autovec
+#define	MACHINE_AV3_HANDLER	intrstub_autovec
+#define	MACHINE_AV4_HANDLER	intrstub_autovec
+#define	MACHINE_AV5_HANDLER	intrstub_autovec
+#define	MACHINE_AV6_HANDLER	intrstub_autovec
+#define	MACHINE_AV7_HANDLER	intrstub_autovec
 
 #endif /* _KERNEL */
 

Index: src/sys/arch/mvme68k/mvme68k/genassym.cf
diff -u src/sys/arch/mvme68k/mvme68k/genassym.cf:1.40 src/sys/arch/mvme68k/mvme68k/genassym.cf:1.41
--- src/sys/arch/mvme68k/mvme68k/genassym.cf:1.40	Wed Dec 27 17:35:36 2023
+++ src/sys/arch/mvme68k/mvme68k/genassym.cf	Tue Jan 16 01:26:34 2024
@@ -1,4 +1,4 @@
-#	$NetBSD: genassym.cf,v 1.40 2023/12/27 17:35:36 thorpej Exp $
+#	$NetBSD: genassym.cf,v 1.41 2024/01/16 01:26:34 thorpej Exp $
 
 #
 # Copyright (c) 1982, 1990, 1993
@@ -67,6 +67,8 @@ endif
 # MMU options
 define	M68K_MMU_MOTOROLA	1
 
+define	__HAVE_M68K_INTR_VECTORED	1
+
 # values for mmutype
 define	MMU_68060		MMU_68060
 define	MMU_68040		MMU_68040

Index: src/sys/arch/mvme68k/mvme68k/isr.h
diff -u src/sys/arch/mvme68k/mvme68k/isr.h:1.12 src/sys/arch/mvme68k/mvme68k/isr.h:1.13
--- src/sys/arch/mvme68k/mvme68k/isr.h:1.12	Mon Apr 28 20:23:29 2008
+++ src/sys/arch/mvme68k/mvme68k/isr.h	Tue Jan 16 01:26:34 2024
@@ -1,7 +1,7 @@
-/*	$NetBSD: isr.h,v 1.12 2008/04/28 20:23:29 martin Exp $	*/
+/*	$NetBSD: isr.h,v 1.13 2024/01/16 01:26:34 thorpej Exp $	*/
 
 /*-
- * Copyright (c) 1996 The NetBSD Foundation, Inc.
+ * Copyright (c) 2024 The NetBSD Foundation, Inc.
  * All rights reserved.
  *
  * This code is derived from software contributed to The NetBSD Foundation
@@ -29,56 +29,55 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <sys/queue.h>
+#ifndef _MVME68K_ISR_H_
+#define	_MVME68K_ISR_H_
 
-/*
- * The location and size of the autovectored interrupt portion
- * of the vector table.
- */
-#define ISRAUTOVEC	0x18
-#define NISRAUTOVEC	8
-#define NIPLS		8
+#include <sys/intr.h>
 
 /*
- * The location and size of the vectored interrupt portion
- * of the vector table.
+ * Aliases for the legacy mvme68k ISR routines.
  */
-#define ISRVECTORED	0x40
-#define NISRVECTORED	192
 
-/*
- * Autovectored interrupt handler cookie.
- */
-struct isr_autovec {
-	LIST_ENTRY(isr_autovec) isr_link;
-	int		(*isr_func)(void *);
-	void		*isr_arg;
-	int		isr_ipl;
-	int		isr_priority;
-	struct evcnt	*isr_evcnt;
-};
+static inline void
+isrinit(void)
+{
+	extern int nmihand(void *);
+
+	m68k_intr_init(NULL);
+	m68k_intr_establish(nmihand, NULL, NULL, 0, 7, 0, 0);
+}
+
+static inline void
+isrlink_autovec(int (*func)(void *), void *arg, int ipl, int isrpri,
+    struct evcnt *ev)
+{
+	/* XXX leaks interrupt handle. */
+	m68k_intr_establish(func, arg, ev, 0, ipl, isrpri, 0);
+}
+
+static inline void
+isrlink_vectored(int (*func)(void *), void *arg, int ipl, int vec,
+    struct evcnt *ev)
+{
+	/* XXX leaks interrupt handle. */
+	m68k_intr_establish(func, arg, ev, vec, ipl, 0, 0);
+}
+
+static inline struct evcnt *
+isrlink_evcnt(int ipl)
+{
+	KASSERT(ipl >= 0 && ipl <= 7);
+	return &m68k_intr_evcnt[ipl];
+}
+
+static inline void
+isrunlink_vectored(int vec)
+{
+	/* XXX isrlink_vectored() should return a handle. */
+	void *ih = m68k_intrvec_intrhand(vec);
+	if (ih != NULL) {
+		m68k_intr_disestablish(ih);
+	}
+}
 
-typedef LIST_HEAD(, isr_autovec) isr_autovec_list_t;
-
-/*
- * Vectored interrupt handler cookie.  The handler may request to
- * receive the exception frame as an argument by specifying NULL
- * when establishing the interrupt.
- */
-struct isr_vectored {
-	int		(*isr_func)(void *);
-	void		*isr_arg;
-	int		isr_ipl;
-	struct evcnt	*isr_evcnt;
-};
-
-extern	struct evcnt mvme68k_irq_evcnt[];
-
-void	isrinit(void);
-struct evcnt *isrlink_evcnt(int);
-void	isrlink_autovec(int (*)(void *), void *, int, int, struct evcnt *);
-void	isrlink_vectored(int (*)(void *), void *, int, int, struct evcnt *);
-void	isrunlink_vectored(int);
-void	isrdispatch_autovec(struct clockframe *);
-void	isrdispatch_vectored(int, struct clockframe *);
-void	netintr(void);
+#endif /* _MVME68K_ISR_H_ */

Index: src/sys/arch/mvme68k/mvme68k/locore.s
diff -u src/sys/arch/mvme68k/mvme68k/locore.s:1.126 src/sys/arch/mvme68k/mvme68k/locore.s:1.127
--- src/sys/arch/mvme68k/mvme68k/locore.s:1.126	Sat Jan 13 20:18:47 2024
+++ src/sys/arch/mvme68k/mvme68k/locore.s	Tue Jan 16 01:26:34 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: locore.s,v 1.126 2024/01/13 20:18:47 thorpej Exp $	*/
+/*	$NetBSD: locore.s,v 1.127 2024/01/16 01:26:34 thorpej Exp $	*/
 
 /*
  * Copyright (c) 1988 University of Utah.
@@ -913,47 +913,6 @@ Lbrkpt3:
 #include <m68k/m68k/sigreturn.s>
 
 /*
- * Interrupt handlers.
- *
- * For auto-vectored interrupts, the CPU provides the
- * vector 0x18+level.
- *
- * intrhand_autovec is the entry point for auto-vectored
- * interrupts.
- *
- * For vectored interrupts, we pull the pc, evec, and exception frame
- * and pass them to the vectored interrupt dispatcher.  The vectored
- * interrupt dispatcher will deal with strays.
- *
- * intrhand_vectored is the entry point for vectored interrupts.
- */
-
-ENTRY_NOPROFILE(intrhand_autovec)
-	addql	#1,_C_LABEL(interrupt_depth)
-	INTERRUPT_SAVEREG
-	lea	%sp@(16),%a1		| get pointer to frame
-	movl	%a1,%sp@-
-	jbsr	_C_LABEL(isrdispatch_autovec)  | call dispatcher
-	addql	#4,%sp
-	jbra	Lintrhand_exit
-
-ENTRY_NOPROFILE(intrhand_vectored)
-	addql	#1,_C_LABEL(interrupt_depth)
-	INTERRUPT_SAVEREG
-	lea	%sp@(16),%a1		| get pointer to frame
-	movl	%a1,%sp@-
-	movw	%sr,%d0
-	bfextu	%d0,21,3,%d0		| Get current ipl
-	movl	%d0,%sp@-		| Push it
-	jbsr	_C_LABEL(isrdispatch_vectored) | call dispatcher
-	addql	#8,%sp
-Lintrhand_exit:
-	INTERRUPT_RESTOREREG
-	subql	#1,_C_LABEL(interrupt_depth)
-
-	/* FALLTHROUGH to rei */
-
-/*
  * Emulation of VAX REI instruction.
  *
  * This code deals with checking for and servicing ASTs
@@ -1193,24 +1152,3 @@ GLOBAL(intiobase_phys)
 
 GLOBAL(intiotop_phys)
 	.long	0		| PA of top of board's I/O registers
-
-/*
- * interrupt counters.
- * XXXSCW: Will go away soon; kept here to keep vmstat happy
- */
-GLOBAL(intrnames)
-	.asciz	"spur"
-	.asciz	"lev1"
-	.asciz	"lev2"
-	.asciz	"lev3"
-	.asciz	"lev4"
-	.asciz	"clock"
-	.asciz	"lev6"
-	.asciz	"nmi"
-	.asciz	"statclock"
-GLOBAL(eintrnames)
-	.even
-
-GLOBAL(intrcnt)
-	.long	0,0,0,0,0,0,0,0,0
-GLOBAL(eintrcnt)

Index: src/sys/arch/mvme68k/mvme68k/machdep.c
diff -u src/sys/arch/mvme68k/mvme68k/machdep.c:1.162 src/sys/arch/mvme68k/mvme68k/machdep.c:1.163
--- src/sys/arch/mvme68k/mvme68k/machdep.c:1.162	Sat Jan 13 20:18:47 2024
+++ src/sys/arch/mvme68k/mvme68k/machdep.c	Tue Jan 16 01:26:34 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: machdep.c,v 1.162 2024/01/13 20:18:47 thorpej Exp $	*/
+/*	$NetBSD: machdep.c,v 1.163 2024/01/16 01:26:34 thorpej Exp $	*/
 
 /*
  * Copyright (c) 1988 University of Utah.
@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.162 2024/01/13 20:18:47 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.163 2024/01/16 01:26:34 thorpej Exp $");
 
 #include "opt_ddb.h"
 #include "opt_m060sp.h"
@@ -1029,17 +1029,6 @@ module_init_md(void)
 }
 #endif
 
-const uint16_t ipl2psl_table[NIPL] = {
-	[IPL_NONE]       = PSL_S | PSL_IPL0,
-	[IPL_SOFTCLOCK]  = PSL_S | PSL_IPL1,
-	[IPL_SOFTBIO]    = PSL_S | PSL_IPL1,
-	[IPL_SOFTNET]    = PSL_S | PSL_IPL1,
-	[IPL_SOFTSERIAL] = PSL_S | PSL_IPL1,
-	[IPL_VM]         = PSL_S | PSL_IPL3,
-	[IPL_SCHED]      = PSL_S | PSL_IPL7,
-	[IPL_HIGH]       = PSL_S | PSL_IPL7,
-};
-
 int
 mm_md_physacc(paddr_t pa, vm_prot_t prot)
 {

Index: src/sys/arch/mvme68k/mvme68k/trap.c
diff -u src/sys/arch/mvme68k/mvme68k/trap.c:1.114 src/sys/arch/mvme68k/mvme68k/trap.c:1.115
--- src/sys/arch/mvme68k/mvme68k/trap.c:1.114	Thu Oct  5 19:41:05 2023
+++ src/sys/arch/mvme68k/mvme68k/trap.c	Tue Jan 16 01:26:34 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: trap.c,v 1.114 2023/10/05 19:41:05 ad Exp $	*/
+/*	$NetBSD: trap.c,v 1.115 2024/01/16 01:26:34 thorpej Exp $	*/
 
 /*
  * Copyright (c) 1988 University of Utah.
@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.114 2023/10/05 19:41:05 ad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.115 2024/01/16 01:26:34 thorpej Exp $");
 
 #include "opt_ddb.h"
 #include "opt_execfmt.h"
@@ -564,7 +564,7 @@ trap(struct frame *fp, int type, unsigne
 		}
 
 #ifdef DIAGNOSTIC
-		if (interrupt_depth && !panicking) {
+		if (idepth && !panicking) {
 			printf("trap: calling uvm_fault() from interrupt!\n");
 			goto dopanic;
 		}

Reply via email to