From f1d806fe5de28bcd62cb8413340eebe9db00a7ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Tue, 31 Jan 2006 18:30:34 +0000 Subject: [PATCH] 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 --- src/system/kernel/smp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/system/kernel/smp.c b/src/system/kernel/smp.c index c438cd851a..736251e5c4 100644 --- a/src/system/kernel/smp.c +++ b/src/system/kernel/smp.c @@ -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. * * 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) { 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