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/

Reply via email to