[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <956d5d23-6a62-4dba-9c98-83457526f9b6@nvidia.com>
Date: Thu, 22 Jan 2026 18:58:30 +0000
From: Jon Hunter <jonathanh@...dia.com>
To: Danilo Krummrich <dakr@...nel.org>, Gui-Dong Han <hanguidong02@...il.com>
Cc: Marek Szyprowski <m.szyprowski@...sung.com>,
Mark Brown <broonie@...nel.org>, gregkh@...uxfoundation.org,
rafael@...nel.org, linux-kernel@...r.kernel.org, baijiaju1990@...il.com,
Qiu-ji Chen <chenqiuji666@...il.com>, Aishwarya.TCV@....com,
"linux-tegra@...r.kernel.org" <linux-tegra@...r.kernel.org>
Subject: Re: [PATCH v5] driver core: enforce device_lock for
driver_match_device()
On 22/01/2026 18:12, Danilo Krummrich wrote:
...
>>> Any other thoughts?
>
> With this diff, if I intentionally create a deadlock condition on my machine, I
> do see a lockdep splat as expected.
>
> Anyways, another option would be to attach a hardware debugger (I assume you
> have TRACE32 or something available?) and then get a backtrace from the CPU
> affected of the deadlock.
Unfortunately, these days I don't have such tools available so that's
not an option.
>> Can you please try applying the following commit?
>>
>> https://git.kernel.org/pub/scm/linux/kernel/git/driver-core/driver-core.git/commit/?h=driver-core-linus&id=ed1ac3c977dd6b119405fa36dd41f7151bd5b4de
>>
>> Robin Murphy confirmed that the qcom specific issue might actually
>> impact other hardware platforms (provided ARM_SMMU_QCOM/ARCH_QCOM is
>> enabled), as the implementation init code is still executed:
>>
>> https://lore.kernel.org/driver-core/d2ddbb72-30a8-44da-b761-876b2d37567e@arm.com/
>>
>> So, this patch might fix the issue on Tegra as well.
>
> I thought of that as well, but looking at the code in arm_smmu_impl_init(), it
> seems that can't happen?
>
> if (of_device_is_compatible(np, "nvidia,tegra234-smmu") ||
> of_device_is_compatible(np, "nvidia,tegra194-smmu") ||
> of_device_is_compatible(np, "nvidia,tegra186-smmu"))
> return nvidia_smmu_impl_init(smmu);
>
> if (IS_ENABLED(CONFIG_ARM_SMMU_QCOM))
> smmu = qcom_smmu_impl_init(smmu);
>
> But maybe there is some odd case where the first if condition does not evaluate
> to true on tegra194, so maybe worth a try.
I gave this a shot but that did not help either.
Thanks
Jon
--
nvpublic
Powered by blists - more mailing lists