Seems 0f:00.0 is not attached to a group so that it get a domain. Can
you also paste your "lspci -t" and "lspci -vvv" output? Here 0f:00.0
should be a pci bridge which need set the same domain with its
peripheral 0000:0f:04.0.

Please apply this patch and try again.


>From 6740bc427ddfeecc4b557fcb3ceb0832f73ab33a Mon Sep 17 00:00:00 2001
From: Baoquan He <b...@redhat.com>
Date: Wed, 13 Jan 2016 11:02:28 +0800
Subject: [PATCH] iommu/amd: Correct the wrong setting of alias DTE in
 do_attach

In below commit Joerg tried to set alias DTE when its peripheral
is setting DTE. But there's a code bug here to wrongly set the
alias DTE, correct it in this patch.

commit e25bfb56ea7f046b71414e02f80f620deb5c6362
Author: Joerg Roedel <jroe...@suse.de>
Date:   Tue Oct 20 17:33:38 2015 +0200

    iommu/amd: Set alias DTE in do_attach/do_detach

Signed-off-by: Baoquan He <b...@redhat.com>
---
 drivers/iommu/amd_iommu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c
index 8b2be1e..fc836f5 100644
--- a/drivers/iommu/amd_iommu.c
+++ b/drivers/iommu/amd_iommu.c
@@ -1905,7 +1905,7 @@ static void do_attach(struct iommu_dev_data *dev_data,
        /* Update device table */
        set_dte_entry(dev_data->devid, domain, ats);
        if (alias != dev_data->devid)
-               set_dte_entry(dev_data->devid, domain, ats);
+               set_dte_entry(alias, domain, ats);
 
        device_flush_dte(dev_data);
 }
-- 
2.1.0

_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to