From e4df7e2dc4d1d97900d3189a76a8116934b5467a Mon Sep 17 00:00:00 2001 From: AlmuHS Date: Mon, 8 Jul 2019 20:55:49 +0200 Subject: experiment: added mutex in cpu_setup --- i386/i386/mp_desc.c | 7 +++++++ 1 file changed, 7 insertions(+) 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); -- cgit v1.2.3