rapide: fix rapide_probe() return value
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Wed, 16 Jul 2008 18:33:44 +0000 (20:33 +0200)
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Wed, 16 Jul 2008 18:33:44 +0000 (20:33 +0200)
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>
drivers/ide/arm/rapide.c

index bb081ad..43057e0 100644 (file)
@@ -48,24 +48,26 @@ rapide_probe(struct expansion_card *ec, const struct ecard_id *id)
                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);