Fixed call_all_cpus(): it shouldn't call the function synchronously; inter-CPU
synchronization as done in init_mtrrs() failed because of that (let the system hang). Unfortunately, MTRR still doesn't work on my dual PIII with SMP enabled; that was just one reason it didn't work. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16173 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
d06a632f24
commit
f1d806fe5d
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2002-2005, Axel Dörfler, axeld@pinc-software.de.
|
* Copyright 2002-2006, Axel Dörfler, axeld@pinc-software.de.
|
||||||
* Distributed under the terms of the MIT License.
|
* Distributed under the terms of the MIT License.
|
||||||
*
|
*
|
||||||
* Copyright 2001-2002, Travis Geiselbrecht. All rights reserved.
|
* Copyright 2001-2002, Travis Geiselbrecht. All rights reserved.
|
||||||
|
@ -672,7 +672,7 @@ call_all_cpus(void (*func)(void *, int), void *cookie)
|
||||||
|
|
||||||
if (smp_get_num_cpus() > 1) {
|
if (smp_get_num_cpus() > 1) {
|
||||||
smp_send_broadcast_ici(SMP_MSG_CALL_FUNCTION, (uint32)cookie,
|
smp_send_broadcast_ici(SMP_MSG_CALL_FUNCTION, (uint32)cookie,
|
||||||
0, 0, (void *)func, SMP_MSG_FLAG_SYNC);
|
0, 0, (void *)func, SMP_MSG_FLAG_ASYNC);
|
||||||
}
|
}
|
||||||
|
|
||||||
// we need to call this function ourselves as well
|
// we need to call this function ourselves as well
|
||||||
|
|
Loading…
Reference in New Issue