ide: move ide_port_setup_devices() call to ide_device_add_all()

Add ide_cfg_mtx lock/unlock to ide_port_setup_devices() and then move
ide_port_setup_devices() call from init_irq() to ide_device_add_all().
Acked-by: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
parent 43514ed1
...@@ -949,6 +949,7 @@ static void ide_port_setup_devices(ide_hwif_t *hwif) ...@@ -949,6 +949,7 @@ static void ide_port_setup_devices(ide_hwif_t *hwif)
{ {
int i; int i;
mutex_lock(&ide_cfg_mtx);
for (i = 0; i < MAX_DRIVES; i++) { for (i = 0; i < MAX_DRIVES; i++) {
ide_drive_t *drive = &hwif->drives[i]; ide_drive_t *drive = &hwif->drives[i];
...@@ -963,6 +964,7 @@ static void ide_port_setup_devices(ide_hwif_t *hwif) ...@@ -963,6 +964,7 @@ static void ide_port_setup_devices(ide_hwif_t *hwif)
ide_add_drive_to_hwgroup(drive); ide_add_drive_to_hwgroup(drive);
} }
mutex_unlock(&ide_cfg_mtx);
} }
/* /*
...@@ -1088,8 +1090,6 @@ static int init_irq (ide_hwif_t *hwif) ...@@ -1088,8 +1090,6 @@ static int init_irq (ide_hwif_t *hwif)
hwif->sharing_irq ? "shar" : "serializ", match->name); hwif->sharing_irq ? "shar" : "serializ", match->name);
printk("\n"); printk("\n");
ide_port_setup_devices(hwif);
mutex_unlock(&ide_cfg_mtx); mutex_unlock(&ide_cfg_mtx);
return 0; return 0;
out_unlink: out_unlink:
...@@ -1447,6 +1447,8 @@ int ide_device_add_all(u8 *idx, const struct ide_port_info *d) ...@@ -1447,6 +1447,8 @@ int ide_device_add_all(u8 *idx, const struct ide_port_info *d)
continue; continue;
} }
ide_port_setup_devices(hwif);
ide_acpi_init(hwif); ide_acpi_init(hwif);
ide_acpi_port_init_devices(hwif); ide_acpi_port_init_devices(hwif);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment