ide: add ide_host_add() helper
[sfrench/cifs-2.6.git] / drivers / ide / ide-pnp.c
index 4458ca61897ab9d4f51e0e2cc14b553ef8129156..bac9b392b68967dfde75c6344cc8af9c6277e79d 100644 (file)
@@ -31,6 +31,7 @@ static int idepnp_probe(struct pnp_dev *dev, const struct pnp_device_id *dev_id)
 {
        struct ide_host *host;
        unsigned long base, ctl;
+       int rc;
        hw_regs_t hw, *hws[] = { &hw, NULL, NULL, NULL };
 
        printk(KERN_INFO DRV_NAME ": generic PnP IDE interface\n");
@@ -59,19 +60,18 @@ static int idepnp_probe(struct pnp_dev *dev, const struct pnp_device_id *dev_id)
        hw.irq = pnp_irq(dev, 0);
        hw.chipset = ide_generic;
 
-       host = ide_host_alloc(NULL, hws);
-       if (host) {
-               pnp_set_drvdata(dev, host);
+       rc = ide_host_add(NULL, hws, &host);
+       if (rc)
+               goto out;
 
-               ide_host_register(host, NULL, hws);
-
-               return 0;
-       }
+       pnp_set_drvdata(dev, host);
 
+       return 0;
+out:
        release_region(ctl, 1);
        release_region(base, 8);
 
-       return -1;
+       return rc;
 }
 
 static void idepnp_remove(struct pnp_dev *dev)