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
This commit is contained in:
@@ -351,9 +351,14 @@ static void __init htab_init_page_sizes(void)
|
|||||||
mmu_vmalloc_psize = MMU_PAGE_64K;
|
mmu_vmalloc_psize = MMU_PAGE_64K;
|
||||||
if (mmu_linear_psize == MMU_PAGE_4K)
|
if (mmu_linear_psize == MMU_PAGE_4K)
|
||||||
mmu_linear_psize = MMU_PAGE_64K;
|
mmu_linear_psize = MMU_PAGE_64K;
|
||||||
if (cpu_has_feature(CPU_FTR_CI_LARGE_PAGE))
|
if (cpu_has_feature(CPU_FTR_CI_LARGE_PAGE)) {
|
||||||
mmu_io_psize = MMU_PAGE_64K;
|
/*
|
||||||
else
|
* Don't use 64k pages for ioremap on pSeries, since
|
||||||
|
* that would stop us accessing the HEA ethernet.
|
||||||
|
*/
|
||||||
|
if (!machine_is(pseries))
|
||||||
|
mmu_io_psize = MMU_PAGE_64K;
|
||||||
|
} else
|
||||||
mmu_ci_restrictions = 1;
|
mmu_ci_restrictions = 1;
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_PPC_64K_PAGES */
|
#endif /* CONFIG_PPC_64K_PAGES */
|
||||||
|
@@ -52,6 +52,10 @@ bcom_task_alloc(int bd_count, int bd_size, int priv_size)
|
|||||||
int i, tasknum = -1;
|
int i, tasknum = -1;
|
||||||
struct bcom_task *tsk;
|
struct bcom_task *tsk;
|
||||||
|
|
||||||
|
/* Don't try to do anything if bestcomm init failed */
|
||||||
|
if (!bcom_eng)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
/* Get and reserve a task num */
|
/* Get and reserve a task num */
|
||||||
spin_lock(&bcom_eng->lock);
|
spin_lock(&bcom_eng->lock);
|
||||||
|
|
||||||
@@ -484,8 +488,8 @@ mpc52xx_bcom_remove(struct of_device *op)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static struct of_device_id mpc52xx_bcom_of_match[] = {
|
static struct of_device_id mpc52xx_bcom_of_match[] = {
|
||||||
{ .type = "dma-controller", .compatible = "fsl,mpc5200-bestcomm", },
|
{ .compatible = "fsl,mpc5200-bestcomm", },
|
||||||
{ .type = "dma-controller", .compatible = "mpc5200-bestcomm", },
|
{ .compatible = "mpc5200-bestcomm", },
|
||||||
{},
|
{},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -906,7 +906,7 @@ static int __init init_ipic_sysfs(void)
|
|||||||
{
|
{
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
if (!primary_ipic->regs)
|
if (!primary_ipic || !primary_ipic->regs)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
printk(KERN_DEBUG "Registering ipic with sysfs...\n");
|
printk(KERN_DEBUG "Registering ipic with sysfs...\n");
|
||||||
|
|
||||||
|
@@ -109,7 +109,8 @@ static int mpc52xx_fec_mdio_probe(struct of_device *of, const struct of_device_i
|
|||||||
int irq = irq_of_parse_and_map(child, 0);
|
int irq = irq_of_parse_and_map(child, 0);
|
||||||
if (irq != NO_IRQ) {
|
if (irq != NO_IRQ) {
|
||||||
const u32 *id = of_get_property(child, "reg", NULL);
|
const u32 *id = of_get_property(child, "reg", NULL);
|
||||||
bus->irq[*id] = irq;
|
if (id)
|
||||||
|
bus->irq[*id] = irq;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user