Skip to content

Commit

Permalink
Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git…
Browse files Browse the repository at this point in the history
…/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
  • Loading branch information
Linus Torvalds committed Jun 3, 2010
2 parents b01b7dc + c2cdf6a commit 39059cc
Show file tree
Hide file tree
Showing 18 changed files with 67 additions and 53 deletions.
3 changes: 1 addition & 2 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -3503,9 +3503,8 @@ F: arch/powerpc/platforms/83xx/

LINUX FOR POWERPC PA SEMI PWRFICIENT
M: Olof Johansson <olof@lixom.net>
W: http://www.pasemi.com/
L: linuxppc-dev@ozlabs.org
S: Supported
S: Maintained
F: arch/powerpc/platforms/pasemi/
F: drivers/*/*pasemi*
F: drivers/*/*/*pasemi*
Expand Down
4 changes: 0 additions & 4 deletions arch/powerpc/include/asm/macio.h
Original file line number Diff line number Diff line change
Expand Up @@ -123,10 +123,6 @@ static inline struct pci_dev *macio_get_pci_dev(struct macio_dev *mdev)
*/
struct macio_driver
{
char *name;
struct of_device_id *match_table;
struct module *owner;

int (*probe)(struct macio_dev* dev, const struct of_device_id *match);
int (*remove)(struct macio_dev* dev);

Expand Down
14 changes: 2 additions & 12 deletions arch/powerpc/kernel/kprobes.c
Original file line number Diff line number Diff line change
Expand Up @@ -378,17 +378,6 @@ static int __kprobes trampoline_probe_handler(struct kprobe *p,
* single-stepped a copy of the instruction. The address of this
* copy is p->ainsn.insn.
*/
static void __kprobes resume_execution(struct kprobe *p, struct pt_regs *regs)
{
int ret;
unsigned int insn = *p->ainsn.insn;

regs->nip = (unsigned long)p->addr;
ret = emulate_step(regs, insn);
if (ret == 0)
regs->nip = (unsigned long)p->addr + 4;
}

static int __kprobes post_kprobe_handler(struct pt_regs *regs)
{
struct kprobe *cur = kprobe_running();
Expand All @@ -406,7 +395,8 @@ static int __kprobes post_kprobe_handler(struct pt_regs *regs)
cur->post_handler(cur, regs, 0);
}

resume_execution(cur, regs);
/* Adjust nip to after the single-stepped instruction */
regs->nip = (unsigned long)cur->addr + 4;
regs->msr |= kcb->kprobe_saved_msr;

/*Restore back the original saved kprobes variables and continue. */
Expand Down
2 changes: 1 addition & 1 deletion arch/powerpc/platforms/cell/iommu.c
Original file line number Diff line number Diff line change
Expand Up @@ -1066,7 +1066,7 @@ static int __init cell_iommu_fixed_mapping_init(void)
fbase = _ALIGN_UP(fbase, 1 << IO_SEGMENT_SHIFT);
fsize = lmb_phys_mem_size();

if ((fbase + fsize) <= 0x800000000)
if ((fbase + fsize) <= 0x800000000ul)
hbase = 0; /* use the device tree window */
else {
/* If we're over 32 GB we need to cheat. We can't map all of
Expand Down
10 changes: 5 additions & 5 deletions drivers/ata/pata_macio.c
Original file line number Diff line number Diff line change
Expand Up @@ -1355,8 +1355,11 @@ static struct of_device_id pata_macio_match[] =

static struct macio_driver pata_macio_driver =
{
.name = "pata-macio",
.match_table = pata_macio_match,
.driver = {
.name = "pata-macio",
.owner = THIS_MODULE,
.of_match_table = pata_macio_match,
},
.probe = pata_macio_attach,
.remove = pata_macio_detach,
#ifdef CONFIG_PM
Expand All @@ -1366,9 +1369,6 @@ static struct macio_driver pata_macio_driver =
#ifdef CONFIG_PMAC_MEDIABAY
.mediabay_event = pata_macio_mb_event,
#endif
.driver = {
.owner = THIS_MODULE,
},
};

static const struct pci_device_id pata_macio_pci_match[] = {
Expand Down
6 changes: 4 additions & 2 deletions drivers/block/swim3.c
Original file line number Diff line number Diff line change
Expand Up @@ -1159,8 +1159,10 @@ static struct of_device_id swim3_match[] =

static struct macio_driver swim3_driver =
{
.name = "swim3",
.match_table = swim3_match,
.driver = {
.name = "swim3",
.of_match_table = swim3_match,
},
.probe = swim3_attach,
#if 0
.suspend = swim3_suspend,
Expand Down
2 changes: 1 addition & 1 deletion drivers/char/agp/uninorth-agp.c
Original file line number Diff line number Diff line change
Expand Up @@ -415,7 +415,7 @@ static int uninorth_create_gatt_table(struct agp_bridge_data *bridge)
bridge->gatt_table_real = (u32 *) table;
/* Need to clear out any dirty data still sitting in caches */
flush_dcache_range((unsigned long)table,
(unsigned long)(table_end + PAGE_SIZE));
(unsigned long)table_end + 1);
bridge->gatt_table = vmap(pages, (1 << page_order), 0, PAGE_KERNEL_NCG);

if (bridge->gatt_table == NULL)
Expand Down
7 changes: 5 additions & 2 deletions drivers/ide/pmac.c
Original file line number Diff line number Diff line change
Expand Up @@ -1400,8 +1400,11 @@ static struct of_device_id pmac_ide_macio_match[] =

static struct macio_driver pmac_ide_macio_driver =
{
.name = "ide-pmac",
.match_table = pmac_ide_macio_match,
.driver = {
.name = "ide-pmac",
.owner = THIS_MODULE,
.of_match_table = pmac_ide_macio_match,
},
.probe = pmac_ide_macio_attach,
.suspend = pmac_ide_macio_suspend,
.resume = pmac_ide_macio_resume,
Expand Down
8 changes: 4 additions & 4 deletions drivers/macintosh/macio_asic.c
Original file line number Diff line number Diff line change
Expand Up @@ -492,8 +492,8 @@ static void macio_pci_add_devices(struct macio_chip *chip)
}

/* Add media bay devices if any */
pnode = mbdev->ofdev.dev.of_node;
if (mbdev)
if (mbdev) {
pnode = mbdev->ofdev.dev.of_node;
for (np = NULL; (np = of_get_next_child(pnode, np)) != NULL;) {
if (macio_skip_device(np))
continue;
Expand All @@ -502,10 +502,11 @@ static void macio_pci_add_devices(struct macio_chip *chip)
mbdev, root_res) == NULL)
of_node_put(np);
}
}

