diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-06-03 18:46:37 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-06-03 18:46:37 -0400 |
| commit | 39059cceeda478cd040d521b9541d1113035c908 (patch) | |
| tree | 56adf04d6766a4346160aacd709468e5b2f1b879 | |
| parent | b01b7dc2832a1a286ae84ffa3e940ce9f8e352c2 (diff) | |
| parent | c2cdf6aba0dfcfb54be646ab630c1bccd180e890 (diff) | |
Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc
* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
powerpc/macio: Fix probing of macio devices by using the right of match table
agp/uninorth: Fix oops caused by flushing too much
powerpc/pasemi: Update MAINTAINERS file
powerpc/cell: Fix integer constant warning
powerpc/kprobes: Remove resume_execution() in kprobes
powerpc/macio: Don't dereference pointer before null check
| -rw-r--r-- | MAINTAINERS | 3 | ||||
| -rw-r--r-- | arch/powerpc/include/asm/macio.h | 4 | ||||
| -rw-r--r-- | arch/powerpc/kernel/kprobes.c | 14 | ||||
| -rw-r--r-- | arch/powerpc/platforms/cell/iommu.c | 2 | ||||
| -rw-r--r-- | drivers/ata/pata_macio.c | 10 | ||||
| -rw-r--r-- | drivers/block/swim3.c | 6 | ||||
| -rw-r--r-- | drivers/char/agp/uninorth-agp.c | 2 | ||||
| -rw-r--r-- | drivers/ide/pmac.c | 7 | ||||
| -rw-r--r-- | drivers/macintosh/macio_asic.c | 8 | ||||
| -rw-r--r-- | drivers/macintosh/mediabay.c | 6 | ||||
| -rw-r--r-- | drivers/macintosh/rack-meter.c | 8 | ||||
| -rw-r--r-- | drivers/net/bmac.c | 7 | ||||
| -rw-r--r-- | drivers/net/mace.c | 7 | ||||
| -rw-r--r-- | drivers/net/wireless/orinoco/airport.c | 7 | ||||
| -rw-r--r-- | drivers/scsi/mac53c94.c | 7 | ||||
| -rw-r--r-- | drivers/scsi/mesh.c | 7 | ||||
| -rw-r--r-- | drivers/serial/pmac_zilog.c | 7 | ||||
| -rw-r--r-- | sound/aoa/soundbus/i2sbus/core.c | 8 |
18 files changed, 67 insertions, 53 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index 2652ebc5ab40..a73dd8030afa 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
| @@ -3503,9 +3503,8 @@ F: arch/powerpc/platforms/83xx/ | |||
| 3503 | 3503 | ||
| 3504 | LINUX FOR POWERPC PA SEMI PWRFICIENT | 3504 | LINUX FOR POWERPC PA SEMI PWRFICIENT |
| 3505 | M: Olof Johansson <olof@lixom.net> | 3505 | M: Olof Johansson <olof@lixom.net> |
| 3506 | W: http://www.pasemi.com/ | ||
| 3507 | L: linuxppc-dev@ozlabs.org | 3506 | L: linuxppc-dev@ozlabs.org |
| 3508 | S: Supported | 3507 | S: Maintained |
| 3509 | F: arch/powerpc/platforms/pasemi/ | 3508 | F: arch/powerpc/platforms/pasemi/ |
| 3510 | F: drivers/*/*pasemi* | 3509 | F: drivers/*/*pasemi* |
| 3511 | F: drivers/*/*/*pasemi* | 3510 | F: drivers/*/*/*pasemi* |
diff --git a/arch/powerpc/include/asm/macio.h b/arch/powerpc/include/asm/macio.h index 19a661b4cb98..675e159b5ef4 100644 --- a/arch/powerpc/include/asm/macio.h +++ b/arch/powerpc/include/asm/macio.h | |||
| @@ -123,10 +123,6 @@ static inline struct pci_dev *macio_get_pci_dev(struct macio_dev *mdev) | |||
| 123 | */ | 123 | */ |
| 124 | struct macio_driver | 124 | struct macio_driver |
| 125 | { | 125 | { |
| 126 | char *name; | ||
| 127 | struct of_device_id *match_table; | ||
| 128 | struct module *owner; | ||
| 129 | |||
| 130 | int (*probe)(struct macio_dev* dev, const struct of_device_id *match); | 126 | int (*probe)(struct macio_dev* dev, const struct of_device_id *match); |
| 131 | int (*remove)(struct macio_dev* dev); | 127 | int (*remove)(struct macio_dev* dev); |
| 132 | 128 | ||
diff --git a/arch/powerpc/kernel/kprobes.c b/arch/powerpc/kernel/kprobes.c index c533525ca56a..bc47352deb1f 100644 --- a/arch/powerpc/kernel/kprobes.c +++ b/arch/powerpc/kernel/kprobes.c | |||
| @@ -378,17 +378,6 @@ static int __kprobes trampoline_probe_handler(struct kprobe *p, | |||
| 378 | * single-stepped a copy of the instruction. The address of this | 378 | * single-stepped a copy of the instruction. The address of this |
| 379 | * copy is p->ainsn.insn. | 379 | * copy is p->ainsn.insn. |
| 380 | */ | 380 | */ |
| 381 | static void __kprobes resume_execution(struct kprobe *p, struct pt_regs *regs) | ||
| 382 | { | ||
| 383 | int ret; | ||
| 384 | unsigned int insn = *p->ainsn.insn; | ||
| 385 | |||
| 386 | regs->nip = (unsigned long)p->addr; | ||
| 387 | ret = emulate_step(regs, insn); | ||
| 388 | if (ret == 0) | ||
| 389 | regs->nip = (unsigned long)p->addr + 4; | ||
| 390 | } | ||
| 391 | |||
| 392 | static int __kprobes post_kprobe_handler(struct pt_regs *regs) | 381 | static int __kprobes post_kprobe_handler(struct pt_regs *regs) |
| 393 | { | 382 | { |
| 394 | struct kprobe *cur = kprobe_running(); | 383 | struct kprobe *cur = kprobe_running(); |
| @@ -406,7 +395,8 @@ static int __kprobes post_kprobe_handler(struct pt_regs *regs) | |||
| 406 | cur->post_handler(cur, regs, 0); | 395 | cur->post_handler(cur, regs, 0); |
| 407 | } | 396 | } |
| 408 | 397 | ||
| 409 | resume_execution(cur, regs); | 398 | /* Adjust nip to after the single-stepped instruction */ |
| 399 | regs->nip = (unsigned long)cur->addr + 4; | ||
| 410 | regs->msr |= kcb->kprobe_saved_msr; | 400 | regs->msr |= kcb->kprobe_saved_msr; |
| 411 | 401 | ||
| 412 | /*Restore back the original saved kprobes variables and continue. */ | 402 | /*Restore back the original saved kprobes variables and continue. */ |
diff --git a/arch/powerpc/platforms/cell/iommu.c b/arch/powerpc/platforms/cell/iommu.c index 22667a09d40e..4326b737d913 100644 --- a/arch/powerpc/platforms/cell/iommu.c +++ b/arch/powerpc/platforms/cell/iommu.c | |||
| @@ -1066,7 +1066,7 @@ static int __init cell_iommu_fixed_mapping_init(void) | |||
| 1066 | fbase = _ALIGN_UP(fbase, 1 << IO_SEGMENT_SHIFT); | 1066 | fbase = _ALIGN_UP(fbase, 1 << IO_SEGMENT_SHIFT); |
| 1067 | fsize = lmb_phys_mem_size(); | 1067 | fsize = lmb_phys_mem_size(); |
| 1068 | 1068 | ||
| 1069 | if ((fbase + fsize) <= 0x800000000) | 1069 | if ((fbase + fsize) <= 0x800000000ul) |
| 1070 | hbase = 0; /* use the device tree window */ | 1070 | hbase = 0; /* use the device tree window */ |
| 1071 | else { | 1071 | else { |
| 1072 | /* If we're over 32 GB we need to cheat. We can't map all of | 1072 | /* If we're over 32 GB we need to cheat. We can't map all of |
diff --git a/drivers/ata/pata_macio.c b/drivers/ata/pata_macio.c index 76640ac76888..75b49d01780b 100644 --- a/drivers/ata/pata_macio.c +++ b/drivers/ata/pata_macio.c | |||
| @@ -1355,8 +1355,11 @@ static struct of_device_id pata_macio_match[] = | |||
| 1355 | 1355 | ||
| 1356 | static struct macio_driver pata_macio_driver = | 1356 | static struct macio_driver pata_macio_driver = |
| 1357 | { | 1357 | { |
| 1358 | .name = "pata-macio", | 1358 | .driver = { |
| 1359 | .match_table = pata_macio_match, | 1359 | .name = "pata-macio", |
| 1360 | .owner = THIS_MODULE, | ||
| 1361 | .of_match_table = pata_macio_match, | ||
| 1362 | }, | ||
| 1360 | .probe = pata_macio_attach, | 1363 | .probe = pata_macio_attach, |
| 1361 | .remove = pata_macio_detach, | 1364 | .remove = pata_macio_detach, |
| 1362 | #ifdef CONFIG_PM | 1365 | #ifdef CONFIG_PM |
| @@ -1366,9 +1369,6 @@ static struct macio_driver pata_macio_driver = | |||
| 1366 | #ifdef CONFIG_PMAC_MEDIABAY | 1369 | #ifdef CONFIG_PMAC_MEDIABAY |
| 1367 | .mediabay_event = pata_macio_mb_event, | 1370 | .mediabay_event = pata_macio_mb_event, |
| 1368 | #endif | 1371 | #endif |
| 1369 | .driver = { | ||
| 1370 | .owner = THIS_MODULE, | ||
| 1371 | }, | ||
| 1372 | }; | 1372 | }; |
| 1373 | 1373 | ||
| 1374 | static const struct pci_device_id pata_macio_pci_match[] = { | 1374 | static const struct pci_device_id pata_macio_pci_match[] = { |
diff --git a/drivers/block/swim3.c b/drivers/block/swim3.c index 52f2d11bc7b9..ed6fb91123ab 100644 --- a/drivers/block/swim3.c +++ b/drivers/block/swim3.c | |||
| @@ -1159,8 +1159,10 @@ static struct of_device_id swim3_match[] = | |||
| 1159 | 1159 | ||
| 1160 | static struct macio_driver swim3_driver = | 1160 | static struct macio_driver swim3_driver = |
| 1161 | { | 1161 | { |
| 1162 | .name = "swim3", | 1162 | .driver = { |
| 1163 | .match_table = swim3_match, | 1163 | .name = "swim3", |
| 1164 | .of_match_table = swim3_match, | ||
| 1165 | }, | ||
| 1164 | .probe = swim3_attach, | 1166 | .probe = swim3_attach, |
| 1165 | #if 0 | 1167 | #if 0 |
| 1166 | .suspend = swim3_suspend, | 1168 | .suspend = swim3_suspend, |
diff --git a/drivers/char/agp/uninorth-agp.c b/drivers/char/agp/uninorth-agp.c index 95db71360d24..f845a8f718b3 100644 --- a/drivers/char/agp/uninorth-agp.c +++ b/drivers/char/agp/uninorth-agp.c | |||
| @@ -415,7 +415,7 @@ static int uninorth_create_gatt_table(struct agp_bridge_data *bridge) | |||
| 415 | bridge->gatt_table_real = (u32 *) table; | 415 | bridge->gatt_table_real = (u32 *) table; |
| 416 | /* Need to clear out any dirty data still sitting in caches */ | 416 | /* Need to clear out any dirty data still sitting in caches */ |
| 417 | flush_dcache_range((unsigned long)table, | 417 | flush_dcache_range((unsigned long)table, |
| 418 | (unsigned long)(table_end + PAGE_SIZE)); | 418 | (unsigned long)table_end + 1); |
| 419 | bridge->gatt_table = vmap(pages, (1 << page_order), 0, PAGE_KERNEL_NCG); | 419 | bridge->gatt_table = vmap(pages, (1 << page_order), 0, PAGE_KERNEL_NCG); |
| 420 | 420 | ||
| 421 | if (bridge->gatt_table == NULL) | 421 | if (bridge->gatt_table == NULL) |
diff --git a/drivers/ide/pmac.c b/drivers/ide/pmac.c index 183fa38760d8..ebcf8e470a97 100644 --- a/drivers/ide/pmac.c +++ b/drivers/ide/pmac.c | |||
| @@ -1400,8 +1400,11 @@ static struct of_device_id pmac_ide_macio_match[] = | |||
| 1400 | 1400 | ||
| 1401 | static struct macio_driver pmac_ide_macio_driver = | 1401 | static struct macio_driver pmac_ide_macio_driver = |
| 1402 | { | 1402 | { |
| 1403 | .name = "ide-pmac", | 1403 | .driver = { |
| 1404 | .match_table = pmac_ide_macio_match, | 1404 | .name = "ide-pmac", |
| 1405 | .owner = THIS_MODULE, | ||
| 1406 | .of_match_table = pmac_ide_macio_match, | ||
| 1407 | }, | ||
| 1405 | .probe = pmac_ide_macio_attach, | 1408 | .probe = pmac_ide_macio_attach, |
| 1406 | .suspend = pmac_ide_macio_suspend, | 1409 | .suspend = pmac_ide_macio_suspend, |
| 1407 | .resume = pmac_ide_macio_resume, | 1410 | .resume = pmac_ide_macio_resume, |
diff --git a/drivers/macintosh/macio_asic.c b/drivers/macintosh/macio_asic.c index 97147804a49c..b6e7ddc09d76 100644 --- a/drivers/macintosh/macio_asic.c +++ b/drivers/macintosh/macio_asic.c | |||
| @@ -492,8 +492,8 @@ static void macio_pci_add_devices(struct macio_chip *chip) | |||
| 492 | } | 492 | } |
| 493 | 493 | ||
| 494 | /* Add media bay devices if any */ | 494 | /* Add media bay devices if any */ |
| 495 | pnode = mbdev->ofdev.dev.of_node; | 495 | if (mbdev) { |
| 496 | if (mbdev) | 496 | pnode = mbdev->ofdev.dev.of_node; |
| 497 | for (np = NULL; (np = of_get_next_child(pnode, np)) != NULL;) { | 497 | for (np = NULL; (np = of_get_next_child(pnode, np)) != NULL;) { |
| 498 | if (macio_skip_device(np)) | 498 | if (macio_skip_device(np)) |
| 499 | continue; | 499 | continue; |
| @@ -502,10 +502,11 @@ static void macio_pci_add_devices(struct macio_chip *chip) | |||
| 502 | mbdev, root_res) == NULL) | 502 | mbdev, root_res) == NULL) |
| 503 | of_node_put(np); | 503 | of_node_put(np); |
| 504 | } | 504 | } |
