[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <DFZH06V25YY8.3JBBYQLTWBUKN@kernel.org>
Date: Tue, 27 Jan 2026 16:18:18 +0100
From: "Danilo Krummrich" <dakr@...nel.org>
To: "Jon Hunter" <jonathanh@...dia.com>
Cc: "Gui-Dong Han" <hanguidong02@...il.com>, "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 Tue Jan 27, 2026 at 3:58 PM CET, Jon Hunter wrote:
>
> On 23/01/2026 19:07, Danilo Krummrich wrote:
>> On Fri Jan 23, 2026 at 7:53 PM CET, Gui-Dong Han wrote:
>>> It seems the issue is simpler than a recursive registration deadlock.
>>> Looking at the logs, tegra_qspi_probe triggers a NULL pointer
>>> dereference (Oops) while holding the device_lock. The mutex likely
>>> remains marked as held/orphaned, blocking subsequent driver bindings
>>> on the same bus.
>>>
>>> This likely explains why lockdep was silent. Since this is not a lock
>>> dependency cycle or a recursive locking violation, but rather a lock
>>> remaining held by a terminated task, lockdep would not flag it as a
>>> deadlock pattern.
>>>
>>> This is indeed a side effect of enforcing the lock hereāit amplifies
>>> the impact of a crash. However, an Oops while holding the device_lock
>>> is generally catastrophic regardless.
>>
>> This makes sense to me; it might indeed be as simple as that.
>
> Yes I believe that this is the case too.
>
> BTW, if I apply the SPI series from Breno [0], which fixes crash in the
> SPI driver, then everything works fine.
Thanks for confirming!
- Danilo
Powered by blists - more mailing lists