diff -urN oldtree/drivers/cpufreq/cpufreq.c newtree/drivers/cpufreq/cpufreq.c
--- oldtree/drivers/cpufreq/cpufreq.c	2006-06-27 12:28:59.000000000 +0000
+++ newtree/drivers/cpufreq/cpufreq.c	2006-06-27 23:21:16.653973750 +0000
@@ -1497,7 +1497,8 @@
 }
 EXPORT_SYMBOL(cpufreq_update_policy);
 
-static int __cpuinit cpufreq_cpu_callback(struct notifier_block *nfb,
+#ifdef  CONFIG_HOTPLUG_CPU
+static int cpufreq_cpu_callback(struct notifier_block *nfb,
 					unsigned long action, void *hcpu)
 {
 	unsigned int cpu = (unsigned long)hcpu;
@@ -1536,7 +1537,7 @@
 {
     .notifier_call = cpufreq_cpu_callback,
 };
-
+#endif /* CONFIG_HOTPLUG_CPU */
 /*********************************************************************
  *               REGISTER / UNREGISTER CPUFREQ DRIVER                *
  *********************************************************************/
@@ -1551,7 +1552,7 @@
  * (and isn't unregistered in the meantime).
  *
  */
-int __cpuinit cpufreq_register_driver(struct cpufreq_driver *driver_data)
+int cpufreq_register_driver(struct cpufreq_driver *driver_data)
 {
 	unsigned long flags;
 	int ret;
@@ -1596,7 +1597,7 @@
 	}
 
 	if (!ret) {
-		register_cpu_notifier(&cpufreq_cpu_notifier);
+		register_hotcpu_notifier(&cpufreq_cpu_notifier);
 		dprintk("driver %s up and running\n", driver_data->name);
 		cpufreq_debug_enable_ratelimit();
 	}
@@ -1628,7 +1629,7 @@
 	dprintk("unregistering driver %s\n", driver->name);
 
 	sysdev_driver_unregister(&cpu_sysdev_class, &cpufreq_sysdev_driver);
-	unregister_cpu_notifier(&cpufreq_cpu_notifier);
+	unregister_hotcpu_notifier(&cpufreq_cpu_notifier);
 
 	spin_lock_irqsave(&cpufreq_driver_lock, flags);
 	cpufreq_driver = NULL;
