diff options
| author | Sven Peter <sven@kernel.org> | 2026-08-29 10:08:34 +0200 |
|---|---|---|
| committer | Mika Westerberg <mika.westerberg@linux.intel.com> | 2026-09-01 10:09:51 +0200 |
| commit | 12f5d8b85a66a0ac08d082517d92ce136f8c0d42 (patch) | |
| tree | 1cfb7f0e292e6a6a46aaeb3d5c0e5d7c4fb1a307 /tools/lib/python/kdoc/python_version.py | |
| parent | 032c59c7681c661b63123231824170c025afb7e7 (diff) | |
| download | linux-next-12f5d8b85a66a0ac08d082517d92ce136f8c0d42.tar.gz linux-next-12f5d8b85a66a0ac08d082517d92ce136f8c0d42.zip | |
thunderbolt: Make the DP tunnel activation callback mandatory
tb_tunnel_alloc_dp() takes an optional callback which is run from
dprx_work once the DPRX capabilities read has completed. Without that
callback tb_dp_dprx_start() reads the capabilities synchronously and
never queues the work. It however always takes a tunnel reference which
is only dropped by dprx_work itself or by tb_dp_dprx_stop() when
cancel_delayed_work() actually canceled that work. That reference is
thus leaked for every tunnel without a callback.
The only tunnels without one are those from tb_tunnel_discover_dp(),
which are activated again when restoring from hibernation.
Pass the callback to tb_tunnel_discover_dp() as well and drop the
synchronous path such that the DPRX capabilities are always read from
dprx_work. Hibernation restore then also no longer blocks for up to 12
seconds while waiting for that read to complete.
Also fix up the KUnit tests.
Fixes: d6d458d42e1e ("thunderbolt: Handle DisplayPort tunnel activation asynchronously")
Cc: stable@vger.kernel.org
Signed-off-by: Sven Peter <sven@kernel.org>
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Diffstat (limited to 'tools/lib/python/kdoc/python_version.py')
0 files changed, 0 insertions, 0 deletions
