diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-03-24 16:09:34 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-03-24 16:09:34 -0400 |
commit | cc7feea39bed2951cc29af3ad642f39a99dfe8d3 (patch) | |
tree | d11b9f40044951128c9151b0fd88c13066dfec31 | |
parent | 6f58d79598c184dc4f18ceddfaa5fa7483bce0a5 (diff) | |
parent | 7ea6fd7e2df041297298b5feb5b7b78a2b1a5310 (diff) |
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
-rw-r--r-- | arch/powerpc/mm/hash_utils_64.c | 11 | ||||
-rw-r--r-- | arch/powerpc/sysdev/bestcomm/bestcomm.c | 8 | ||||
-rw-r--r-- | arch/powerpc/sysdev/ipic.c | 2 | ||||
-rw-r--r-- | drivers/net/fec_mpc52xx_phy.c | 3 |
4 files changed, 17 insertions, 7 deletions
diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c index 590f1f67c874..a83dfa3cf40c 100644 --- a/arch/powerpc/mm/hash_utils_64.c +++ b/arch/powerpc/mm/hash_utils_64.c | |||
@@ -351,9 +351,14 @@ static void __init htab_init_page_sizes(void) | |||
351 | mmu_vmalloc_psize = MMU_PAGE_64K; | 351 | mmu_vmalloc_psize = MMU_PAGE_64K; |
352 | if (mmu_linear_psize == MMU_PAGE_4K) | 352 | if (mmu_linear_psize == MMU_PAGE_4K) |
353 | mmu_linear_psize = MMU_PAGE_64K; | 353 | mmu_linear_psize = MMU_PAGE_64K; |
354 | if (cpu_has_feature(CPU_FTR_CI_LARGE_PAGE)) | 354 | if (cpu_has_feature(CPU_FTR_CI_LARGE_PAGE)) { |
355 | mmu_io_psize = MMU_PAGE_64K; | 355 | /* |
356 | else | 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 | mmu_ci_restrictions = 1; | 362 | mmu_ci_restrictions = 1; |
358 | } | 363 | } |
359 | #endif /* CONFIG_PPC_64K_PAGES */ | 364 | #endif /* CONFIG_PPC_64K_PAGES */ |
diff --git a/arch/powerpc/sysdev/bestcomm/bestcomm.c b/arch/powerpc/sysdev/bestcomm/bestcomm.c index f589999361e0..64ec7d629363 100644 --- a/arch/powerpc/sysdev/bestcomm/bestcomm.c +++ b/arch/powerpc/sysdev/bestcomm/bestcomm.c | |||
@@ -52,6 +52,10 @@ bcom_task_alloc(int bd_count, int bd_size, int priv_size) | |||
52 | int i, tasknum = -1; | 52 | int i, tasknum = -1; |
53 | struct bcom_task *tsk; | 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 | /* Get and reserve a task num */ | 59 | /* Get and reserve a task num */ |
56 | spin_lock(&bcom_eng->lock); | 60 | spin_lock(&bcom_eng->lock); |
57 | 61 | ||
@@ -484,8 +488,8 @@ mpc52xx_bcom_remove(struct of_device *op) | |||
484 | } | 488 | } |
485 | 489 | ||
486 | static struct of_device_id mpc52xx_bcom_of_match[] = { | 490 | static struct of_device_id mpc52xx_bcom_of_match[] = { |
487 | { .type = "dma-controller", .compatible = "fsl,mpc5200-bestcomm", }, | 491 | { .compatible = "fsl,mpc5200-bestcomm", }, |
488 | { .type = "dma-controller", .compatible = "mpc5200-bestcomm", }, | 492 | { .compatible = "mpc5200-bestcomm", }, |
489 | {}, | 493 | {}, |
490 | }; | 494 | }; |
491 | 495 | ||
diff --git a/arch/powerpc/sysdev/ipic.c b/arch/powerpc/sysdev/ipic.c index ae0dbf4c1d66..0f2dfb0aaa6a 100644 --- a/arch/powerpc/sysdev/ipic.c +++ b/arch/powerpc/sysdev/ipic.c | |||
@@ -906,7 +906,7 @@ static int __init init_ipic_sysfs(void) | |||
906 | { | 906 | { |
907 | int rc; | 907 | int rc; |
908 | 908 | ||
909 | if (!primary_ipic->regs) | 909 | if (!primary_ipic || !primary_ipic->regs) |
910 | return -ENODEV; | 910 | return -ENODEV; |
911 | printk(KERN_DEBUG "Registering ipic with sysfs...\n"); | 911 | printk(KERN_DEBUG "Registering ipic with sysfs...\n"); |
912 | 912 | ||
diff --git a/drivers/net/fec_mpc52xx_phy.c b/drivers/net/fec_mpc52xx_phy.c index 1837584c4504..6a3ac4ea97e9 100644 --- a/drivers/net/fec_mpc52xx_phy.c +++ b/drivers/net/fec_mpc52xx_phy.c | |||
@@ -109,7 +109,8 @@ static int mpc52xx_fec_mdio_probe(struct of_device *of, const struct of_device_i | |||
109 | int irq = irq_of_parse_and_map(child, 0); | 109 | int irq = irq_of_parse_and_map(child, 0); |
110 | if (irq != NO_IRQ) { | 110 | if (irq != NO_IRQ) { |
111 | const u32 *id = of_get_property(child, "reg", NULL); | 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 | ||