Page MenuHomeFreeBSD

D17687.id49566.diff
No OneTemporary

D17687.id49566.diff

Index: sys/kern/subr_kdb.c
===================================================================
--- sys/kern/subr_kdb.c
+++ sys/kern/subr_kdb.c
@@ -652,9 +652,7 @@
struct kdb_dbbe *be;
register_t intr;
int handled;
-#ifdef SMP
int did_stop_cpus;
-#endif
be = kdb_dbbe;
if (be == NULL || be->dbbe_trap == NULL)
@@ -666,16 +664,17 @@
intr = intr_disable();
-#ifdef SMP
if (!SCHEDULER_STOPPED()) {
+#ifdef SMP
other_cpus = all_cpus;
CPU_NAND(&other_cpus, &stopped_cpus);
CPU_CLR(PCPU_GET(cpuid), &other_cpus);
stop_cpus_hard(other_cpus);
+#endif
+ curthread->td_stopsched = 1;
did_stop_cpus = 1;
} else
did_stop_cpus = 0;
-#endif
kdb_active++;
@@ -703,12 +702,13 @@
kdb_active--;
-#ifdef SMP
if (did_stop_cpus) {
+ curthread->td_stopsched = 0;
+#ifdef SMP
CPU_AND(&other_cpus, &stopped_cpus);
restart_cpus(other_cpus);
- }
#endif
+ }
intr_restore(intr);

File Metadata

Mime Type
text/plain
Expires
Mon, Aug 3, 8:07 PM (22 h, 37 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35915410
Default Alt Text
D17687.id49566.diff (921 B)

Event Timeline