Thread (18 messages) 18 messages, 5 authors, 2021-03-28

Re: [PATCH] iommu/tegra-smmu: Fix mc errors on tegra124-nyan

From: Dmitry Osipenko <digetx@gmail.com>
Date: 2021-03-11 12:07:04
Also in: linux-iommu, lkml

11.03.2021 01:17, Nicolin Chen пишет:
On Wed, Mar 10, 2021 at 11:22:57PM +0300, Dmitry Osipenko wrote:
quoted
10.03.2021 22:13, Dmitry Osipenko пишет:
quoted
I found that this patch introduced a serious regression on Tegra30 using
today's linux-next. Tegra30 has two 3d h/w blocks connected in SLI and
only one of the blocks is now attached to IOMMU domain, meaning that GPU
is unusable now. All 3d, 2d and display devices share the same "DRM"
group on Tegra30.

Nicolin, please let me know if have any suggestions. I may take a closer
look a day later, for now I'll just revert this patch locally. Thanks in
advance.
Actually, this was easy to fix:
diff --git a/drivers/iommu/tegra-smmu.c b/drivers/iommu/tegra-smmu.c
index 97eb62f667d2..639d5ceab60b 100644
--- a/drivers/iommu/tegra-smmu.c
+++ b/drivers/iommu/tegra-smmu.c
@@ -853,8 +853,6 @@ static struct iommu_device
*tegra_smmu_probe_device(struct device *dev)

 			if (err < 0)
 				return ERR_PTR(err);
-
-			break;
Hmm..I don't understand why this "break" causes problems on Tegra30.
The older versions that used _find()+configure() had it also, e.g.:
https://elixir.bootlin.com/linux/v5.9.16/source/drivers/iommu/tegra-smmu.c#L760

Dmitry, do you have any idea?
The older variant of tegra_smmu_attach_dev() didn't use fwspec [1], that
makes the difference. In other words, the older variant of
tegra_smmu_probe_device() was already buggy, but the bug was masked by
the tegra_smmu_attach_dev() that didn't use the fwspec.

[1]
https://elixir.bootlin.com/linux/v5.10.22/source/drivers/iommu/tegra-smmu.c#L476
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help