[PATCH v4 04/13] libata: use correct PCI devices

From: Lin Ming
Date: Mon May 28 2012 - 01:13:29 EST


From: Holger Macht <holger@xxxxxxxx>

Commit 9a6d6a2ddabbd32c07f6a38b659e5f3db319fa5a made ata ports parent
devices of scsi hosts, so we need to go yet another level up to be able
to use the correct PCI devices.

Signed-off-by: Holger Macht <holger@xxxxxxxx>
Signed-off-by: Lin Ming <ming.m.lin@xxxxxxxxx>
---
drivers/ata/libata-acpi.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/ata/libata-acpi.c b/drivers/ata/libata-acpi.c
index 762e0c8..df4e21a 100644
--- a/drivers/ata/libata-acpi.c
+++ b/drivers/ata/libata-acpi.c
@@ -976,7 +976,7 @@ static int ata_acpi_bind_host(struct device *dev, int host, acpi_handle *handle)
if (ap->flags & ATA_FLAG_ACPI_SATA)
return -ENODEV;

- *handle = acpi_get_child(DEVICE_ACPI_HANDLE(dev->parent), ap->port_no);
+ *handle = acpi_get_child(DEVICE_ACPI_HANDLE(dev->parent->parent), ap->port_no);

if (!*handle)
return -ENODEV;
@@ -1010,13 +1010,13 @@ static int ata_acpi_find_device(struct device *dev, acpi_handle *handle)
unsigned int host, channel, id, lun;

if (sscanf(dev_name(dev), "host%u", &host) == 1) {
- if (!is_pci_ata(dev->parent))
+ if (!is_pci_ata(dev->parent->parent))
return -ENODEV;

return ata_acpi_bind_host(dev, host, handle);
} else if (sscanf(dev_name(dev), "%d:%d:%d:%d",
&host, &channel, &id, &lun) == 4) {
- if (!is_pci_ata(dev->parent->parent->parent))
+ if (!is_pci_ata(dev->parent->parent->parent->parent))
return -ENODEV;

return ata_acpi_bind_device(dev, channel, id, handle);
--
1.7.2.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/