diff options
author | AlmuHS <almuhs@github.com> | 2019-07-08 20:55:49 +0200 |
---|---|---|
committer | AlmuHS <almuhs@github.com> | 2019-07-08 20:55:49 +0200 |
commit | e4df7e2dc4d1d97900d3189a76a8116934b5467a (patch) | |
tree | 3d29c2e6a1b9926398254be040b23edf85fba534 | |
parent | dec8f10b55abbb4c50e584661a8900707c573395 (diff) |
experiment: added mutex in cpu_setup
-rw-r--r-- | i386/i386/mp_desc.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/i386/i386/mp_desc.c b/i386/i386/mp_desc.c index 6eb3c6e6..3bb207b1 100644 --- a/i386/i386/mp_desc.c +++ b/i386/i386/mp_desc.c @@ -90,6 +90,7 @@ vm_offset_t cpu_stack_high; static struct kmutex mp_cpu_boot_lock; +static struct kmutex ap_config_lock; /* * Multiprocessor i386/i486 systems use a separate copy of the @@ -299,6 +300,10 @@ cpu_setup() int i = 1; int kernel_id = 0; + + kmutex_init(&ap_config_lock); + kmutex_lock(&ap_config_lock, FALSE); + while(i < ncpu && (machine_slot[i].running == TRUE)) i++; /* assume Pentium 4, Xeon, or later processors */ @@ -354,6 +359,8 @@ cpu_setup() ktss_init(); slave_main(); + kmutex_unlock(&ap_config_lock); + kernel_id = cpu_number(); printf("cpu %d enabled\n", kernel_id); |