All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Disable SMP on the MacBook by default
@ 2006-09-13 20:45 Marco Gerards
  2006-09-13 20:57 ` Ian Pratt
  0 siblings, 1 reply; 11+ messages in thread
From: Marco Gerards @ 2006-09-13 20:45 UTC (permalink / raw)
  To: xen-devel

Hi,

As I mentioned before, SMP is non functional on the MacBook.  It even
makes the machine crash.  I am using a patch to disable SMP support in
the case a MacBook was detected.  I have included this patch at the
end of this email.

Because this will be useful for the LiveCD, I hope you will commit
this patch.  Please let me know if there are issues that I need to
take care of before it can be committed.

Thanks,
Marco


diff -r 3e31c5e160cf xen/arch/x86/dmi_scan.c
--- a/xen/arch/x86/dmi_scan.c	Wed Sep 13 14:59:14 2006
+++ b/xen/arch/x86/dmi_scan.c	Wed Sep 13 22:34:01 2006
@@ -8,6 +8,7 @@
 #include <xen/acpi.h>
 #include <asm/io.h>
 #include <asm/system.h>
+#include <xen/smp.h>
 #include <xen/dmi.h>
 
 #define bt_ioremap(b,l)  ((u8 *)__acpi_map_table(b,l))
@@ -181,6 +182,15 @@
 	return 0;
 }
 
+/*
+ * Disable SMP.  */
+static int __init dmi_disable_smp(struct dmi_blacklist *d)
+{
+	printk(KERN_NOTICE "%s detected: SMP support disabled\n", d->ident);
+	opt_nosmp = 1;
+	return 0;
+}
+
 
 #ifdef CONFIG_ACPI_SLEEP
 static __init int reset_videomode_after_s3(struct dmi_blacklist *d)
@@ -262,6 +272,17 @@
 			MATCH(DMI_PRODUCT_NAME, "S4030CDT/4.3"),
 			NO_MATCH, NO_MATCH, NO_MATCH
 			} },
+
+	/*
+	 * SMP support is broken for the MacBook.  Disable SMP to
+	 * prevent further problems.
+	 */
+	 {
+	   .callback = dmi_disable_smp,
+	   .ident = "Apple MacBook",
+	   .matches = {DMI_MATCH(DMI_PRODUCT_NAME, "MacBook1,1"),},
+	 },
+
 #ifdef CONFIG_ACPI_SLEEP
 	{ reset_videomode_after_s3, "Toshiba Satellite 4030cdt", { /* Reset video mode after returning from ACPI S3 sleep */
 			MATCH(DMI_PRODUCT_NAME, "S4030CDT/4.3"),
diff -r 3e31c5e160cf xen/arch/x86/setup.c
--- a/xen/arch/x86/setup.c	Wed Sep 13 14:59:14 2006
+++ b/xen/arch/x86/setup.c	Wed Sep 13 22:34:01 2006
@@ -40,7 +40,7 @@
 #endif
 
 /* opt_nosmp: If true, secondary processors are ignored. */
-static int opt_nosmp = 0;
+int opt_nosmp = 0;
 boolean_param("nosmp", opt_nosmp);
 
 /* maxcpus: maximum number of CPUs to activate. */
diff -r 3e31c5e160cf xen/include/xen/smp.h
--- a/xen/include/xen/smp.h	Wed Sep 13 14:59:14 2006
+++ b/xen/include/xen/smp.h	Wed Sep 13 22:34:01 2006
@@ -111,4 +111,6 @@
 
 #define smp_processor_id() raw_smp_processor_id()
 
+extern int opt_nosmp ;
+
 #endif

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2006-09-14 17:15 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-09-13 20:45 [PATCH] Disable SMP on the MacBook by default Marco Gerards
2006-09-13 20:57 ` Ian Pratt
2006-09-13 21:38   ` Marco Gerards
2006-09-13 21:38     ` Ian Pratt
2006-09-13 22:11       ` Marco Gerards
2006-09-13 22:19         ` gimli
2006-09-13 22:30           ` gimli
2006-09-13 22:39             ` Ian Pratt
2006-09-13 22:34           ` Marco Gerards
2006-09-14 14:48         ` Keir Fraser
2006-09-14 17:15           ` Marco Gerards

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.