Index: b/drivers/ata/libata-core.c =================================================================== --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c @@ -6181,12 +6181,14 @@ int ata_host_register(struct ata_host *h /* perform each probe asynchronously */ for (i = 0; i < host->n_ports; i++) { struct ata_port *ap = host->ports[i]; async_schedule(async_port_probe, ap); } + async_synchronize_full(); + return 0; err_tadd: while (--i >= 0) { ata_tport_delete(host->ports[i]); }