/* Add serial ports if any */
pnode = sdev->ofdev.dev.of_node;
if (sdev) {
pnode = sdev->ofdev.dev.of_node;
for (np = NULL; (np = of_get_next_child(pnode, np)) != NULL;) {
if (macio_skip_device(np))
continue;
Expand All @@ -525,7 +526,6 @@ static void macio_pci_add_devices(struct macio_chip *chip)
int macio_register_driver(struct macio_driver *drv)
{
/* initialize common driver fields */
drv->driver.name = drv->name;
drv->driver.bus = &macio_bus_type;

/* register with core */
Expand Down
6 changes: 4 additions & 2 deletions drivers/macintosh/mediabay.c
Original file line number Diff line number Diff line change
Expand Up @@ -728,8 +728,10 @@ static struct of_device_id media_bay_match[] =

static struct macio_driver media_bay_driver =
{
.name = "media-bay",
.match_table = media_bay_match,
.driver = {
.name = "media-bay",
.of_match_table = media_bay_match,
},
.probe = media_bay_attach,
.suspend = media_bay_suspend,
.resume = media_bay_resume
Expand Down
8 changes: 5 additions & 3 deletions drivers/macintosh/rack-meter.c
Original file line number Diff line number Diff line change
Expand Up @@ -584,9 +584,11 @@ static struct of_device_id rackmeter_match[] = {
};

static struct macio_driver rackmeter_driver = {
.name = "rackmeter",
.owner = THIS_MODULE,
.match_table = rackmeter_match,
.driver = {
.name = "rackmeter",
.owner = THIS_MODULE,
.of_match_table = rackmeter_match,
},
.probe = rackmeter_probe,
.remove = __devexit_p(rackmeter_remove),
.shutdown = rackmeter_shutdown,
Expand Down
7 changes: 5 additions & 2 deletions drivers/net/bmac.c
Original file line number Diff line number Diff line change
Expand Up @@ -1654,8 +1654,11 @@ MODULE_DEVICE_TABLE (of, bmac_match);

static struct macio_driver bmac_driver =
{
.name = "bmac",
.match_table = bmac_match,
.driver = {
.name = "bmac",
.owner = THIS_MODULE,
.of_match_table = bmac_match,
},
.probe = bmac_probe,
.remove = bmac_remove,
#ifdef CONFIG_PM
Expand Down
7 changes: 5 additions & 2 deletions drivers/net/mace.c
Original file line number Diff line number Diff line change
Expand Up @@ -997,8 +997,11 @@ MODULE_DEVICE_TABLE (of, mace_match);

static struct macio_driver mace_driver =
{
.name = "mace",
.match_table = mace_match,
.driver = {
.name = "mace",
.owner = THIS_MODULE,
.of_match_table = mace_match,
},
.probe = mace_probe,
.remove = mace_remove,
};
Expand Down
7 changes: 5 additions & 2 deletions drivers/net/wireless/orinoco/airport.c
Original file line number Diff line number Diff line change
Expand Up @@ -239,8 +239,11 @@ static struct of_device_id airport_match[] =
MODULE_DEVICE_TABLE(of, airport_match);

static struct macio_driver airport_driver = {
.name = DRIVER_NAME,
.match_table = airport_match,
.driver = {
.name = DRIVER_NAME,
.owner = THIS_MODULE,
.of_match_table = airport_match,
},
.probe = airport_attach,
.remove = airport_detach,
.suspend = airport_suspend,
Expand Down
7 changes: 5 additions & 2 deletions drivers/scsi/mac53c94.c
Original file line number Diff line number Diff line change
Expand Up @@ -542,8 +542,11 @@ MODULE_DEVICE_TABLE (of, mac53c94_match);

static struct macio_driver mac53c94_driver =
{
.name = "mac53c94",
.match_table = mac53c94_match,
.driver = {
.name = "mac53c94",
.owner = THIS_MODULE,
.of_match_table = mac53c94_match,
},
.probe = mac53c94_probe,
.remove = mac53c94_remove,
};
Expand Down
7 changes: 5 additions & 2 deletions drivers/scsi/mesh.c
Original file line number Diff line number Diff line change
Expand Up @@ -2036,8 +2036,11 @@ MODULE_DEVICE_TABLE (of, mesh_match);

static struct macio_driver mesh_driver =
{
.name = "mesh",
.match_table = mesh_match,
.driver = {
.name = "mesh",
.owner = THIS_MODULE,
.of_match_table = mesh_match,
},
.probe = mesh_probe,
.remove = mesh_remove,
.shutdown = mesh_shutdown,
Expand Down
7 changes: 5 additions & 2 deletions drivers/serial/pmac_zilog.c
Original file line number Diff line number Diff line change
Expand Up @@ -2005,8 +2005,11 @@ static struct of_device_id pmz_match[] =
MODULE_DEVICE_TABLE (of, pmz_match);

static struct macio_driver pmz_driver = {
.name = "pmac_zilog",
.match_table = pmz_match,
.driver = {
.name = "pmac_zilog",
.owner = THIS_MODULE,
.of_match_table = pmz_match,
},
.probe = pmz_attach,
.remove = pmz_detach,
.suspend = pmz_suspend,
Expand Down
8 changes: 5 additions & 3 deletions sound/aoa/soundbus/i2sbus/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -437,9 +437,11 @@ static int i2sbus_shutdown(struct macio_dev* dev)
}

static struct macio_driver i2sbus_drv = {
.name = "soundbus-i2s",
.owner = THIS_MODULE,
.match_table = i2sbus_match,
.driver = {
.name = "soundbus-i2s",
.owner = THIS_MODULE,
.of_match_table = i2sbus_match,
},
.probe = i2sbus_probe,
.remove = i2sbus_remove,
#ifdef CONFIG_PM
Expand Down

0 comments on commit 39059cc

Please sign in to comment.