]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/ata/libata-core.c
libata: only ports >= 0 need to synchronize
[linux-2.6-omap-h63xx.git] / drivers / ata / libata-core.c
index c507a9ac78f475e8569d920f0b5404553fff7b90..71218d76d75e482df1a3f43237b936467fb04675 100644 (file)
@@ -5920,6 +5920,17 @@ static void async_port_probe(void *data, async_cookie_t cookie)
 {
        int rc;
        struct ata_port *ap = data;
+
+       /*
+        * If we're not allowed to scan this host in parallel,
+        * we need to wait until all previous scans have completed
+        * before going further.
+        * Jeff Garzik says this is only within a controller, so we
+        * don't need to wait for port 0, only for later ports.
+        */
+       if (!(ap->host->flags & ATA_HOST_PARALLEL_SCAN) && ap->port_no != 0)
+               async_synchronize_cookie(cookie);
+
        /* probe */
        if (ap->ops->error_handler) {
                struct ata_eh_info *ehi = &ap->link.eh_info;