i = hwif->index;
 
-       ide_init_port_data(hwif, i);
        ide_init_port_hw(hwif, &hw);
 
        default_hwif_mmiops(hwif);
 
        }
 
        index = hwif->index;
-       ide_init_port_data(hwif, index);
        ide_init_port_hw(hwif, &hw);
        hwif_setup(hwif);
        hwif->host_flags = IDE_HFLAG_NO_IO_32BIT;
 
                u8 index = hwif->index;
                u8 idx[4] = { index, 0xff, 0xff, 0xff };
 
-               ide_init_port_data(hwif, index);
                ide_init_port_hw(hwif, &hw);
 
                printk(KERN_INFO "ide%d: generic PnP IDE interface\n", index);
 
                for (; i < MAX_HWIFS; i++) {
                        hwif = &ide_hwifs[i];
                        if (hwif->chipset == ide_unknown)
-                               return hwif;
+                               goto out_found;
                }
        } else {
                for (i = 2; i < MAX_HWIFS; i++) {
                        hwif = &ide_hwifs[i];
                        if (hwif->chipset == ide_unknown)
-                               return hwif;
+                               goto out_found;
                }
                for (i = 0; i < 2 && i < MAX_HWIFS; i++) {
                        hwif = &ide_hwifs[i];
                        if (hwif->chipset == ide_unknown)
-                               return hwif;
+                               goto out_found;
                }
        }
 
        return NULL;
+
+out_found:
+       ide_init_port_data(hwif, i);
+       return hwif;
 }
 EXPORT_SYMBOL_GPL(ide_find_port_slot);
 
 
 
        ide_port_init_devices_data(hwif);
 }
-EXPORT_SYMBOL_GPL(ide_init_port_data);
 
 static void ide_port_init_devices_data(ide_hwif_t *hwif)
 {
        }
 }
 
-static void __init init_ide_data (void)
-{
-       unsigned int index;
-
-       /* Initialise all interface structures */
-       for (index = 0; index < MAX_HWIFS; ++index) {
-               ide_hwif_t *hwif = &ide_hwifs[index];
-
-               ide_init_port_data(hwif, index);
-       }
-}
-
 void ide_remove_port_from_hwgroup(ide_hwif_t *hwif)
 {
        ide_hwgroup_t *hwgroup = hwif->hwgroup;
                goto out_port_class;
        }
 
-       init_ide_data();
-
        proc_ide_create();
 
        return 0;
 
                        if (hwif) {
                                u8 index = hwif->index;
 
-                               ide_init_port_data(hwif, index);
                                ide_init_port_hw(hwif, &hw);
 
                                idx[i] = index;
 
                u8 index = hwif->index;
                u8 idx[4] = { index, 0xff, 0xff, 0xff };
 
-               ide_init_port_data(hwif, index);
                ide_init_port_hw(hwif, &hw);
 
                /* Atari has a byte-swapped IDE interface */
 
        if (hwif) {
            u8 index = hwif->index;
 
-           ide_init_port_data(hwif, index);
            ide_init_port_hw(hwif, &hw);
 
            idx[i] = index;
 
 
     i = hwif->index;
 
-    ide_init_port_data(hwif, i);
     ide_init_port_hw(hwif, &hw);
     hwif->port_ops = &idecs_port_ops;
 
 
                u8 index = hwif->index;
                u8 idx[4] = { index, 0xff, 0xff, 0xff };
 
-               ide_init_port_data(hwif, index);
                ide_init_port_hw(hwif, &hw);
 
                ide_device_add(idx, NULL);
 
 
        hwif = ide_find_port();
        if (hwif) {
-               ide_init_port_data(hwif, hwif->index);
                ide_init_port_hw(hwif, &hw);
 
                /* Q40 has a byte-swapped IDE interface */
 
 
        i = hwif->index;
 
-       ide_init_port_data(hwif, i);
        ide_init_port_hw(hwif, &hw);
 
        idx[0] = i;