rapide: fix rapide_probe() return value
Return -ENOENT on ide_find_port() failure. While at it: - Cleanup rapide_probe() a bit. Cc: Russell King <rmk@arm.linux.org.uk> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
parent
ff23712e79
commit
47bc7e7425
1 changed files with 18 additions and 16 deletions
|
@ -48,25 +48,27 @@ rapide_probe(struct expansion_card *ec, const struct ecard_id *id)
|
|||
goto release;
|
||||
}
|
||||
|
||||
memset(&hw, 0, sizeof(hw));
|
||||
rapide_setup_ports(&hw, base, base + 0x818, 1 << 6, ec->irq);
|
||||
hw.chipset = ide_generic;
|
||||
hw.dev = &ec->dev;
|
||||
|
||||
hwif = ide_find_port();
|
||||
if (hwif) {
|
||||
memset(&hw, 0, sizeof(hw));
|
||||
rapide_setup_ports(&hw, base, base + 0x818, 1 << 6, ec->irq);
|
||||
hw.chipset = ide_generic;
|
||||
hw.dev = &ec->dev;
|
||||
|
||||
ide_init_port_hw(hwif, &hw);
|
||||
|
||||
default_hwif_mmiops(hwif);
|
||||
|
||||
idx[0] = hwif->index;
|
||||
|
||||
ide_device_add(idx, &rapide_port_info);
|
||||
|
||||
ecard_set_drvdata(ec, hwif);
|
||||
goto out;
|
||||
if (hwif == NULL) {
|
||||
ret = -ENOENT;
|
||||
goto release;
|
||||
}
|
||||
|
||||
ide_init_port_hw(hwif, &hw);
|
||||
default_hwif_mmiops(hwif);
|
||||
|
||||
idx[0] = hwif->index;
|
||||
|
||||
ide_device_add(idx, &rapide_port_info);
|
||||
|
||||
ecard_set_drvdata(ec, hwif);
|
||||
goto out;
|
||||
|
||||
release:
|
||||
ecard_release_resources(ec);
|
||||
out:
|
||||
|
|
Reference in a new issue