[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <e32b0819-2c29-4c83-83d5-e28dc4b2b01f@nvidia.com>
Date: Wed, 21 Jan 2026 20:00:54 +0000
From: Jon Hunter <jonathanh@...dia.com>
To: Marek Szyprowski <m.szyprowski@...sung.com>,
Mark Brown <broonie@...nel.org>, Gui-Dong Han <hanguidong02@...il.com>
Cc: gregkh@...uxfoundation.org, rafael@...nel.org, dakr@...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 20/01/2026 15:23, Marek Szyprowski wrote:
> On 20.01.2026 14:22, Mark Brown wrote:
>> On Wed, Jan 14, 2026 at 12:28:43AM +0800, Gui-Dong Han wrote:
>>> Currently, driver_match_device() is called from three sites. One site
>>> (__device_attach_driver) holds device_lock(dev), but the other two
>>> (bind_store and __driver_attach) do not. This inconsistency means that
>>> bus match() callbacks are not guaranteed to be called with the lock
>>> held.
>> I'm seeing boot hangs on Arm Juno in next/pending-fixes which bisect to
>> this commit. The boot grinds to a halt near the end of boot:
>>
>> [ 2.570549] ledtrig-cpu: registered to indicate activity on CPUs
>> [ 2.618301] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
>> [ 2.623547] msm_serial: driver initialized
>> [ 2.624058] SuperH (H)SCI(F) driver initialized
>> [ 2.624312] STM32 USART driver initialized
>>
>> with no further output, full log:
>>
>> https://lava.sirena.org.uk/scheduler/job/2387335#L862
>>
>> We are also seeing similar looking boot hangs on some Qualcomm platforms
>> in Arm's test lab which aren't verified to be the same thing but are
>> hanging at a similar point in boot.
>
> I've observed the same issue on Qualcomm RB5 board and bisecting lead me
> also to this patch. My kernel log also doesn't reveal much information:
>
> ...
>
> [ 3.671227] vreg_bob: Setting 3008000-4000000uV
> [ 3.676929] vreg_l1c_1p8: Setting 1800000-1800000uV
> [ 3.682826] vreg_l2c_1p2: Setting 1200000-1200000uV
> [ 3.688547] vreg_l3c_0p8: Setting 800000-800000uV
> [ 3.694080] vreg_l4c_1p7: Setting 1704000-2928000uV
> [ 3.699908] vreg_l5c_1p8: Setting 1800000-2928000uV
> [ 3.705763] vreg_l6c_2p96: Setting 1800000-2960000uV
> [ 3.711684] vreg_l7c_cam_vcm0_2p85: Setting 2856000-3104000uV
> [ 3.718408] vreg_l8c_1p8: Setting 1800000-1800000uV
> [ 3.724287] vreg_l9c_2p96: Setting 2704000-2960000uV
> [ 3.730218] vreg_l10c_3p0: Setting 3000000-3000000uV
> [ 3.736226] vreg_l11c_3p3: Setting 3296000-3296000uV
> [ 3.743413] vreg_s8c_1p3: Setting 1352000-1352000uV
> [ 3.771370] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
> [ 3.792020] msm_serial: driver initialized
> [ 3.797633] SuperH (H)SCI(F) driver initialized
> [ 3.802881] STM32 USART driver initialized
>
> [hang/freeze]
I am seeing a similar issue on one of our Tegra boards and bisect also
points to this commit.
It is odd because it only appears to impact the Tegra194 Jetson Xavier
NX board (tegra194-p3509-0000+p3668-0000.dts).
It appears to boot enough so the test can SSH into the device, but the
kernel log does not show the us getting to the console prompt. It also
appears that a lot of drivers are not bound as expected. I would need to
check if those are all modules or not.
Jon
--
nvpublic
Powered by blists - more mailing lists