Move some MI pieces out of suspend_mp/resume_mp
authorderaadt <deraadt@openbsd.org>
Sun, 13 Feb 2022 15:56:55 +0000 (15:56 +0000)
committerderaadt <deraadt@openbsd.org>
Sun, 13 Feb 2022 15:56:55 +0000 (15:56 +0000)
ok kettenis

sys/arch/amd64/amd64/acpi_machdep.c
sys/arch/i386/i386/acpi_machdep.c
sys/kern/subr_suspend.c

index e1c0247..e119de1 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: acpi_machdep.c,v 1.99 2022/02/12 16:25:42 deraadt Exp $       */
+/*     $OpenBSD: acpi_machdep.c,v 1.100 2022/02/13 15:56:55 deraadt Exp $      */
 /*
  * Copyright (c) 2005 Thorsten Lockert <tholo@sigmasoft.com>
  *
@@ -499,9 +499,6 @@ sleep_mp(void)
 {
        int i;
 
-       sched_stop_secondary_cpus();
-       KASSERT(CPU_IS_PRIMARY(curcpu()));
-
        /* 
         * Wait for cpus to halt so we know their FPU state has been
         * saved and their caches have been written back.
@@ -557,9 +554,7 @@ resume_mp(void)
                ci->ci_flags &= ~CPUF_PRESENT;
                cpu_start_secondary(ci);
        }
-
        cpu_boot_secondary_processors();
-       sched_start_secondary_cpus();
 }
 #endif /* MULTIPROCESSOR */
 
index 36aa541..436a0d0 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: acpi_machdep.c,v 1.81 2022/02/12 16:26:57 deraadt Exp $       */
+/*     $OpenBSD: acpi_machdep.c,v 1.82 2022/02/13 15:56:55 deraadt Exp $       */
 /*
  * Copyright (c) 2005 Thorsten Lockert <tholo@sigmasoft.com>
  *
@@ -459,9 +459,6 @@ sleep_mp(void)
 {
        int i;
 
-       sched_stop_secondary_cpus();
-       KASSERT(CPU_IS_PRIMARY(curcpu()));
-
        /* 
         * Wait for cpus to halt so we know their FPU state has been
         * saved and their caches have been written back.
@@ -511,9 +508,7 @@ resume_mp(void)
 
                ci->ci_idepth = 0;
        }
-
        cpu_boot_secondary_processors();
-       sched_start_secondary_cpus();
 }
 #endif /* MULTIPROCESSOR */
 
index 2ff3552..03754b6 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: subr_suspend.c,v 1.3 2022/02/11 01:55:12 deraadt Exp $ */
+/* $OpenBSD: subr_suspend.c,v 1.4 2022/02/13 15:56:55 deraadt Exp $ */
 /*
  * Copyright (c) 2005 Thorsten Lockert <tholo@sigmasoft.com>
  * Copyright (c) 2005 Jordan Hargrave <jordan@openbsd.org>
@@ -80,6 +80,8 @@ sleep_state(void *v, int sleepmode)
 
        
 #ifdef MULTIPROCESSOR
+       sched_stop_secondary_cpus();
+       KASSERT(CPU_IS_PRIMARY(curcpu()));
        sleep_mp();
 #endif
 
@@ -148,6 +150,7 @@ fail_suspend:
 
 #ifdef MULTIPROCESSOR
        resume_mp();
+       sched_start_secondary_cpus();
 #endif
 
        vfs_stall(curproc, 0);