ACPI/IORT: Move the check to get iommu_ops from translated fwspec
authorLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Sat, 27 May 2017 13:47:44 +0000 (19:17 +0530)
committerJoerg Roedel <jroedel@suse.de>
Tue, 30 May 2017 09:31:33 +0000 (11:31 +0200)
commit4dac3210c54a04be9c187dd31b4debb46e3d792b
tree7b1cef9d31c8af430ec7bd066cd7ddc60204d4b2
parenta93a121a96531b99d6feb8db96417b49e1bb28e8
ACPI/IORT: Move the check to get iommu_ops from translated fwspec

With IOMMU probe deferral, iort_iommu_configure can be called
multiple times for the same device. Hence we have a check
to see if the device's fwspec is already translated and return
the iommu_ops from that directly. But the check is wrongly
placed in iort_iommu_xlate, which breaks devices with multiple
sids. Move the check to iort_iommu_configure.

Fixes: 5a1bb638d567 ("drivers: acpi: Handle IOMMU lookup failure with deferred probing or error")
Tested-by: Nate Watterson <nwatters@codeaurora.org>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/acpi/arm64/iort.c