rapide: fix rapide_probe() return value
PATCH 2/5 rapide: fix rapide_probe() return value
Return -ENOENT on ide_find_port() failure.
While at it:
- Cleanup rapide_probe() a bit.
Cc Russell King <[email protected]>
Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>
--- drivers/ide/arm/rapide.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-)
drivers/ide/arm/rapide.c +15 -13
@@ -48,24 +48,26 @@ rapide_probe(struct expansion_card *ec, goto release; } - 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; +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); + hwif =ide_find_port (); +if (hwif ==NULL ) { + ret = -ENOENT ; + goto release; + } -default_hwif_mmiops (hwif); +ide_init_port_hw (hwif, &hw); +default_hwif_mmiops (hwif); - idx[0 ] = hwif->index; + idx[0 ] = hwif->index; -ide_device_add (idx, &rapide_port_info); +ide_device_add (idx, &rapide_port_info); -ecard_set_drvdata (ec, hwif); - goto out; - } +ecard_set_drvdata (ec, hwif); + goto out; release:ecard_release_resources (ec);