[Linux-ia64] Can't boot in SMP with kernel 2.5.50 ia64

From: Xavier Bru <Xavier.Bru_at_bull.net>
Date: 2002-12-19 18:53:06
Hello,

Booting 2.5.50 with David's patch, it seems we can't boot in SMP on an 
ia64 machine. We get the message: SMP mode deactivated.
Problem is due to smp_prepare_cpus() declaring max_cpus as "unsigned
int" and testing against the -1 value.
Problem was not seen in 2.5.45 because max_cpus was initialized to
UINT_MAX.

Boot in SMP is OK with the following patch:

diff --exclude-from /home/xb/proc/diff.exclude -Nur 2.5.50.ref/arch/ia64/kernel/smpboot.c 2.5.50/arch/ia64/kernel/smpboot.c
--- 2.5.50.ref/arch/ia64/kernel/smpboot.c	Wed Dec 18 11:15:48 2002
+++ 2.5.50/arch/ia64/kernel/smpboot.c	Wed Dec 18 15:11:52 2002
@@ -472,7 +472,7 @@
  * Cycle through the APs sending Wakeup IPIs to boot each.
  */
 void __init
-smp_prepare_cpus (unsigned int max_cpus)
+smp_prepare_cpus (int max_cpus)
 {
 	int boot_cpu_id = hard_smp_processor_id();
 
diff --exclude-from /home/xb/proc/diff.exclude -Nur 2.5.50.ref/include/linux/smp.h 2.5.50/include/linux/smp.h
--- 2.5.50.ref/include/linux/smp.h	Wed Dec 18 11:15:48 2002
+++ 2.5.50/include/linux/smp.h	Wed Dec 18 15:28:47 2002
@@ -34,7 +34,7 @@
 /*
  * Prepare machine for booting other CPUs.
  */
-extern void smp_prepare_cpus(unsigned int max_cpus);
+extern void smp_prepare_cpus(int max_cpus);
 
 /*
  * Bring a CPU up

-- 

 Sincères salutations.
_____________________________________________________________________
 
Xavier BRU                 BULL ISD/R&D/INTEL office:     FREC B1-422
tel : +33 (0)4 76 29 77 45                    http://www-frec.bull.fr
fax : +33 (0)4 76 29 77 70                 mailto:Xavier.Bru@bull.net
addr: BULL, 1 rue de Provence, BP 208, 38432 Echirolles Cedex, FRANCE
_____________________________________________________________________
Received on Wed Dec 18 23:53:16 2002

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:11 EST