summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorJeff Garzik <jeff@garzik.org>2006-09-19 06:25:50 +0200
committerJeff Garzik <jeff@garzik.org>2006-09-19 06:25:50 +0200
commita64f97f2c351410dfb3099c2369eacf7154b5532 (patch)
treeb9f132ee5544febc50a9616a4edb52dd89370105 /drivers
parentMerge branch 'master' into upstream (diff)
parentFix libata resource conflict for legacy mode (diff)
downloadlinux-a64f97f2c351410dfb3099c2369eacf7154b5532.tar.xz
linux-a64f97f2c351410dfb3099c2369eacf7154b5532.zip
Merge branch 'tmp' into upstream
Conflicts: drivers/ata/libata-sff.c
Diffstat (limited to 'drivers')
-rw-r--r--drivers/ata/libata-sff.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c
index 760502859821..d51dc41fa195 100644
--- a/drivers/ata/libata-sff.c
+++ b/drivers/ata/libata-sff.c
@@ -997,11 +997,16 @@ int ata_pci_init_one (struct pci_dev *pdev, struct ata_port_info **port_info,
res.start = ATA_PRIMARY_CMD;
res.end = ATA_PRIMARY_CMD + 8 - 1;
conflict = ____request_resource(&ioport_resource, &res);
+ while (conflict->child)
+ conflict = ____request_resource(conflict, &res);
if (!strcmp(conflict->name, "libata"))
legacy_mode |= ATA_PORT_PRIMARY;
else {
disable_dev_on_err = 0;
- printk(KERN_WARNING "ata: 0x%0X IDE port busy\n", ATA_PRIMARY_CMD);
+ printk(KERN_WARNING "ata: 0x%0X IDE port busy\n" \
+ "ata: conflict with %s\n",
+ ATA_PRIMARY_CMD,
+ conflict->name);
}
} else
legacy_mode |= ATA_PORT_PRIMARY;
@@ -1011,11 +1016,16 @@ int ata_pci_init_one (struct pci_dev *pdev, struct ata_port_info **port_info,
res.start = ATA_SECONDARY_CMD;
res.end = ATA_SECONDARY_CMD + 8 - 1;
conflict = ____request_resource(&ioport_resource, &res);
+ while (conflict->child)
+ conflict = ____request_resource(conflict, &res);
if (!strcmp(conflict->name, "libata"))
legacy_mode |= ATA_PORT_SECONDARY;
else {
disable_dev_on_err = 0;
- printk(KERN_WARNING "ata: 0x%X IDE port busy\n", ATA_SECONDARY_CMD);
+ printk(KERN_WARNING "ata: 0x%X IDE port busy\n" \
+ "ata: conflict with %s\n",
+ ATA_SECONDARY_CMD,
+ conflict->name);
}
} else
legacy_mode |= ATA_PORT_SECONDARY;