The patch titled cell: fix cbe_thermal for legacy SLOF tree. has been removed from the -mm tree. Its filename was cell-fix-cbe_thermal-for-legacy-slof-tree.patch This patch was dropped because an updated version will be merged ------------------------------------------------------ Subject: cell: fix cbe_thermal for legacy SLOF tree. From: Jean-Christophe DUBOIS <jcd@xxxxxxxxxxxxxxx> Previous patch changed based on Christian Krafft's comment. On some legacy SLOF tree the generic code is unable to ioremap some Cell BE registers. Therefore the "generic" functions are returning a NULL pointer, triggering a crash on such platforms. Let's handle this more gracefully. Signed-off-by: Jean-Christophe DUBOIS <jcd@xxxxxxxxxxxxxxx> Acked-by: Christian Kraff <krafft@xxxxxxxxxx> Signed-off-by: Arnd Bergmann <arnd.bergmann@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- arch/powerpc/platforms/cell/cbe_thermal.c | 25 ++++++++++++++++---- 1 files changed, 20 insertions(+), 5 deletions(-) diff -puN arch/powerpc/platforms/cell/cbe_thermal.c~cell-fix-cbe_thermal-for-legacy-slof-tree arch/powerpc/platforms/cell/cbe_thermal.c --- a/arch/powerpc/platforms/cell/cbe_thermal.c~cell-fix-cbe_thermal-for-legacy-slof-tree +++ a/arch/powerpc/platforms/cell/cbe_thermal.c @@ -292,7 +292,7 @@ static struct attribute_group ppe_attrib /* * initialize throttling with default values */ -static void __init init_default_values(void) +static int __init init_default_values(void) { int cpu; struct cbe_pmd_regs __iomem *pmd_regs; @@ -339,25 +339,40 @@ static void __init init_default_values(v for_each_possible_cpu (cpu) { pr_debug("processing cpu %d\n", cpu); sysdev = get_cpu_sysdev(cpu); + + if (!sysdev) { + pr_info("invalid sysdev pointer for cbe_thermal\n"); + return -EINVAL; + } + pmd_regs = cbe_get_cpu_pmd_regs(sysdev->id); + if (!pmd_regs) { + pr_info("invalid CBE regs pointer for cbe_thermal\n"); + return -EINVAL; + } + out_be64(&pmd_regs->tm_str2, str2); out_be64(&pmd_regs->tm_str1.val, str1.val); out_be64(&pmd_regs->tm_tpr.val, tpr.val); out_be64(&pmd_regs->tm_cr1.val, cr1.val); out_be64(&pmd_regs->tm_cr2, cr2); } + + return 0; } static int __init thermal_init(void) { - init_default_values(); + int rc = init_default_values(); - spu_add_sysdev_attr_group(&spu_attribute_group); - cpu_add_sysdev_attr_group(&ppe_attribute_group); + if (rc == 0) { + spu_add_sysdev_attr_group(&spu_attribute_group); + cpu_add_sysdev_attr_group(&ppe_attribute_group); + } - return 0; + return rc; } module_init(thermal_init); _ Patches currently in -mm which might be from jcd@xxxxxxxxxxxxxxx are cell-fix-cbe_thermal-for-legacy-slof-tree.patch cell-allow-linux-to-map-cell-regs-on-legacy-slof-tree.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html