Hi, Here is a patch-set to fix the following issue:
When a device is added to an iommu domain, the current amd iommu code will add the device itself and the device it aliases to to the domain. But this alias relation is uni-directional. If, for example, device 03:00.1 aliases to 03:00.0 and is added to a domain, the iommu code will add both devices. But if 03.00.0 is added, 03.00.1 will be not. This is a problem with some broken devices that appear with function 0 on the bus but use function 1 as the request-id. These devices will not work with the current implementation. This patch-set changes the behavior of the code by introducing alias-groups (similar to iommu-groups, but support non-existent pci devices) and always assigns/de-assigns complete alias groups to/from a domain. This makes the alias relation bi-directional and fixes the issues with broken devices. Thanks, Joerg Joerg Roedel (4): iommu/amd: Move struct iommu_dev_data to amd_iommu.c iommu/amd: Keep a list of devices in an alias group iommu/amd: Attach and detach complete alias group iommu/amd: Remove device binding reference count drivers/iommu/amd_iommu.c | 74 +++++++++++++++++++++++++---------------- drivers/iommu/amd_iommu_types.h | 21 ------------ 2 files changed, 46 insertions(+), 49 deletions(-) -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/