aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-01-12 05:22:30 -0500
committerIngo Molnar <mingo@elte.hu>2009-01-12 05:22:30 -0500
commit7cbdadf7b6b18d85204921de2639de230809e564 (patch)
tree729622159a65cc229d65a0db4bf167ffd5c21e60 /drivers
parent52811d8c9beb67da6bc4b770de3c4134376788a1 (diff)
parentc59765042f53a79a7a65585042ff463b69cb248c (diff)
Merge commit 'v2.6.29-rc1' into x86/cleanups
Diffstat (limited to 'drivers')
-rw-r--r--drivers/ata/ahci.c3
-rw-r--r--drivers/ata/libata-core.c11
2 files changed, 14 insertions, 0 deletions
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index 7f701cbe14ab..96039671e3b9 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -2660,6 +2660,9 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
2660 host->iomap = pcim_iomap_table(pdev); 2660 host->iomap = pcim_iomap_table(pdev);
2661 host->private_data = hpriv; 2661 host->private_data = hpriv;
2662 2662
2663 if (!(hpriv->cap & HOST_CAP_SSS))
2664 host->flags |= ATA_HOST_PARALLEL_SCAN;
2665
2663 if (pi.flags & ATA_FLAG_EM) 2666 if (pi.flags & ATA_FLAG_EM)
2664 ahci_reset_em(host); 2667 ahci_reset_em(host);
2665 2668
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index c507a9ac78f4..71218d76d75e 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -5920,6 +5920,17 @@ static void async_port_probe(void *data, async_cookie_t cookie)
5920{ 5920{
5921 int rc; 5921 int rc;
5922 struct ata_port *ap = data; 5922 struct ata_port *ap = data;
5923
5924 /*
5925 * If we're not allowed to scan this host in parallel,
5926 * we need to wait until all previous scans have completed
5927 * before going further.
5928 * Jeff Garzik says this is only within a controller, so we
5929 * don't need to wait for port 0, only for later ports.
5930 */
5931 if (!(ap->host->flags & ATA_HOST_PARALLEL_SCAN) && ap->port_no != 0)
5932 async_synchronize_cookie(cookie);
5933
5923 /* probe */ 5934 /* probe */
5924 if (ap->ops->error_handler) { 5935 if (ap->ops->error_handler) {
5925 struct ata_eh_info *ehi = &ap->link.eh_info; 5936 struct ata_eh_info *ehi = &ap->link.eh_info;