diff options
-rw-r--r-- | i386/i386/db_trace.c | 3 | ||||
-rw-r--r-- | i386/i386at/model_dep.h | 4 |
2 files changed, 4 insertions, 3 deletions
diff --git a/i386/i386/db_trace.c b/i386/i386/db_trace.c index 99cb8c48..04c868af 100644 --- a/i386/i386/db_trace.c +++ b/i386/i386/db_trace.c @@ -37,6 +37,7 @@ #include <machine/machspl.h> #include <machine/db_interface.h> #include <machine/db_trace.h> +#include <machine/cpu_number.h> #include <i386at/model_dep.h> #include <ddb/db_access.h> @@ -147,7 +148,7 @@ db_i386_reg_value( if (thread == current_thread()) { if (ddb_regs.cs & 0x3) dp = vp->valuep; - else if (ON_INT_STACK(ddb_regs.ebp)) + else if (ON_INT_STACK(ddb_regs.ebp, cpu_number())) db_error("cannot get/set user registers in nested interrupt\n"); } } else { diff --git a/i386/i386at/model_dep.h b/i386/i386at/model_dep.h index df327ca2..3d5b6645 100644 --- a/i386/i386at/model_dep.h +++ b/i386/i386at/model_dep.h @@ -27,8 +27,8 @@ */ extern vm_offset_t int_stack_top[NCPUS], int_stack_base[NCPUS]; -/* Check whether P points to the interrupt stack. */ -#define ON_INT_STACK(P) (((P) & ~(INTSTACK_SIZE-1)) == int_stack_base[0]) +/* Check whether P points to the per-cpu interrupt stack. */ +#define ON_INT_STACK(P, CPU) (((P) & ~(INTSTACK_SIZE-1)) == int_stack_base[CPU]) extern vm_offset_t timemmap(dev_t dev, vm_offset_t off, vm_prot_t prot); |