{
        int pciirq, ret;
 
-       ret = ide_setup_pci_controller(dev, d, noisy);
-       if (ret < 0)
-               goto out;
-
        /*
         * Can we trust the reported IRQ?
         */
        hw_regs_t hw[4], *hws[] = { NULL, NULL, NULL, NULL };
        int ret;
 
+       ret = ide_setup_pci_controller(dev, d, 1);
+       if (ret < 0)
+               goto out;
+
        ret = do_ide_setup_pci_device(dev, d, 1);
 
        if (ret >= 0) {
 
                ret = ide_host_add(d, hws, NULL);
        }
-
+out:
        return ret;
 }
 EXPORT_SYMBOL_GPL(ide_setup_pci_device);
        hw_regs_t hw[4], *hws[] = { NULL, NULL, NULL, NULL };
 
        for (i = 0; i < 2; i++) {
+               ret = ide_setup_pci_controller(pdev[i], d, !i);
+               if (ret < 0)
+                       goto out;
+
                ret = do_ide_setup_pci_device(pdev[i], d, !i);
 
                /*