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 mmu_vmalloc_psize = MMU_PAGE_64K; 352 if (mmu_linear_psize == MMU_PAGE_4K) 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 357 mmu_ci_restrictions = 1; 358 } 359 #endif /* CONFIG_PPC_64K_PAGES */
··· 351 mmu_vmalloc_psize = MMU_PAGE_64K; 352 if (mmu_linear_psize == MMU_PAGE_4K) 353 mmu_linear_psize = MMU_PAGE_64K; 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 362 mmu_ci_restrictions = 1; 363 } 364 #endif /* CONFIG_PPC_64K_PAGES */
+6 -2
arch/powerpc/sysdev/bestcomm/bestcomm.c
··· 52 int i, tasknum = -1; 53 struct bcom_task *tsk; 54 55 /* Get and reserve a task num */ 56 spin_lock(&bcom_eng->lock); 57 ··· 488 } 489 490 static struct of_device_id mpc52xx_bcom_of_match[] = { 491 - { .type = "dma-controller", .compatible = "fsl,mpc5200-bestcomm", }, 492 - { .type = "dma-controller", .compatible = "mpc5200-bestcomm", }, 493 {}, 494 }; 495
··· 52 int i, tasknum = -1; 53 struct bcom_task *tsk; 54 55 + /* Don't try to do anything if bestcomm init failed */ 56 + if (!bcom_eng) 57 + return NULL; 58 + 59 /* Get and reserve a task num */ 60 spin_lock(&bcom_eng->lock); 61 ··· 484 } 485 486 static struct of_device_id mpc52xx_bcom_of_match[] = { 487 + { .compatible = "fsl,mpc5200-bestcomm", }, 488 + { .compatible = "mpc5200-bestcomm", }, 489 {}, 490 }; 491
+1 -1
arch/powerpc/sysdev/ipic.c
··· 906 { 907 int rc; 908 909 - if (!primary_ipic->regs) 910 return -ENODEV; 911 printk(KERN_DEBUG "Registering ipic with sysfs...\n"); 912
··· 906 { 907 int rc; 908 909 + if (!primary_ipic || !primary_ipic->regs) 910 return -ENODEV; 911 printk(KERN_DEBUG "Registering ipic with sysfs...\n"); 912
+2 -1
drivers/net/fec_mpc52xx_phy.c
··· 109 int irq = irq_of_parse_and_map(child, 0); 110 if (irq != NO_IRQ) { 111 const u32 *id = of_get_property(child, "reg", NULL); 112 - bus->irq[*id] = irq; 113 } 114 } 115
··· 109 int irq = irq_of_parse_and_map(child, 0); 110 if (irq != NO_IRQ) { 111 const u32 *id = of_get_property(child, "reg", NULL); 112 + if (id) 113 + bus->irq[*id] = irq; 114 } 115 } 116