[PATCH 0/4] AMD IOMMU: Assign/de-assign complete alias groups

From: Joerg Roedel
Date: Tue Aug 26 2014 - 05:36:44 EST


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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/