On Sunday 14 October 2007, Benjamin Herrenschmidt wrote: > > On Sun, 2007-10-14 at 00:41 +0200, Bartlomiej Zolnierkiewicz wrote: > > On Sunday 14 October 2007, Alan Cox wrote: > > > > > > /* Probably a PCI interface... */ > > > > > > for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; ++i) > > > > > > hw->io_ports[i] = data_port + i - IDE_DATA_OFFSET; > > > > > > hw->io_ports[IDE_CONTROL_OFFSET] = ctrl_port; > > > > > > Ok so in actual fact > > > > > > - The piece of code above can't be executed anyway > > > - The ctrl_port argument is not needed ? > > > > pmac_ide_init_hwif_ports() is also called by ide_init_hwif_ports() > > through ppc_ide_md.init_hwif. > > In which case it should be called with a ctrl_port right ? Yep. How's about this patch? [PATCH] ide-pmac: fix pmac_ide_init_hwif_ports() * pmac_ide_init_hwif_ports() can be called by ide_init_hwif_ports() (through ppc_ide_md.ide_init_hwif hook) for non IDE PMAC interfaces. If this is the case the hw->io_ports[] should be already setup by ide_init_hwif_ports()->ide_std_init_ports() so remove redundant code from pmac_ide_init_hwif_ports(). As side-effect this change fixes ctl_addr == 0 special handling in ide_init_hwif_ports(). * Fix misleading comment while at it. Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> Cc: Alan Cox <alan@xxxxxxxxxxxxxxxxxxx> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@xxxxxxxxx> --- drivers/ide/ppc/pmac.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) Index: b/drivers/ide/ppc/pmac.c =================================================================== --- a/drivers/ide/ppc/pmac.c +++ b/drivers/ide/ppc/pmac.c @@ -438,13 +438,8 @@ pmac_ide_init_hwif_ports(hw_regs_t *hw, if (data_port == pmac_ide[ix].regbase) break; - if (ix >= MAX_HWIFS) { - /* Probably a PCI interface... */ - for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; ++i) - hw->io_ports[i] = data_port + i - IDE_DATA_OFFSET; - hw->io_ports[IDE_CONTROL_OFFSET] = ctrl_port; - return; - } + if (ix >= MAX_HWIFS) + return; /* not an IDE PMAC interface */ for (i = 0; i < 8; ++i) hw->io_ports[i] = data_port + i * 0x10; - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html