Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc

* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
[POWERPC] Fix Oops with TQM5200 on TQM5200
[POWERPC] mpc5200: Fix null dereference if bestcomm fails to initialize
[POWERPC] mpc5200-fec: Fix possible NULL dereference in mdio driver
[POWERPC] Fix crash in init_ipic_sysfs on efika
[POWERPC] Don't use 64k pages for ioremap on pSeries

+17 -7
+8 -3
arch/powerpc/mm/hash_utils_64.c
··· 351 351 mmu_vmalloc_psize = MMU_PAGE_64K; 352 352 if (mmu_linear_psize == MMU_PAGE_4K) 353 353 mmu_linear_psize = MMU_PAGE_64K; 354 - if (cpu_has_feature(CPU_FTR_CI_LARGE_PAGE)) 355 - mmu_io_psize = MMU_PAGE_64K; 356 - else 354 + if (cpu_has_feature(CPU_FTR_CI_LARGE_PAGE)) { 355 + /* 356 + * Don't use 64k pages for ioremap on pSeries, since 357 + * that would stop us accessing the HEA ethernet. 358 + */ 359 + if (!machine_is(pseries)) 360 + mmu_io_psize = MMU_PAGE_64K; 361 + } else 357 362 mmu_ci_restrictions = 1; 358 363 } 359 364 #endif /* CONFIG_PPC_64K_PAGES */
+6 -2
arch/powerpc/sysdev/bestcomm/bestcomm.c
··· 52 52 int i, tasknum = -1; 53 53 struct bcom_task *tsk; 54 54 55 + /* Don't try to do anything if bestcomm init failed */ 56 + if (!bcom_eng) 57 + return NULL; 58 + 55 59 /* Get and reserve a task num */ 56 60 spin_lock(&bcom_eng->lock); 57 61 ··· 488 484 } 489 485 490 486 static struct of_device_id mpc52xx_bcom_of_match[] = { 491 - { .type = "dma-controller", .compatible = "fsl,mpc5200-bestcomm", }, 492 - { .type = "dma-controller", .compatible = "mpc5200-bestcomm", }, 487 + { .compatible = "fsl,mpc5200-bestcomm", }, 488 + { .compatible = "mpc5200-bestcomm", }, 493 489 {}, 494 490 }; 495 491
+1 -1
arch/powerpc/sysdev/ipic.c
··· 906 906 { 907 907 int rc; 908 908 909 - if (!primary_ipic->regs) 909 + if (!primary_ipic || !primary_ipic->regs) 910 910 return -ENODEV; 911 911 printk(KERN_DEBUG "Registering ipic with sysfs...\n"); 912 912
+2 -1
drivers/net/fec_mpc52xx_phy.c
··· 109 109 int irq = irq_of_parse_and_map(child, 0); 110 110 if (irq != NO_IRQ) { 111 111 const u32 *id = of_get_property(child, "reg", NULL); 112 - bus->irq[*id] = irq; 112 + if (id) 113 + bus->irq[*id] = irq; 113 114 } 114 115 } 115 116