[PATCH v5 04/12] libata: use correct PCI devices

Lin Ming
2012-06-18T06:25:58Z

From: Holger Macht <holger@homac.de>

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@homac.de>
Signed-off-by: Lin Ming <ming.m.lin@intel.com>
---
drivers/ata/libata-acpi.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/ata/libata-acpi.c b/drivers/ata/libata-acpi.c
index adc6336..98826e96 100644
--- a/drivers/ata/libata-acpi.c
+++ b/drivers/ata/libata-acpi.c
@@ -987,7 +987,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;
@@ -1021,13 +1021,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 (!compat_pci_ata(dev->parent))
+ if (!compat_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 (!compat_pci_ata(dev->parent->parent->parent))
+ if (!compat_pci_ata(dev->parent->parent->parent->parent))
return -ENODEV;

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