Merge rsync://rsync.kernel.org/pub/scm/linux/kernel/git/paulus/ppc64-2.6
diff --git a/arch/ppc64/kernel/iommu.c b/arch/ppc64/kernel/iommu.c
index 3441646..8316426 100644
--- a/arch/ppc64/kernel/iommu.c
+++ b/arch/ppc64/kernel/iommu.c
@@ -423,6 +423,9 @@
 	tbl->it_largehint = tbl->it_halfpoint;
 	spin_lock_init(&tbl->it_lock);
 
+	/* Clear the hardware table in case firmware left allocations in it */
+	ppc_md.tce_free(tbl, tbl->it_offset, tbl->it_size);
+
 	if (!welcomed) {
 		printk(KERN_INFO "IOMMU table initialized, virtual merging %s\n",
 		       novmerge ? "disabled" : "enabled");
diff --git a/arch/ppc64/kernel/pSeries_smp.c b/arch/ppc64/kernel/pSeries_smp.c
index fbad349..4203bd0 100644
--- a/arch/ppc64/kernel/pSeries_smp.c
+++ b/arch/ppc64/kernel/pSeries_smp.c
@@ -375,7 +375,7 @@
 	 * cpus are assumed to be secondary threads.
 	 */
 	if (system_state < SYSTEM_RUNNING &&
-	    cur_cpu_spec->cpu_features & CPU_FTR_SMT &&
+	    cpu_has_feature(CPU_FTR_SMT) &&
 	    !smt_enabled_at_boot && nr % 2 != 0)
 		return 0;
 
@@ -419,8 +419,8 @@
 #endif
 
 	/* Mark threads which are still spinning in hold loops. */
-	if (cur_cpu_spec->cpu_features & CPU_FTR_SMT)
-		for_each_present_cpu(i) {
+	if (cpu_has_feature(CPU_FTR_SMT)) {
+		for_each_present_cpu(i) { 
 			if (i % 2 == 0)
 				/*
 				 * Even-numbered logical cpus correspond to
@@ -428,8 +428,9 @@
 				 */
 				cpu_set(i, of_spin_map);
 		}
-	else
+	} else {
 		of_spin_map = cpu_present_map;
+	}
 
 	cpu_clear(boot_cpuid, of_spin_map);
 
diff --git a/arch/ppc64/kernel/rtasd.c b/arch/ppc64/kernel/rtasd.c
index ff65dc3..b0c3b82 100644
--- a/arch/ppc64/kernel/rtasd.c
+++ b/arch/ppc64/kernel/rtasd.c
@@ -440,7 +440,7 @@
 		goto error;
 	}
 
-	printk(KERN_ERR "RTAS daemon started\n");
+	printk(KERN_INFO "RTAS daemon started\n");
 
 	DEBUG("will sleep for %d jiffies\n", (HZ*60/rtas_event_scan_rate) / 2);
 
@@ -485,7 +485,7 @@
 	/* No RTAS, only warn if we are on a pSeries box  */
 	if (rtas_token("event-scan") == RTAS_UNKNOWN_SERVICE) {
 		if (systemcfg->platform & PLATFORM_PSERIES)
-			printk(KERN_ERR "rtasd: no event-scan on system\n");
+			printk(KERN_INFO "rtasd: no event-scan on system\n");
 		return 1;
 	}