Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.debian.kernel > #94480

Bug#1150966: linux-image-amd64: usb_core hangs after dockstation usb-c disconnect

From Yauhen <jsirex@gmail.com>
Newsgroups linux.debian.bugs.dist, linux.debian.kernel
Subject Bug#1150966: linux-image-amd64: usb_core hangs after dockstation usb-c disconnect
Date 2026-10-15 12:10 +0200
Message-ID <NOqzo-5Fi0-23@gated-at.bofh.it> (permalink)
Organization linux.* mail to news gateway

Cross-posted to 2 groups.

Show all headers | View raw


Package: linux-image-amd64
Version: 7.2.9-1
Severity: normal
Tags: upstream
X-Debbugs-Cc: jsirex@gmail.com

Dear Maintainer,

There is issues when I connect and disconnect my laptop to/from
dockstation.

Machine details:
- Lenovo ThinkPad P16s AMD
- UEFI: R3HET21W (1.07)
- Linux p16s 7.2.9+deb14-amd64 #1 SMP PREEMPT_DYNAMIC Debian 7.2.9-1 (2026-10-03) x86_64 GNU/Linux
- Dockstation: Lenovo Thunderbolt 5 Smart
- All firmware are up to date

Use case 1:
1. connect laptop to a dockstation (usb-c)
2. send laptop sleep (suspend to ram)
3. disconnect laptop from dockstation

Expected: nothing happens

Actual:
1. Notebook wakes up
2. Screen immediately black
3. OS hangs completely
4. CPU 100%, overheating.

Only hold power button for 10 sec helps (hard power off)

Use case 2:
I gave up on case 1 as it always fail. The only annoying workflow works for me now:

1. connect laptop to a dockstation (usb-c)
2. send laptop sleep (suspend to ram)
3. wake up laptop
4. wait 10 sec to it initialize properly
5. disconnect usb-c
6. wait 10 sec to it handle everything properly
7. send laptop sleep (suspend to ram)

But 1 of 5 it still fail:
8. Laptop hangs for a 20 sec, no sleep, black screen
9. Wakes up

Nothing will help from this point. lsusb -t hangs.
Laptop is not going to sleep ever. And reboot will not help: when rebooting,
kernel just hangs somewhere in the "before reboot" step forever. Only hard power off.

Logs I could get:

[304219.195412] PM: suspend entry (s2idle)
[304219.215616] Filesystems sync: 0.020 seconds
[304219.221001] Freezing user space processes
[304219.238269] Freezing user space processes completed (elapsed 0.017 seconds)
[304219.238294] OOM killer disabled.
[304219.238296] Freezing remaining freezable tasks
[304239.242589] Freezing remaining freezable tasks failed after 20.004 seconds (0 tasks refusing to freeze, wq_busy=1):
[304239.242616] Showing freezable workqueues that are still busy:
[304239.242620] workqueue events_freezable: flags=0x104
[304239.242623]   pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=0 refcnt=2
[304239.242632]     inactive: pci_pme_list_scan
[304239.242651] workqueue usb_hub_wq: flags=0x104
[304239.242654]   pwq 82: cpus=20 node=0 flags=0x0 nice=0 active=1 refcnt=2
[304239.242659]     in-flight: 663195:hub_event [usbcore] for 224s
[304239.242784] Restarting kernel threads ...
[304239.242892] Done restarting kernel threads.
[304239.243744] OOM killer enabled.
[304239.243745] Restarting tasks: Starting
[304239.244415] Restarting tasks: Done
[304239.244505] efivarfs: resyncing variable state
[304239.294689] efivarfs: finished resyncing variable state
[304239.294739] random: crng reseeded on system resumption
[304239.320885] PM: suspend exit

And details on task:
[304951.600995] INFO: task kworker/20:1:663195 blocked for more than 845 seconds.
[304951.601016]       Tainted: G               X    7.2.9+deb14-amd64 #1 Debian 7.2.9-1
[304951.601020] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[304951.601023] task:kworker/20:1    state:D stack:0     pid:663195 tgid:663195 ppid:2      task_flags:0x4208060 flags:0x00080000
[304951.601034] Workqueue: usb_hub_wq hub_event [usbcore]
[304951.601075] Call Trace:
[304951.601078]  <TASK>
[304951.601085]  __schedule+0x4c5/0x1070
[304951.601099]  schedule+0x27/0xa0
[304951.601102]  schedule_timeout+0xdc/0x120
[304951.601107]  wait_for_completion+0x9e/0x170
[304951.601112]  xhci_configure_endpoint+0x189/0x590 [xhci_hcd]
[304951.601136]  xhci_check_bandwidth+0x19e/0x410 [xhci_hcd]
[304951.601150]  ? xhci_drop_endpoint+0x1ae/0x340 [xhci_hcd]
[304951.601163]  usb_hcd_alloc_bandwidth+0x25e/0x480 [usbcore]
[304951.601195]  usb_disable_device_endpoints+0x86/0xe0 [usbcore]
[304951.601211]  usb_disconnect+0xef/0x320 [usbcore]
[304951.601239]  hub_quiesce+0x75/0x100 [usbcore]
[304951.601265]  hub_event+0x817/0x1960 [usbcore]
[304951.601284]  ? psi_task_switch+0x1fa/0x3b0
[304951.601292]  ? finish_task_switch.isra.0+0xc3/0x3d0
[304951.601300]  ? __schedule+0x4cd/0x1070
[304951.601303]  process_one_work+0x19e/0x370
[304951.601309]  worker_thread+0x1a6/0x310
[304951.601312]  ? __pfx_worker_thread+0x10/0x10
[304951.601315]  kthread+0xe4/0x120
[304951.601319]  ? __pfx_kthread+0x10/0x10
[304951.601321]  ret_from_fork+0x2b1/0x340
[304951.601329]  ? __pfx_kthread+0x10/0x10
[304951.601330]  ret_from_fork_asm+0x1a/0x30
[304951.601339]  </TASK>


Expected, that even though external hardware could be crappy, disconnecting it should not lead to a broken kernel state.

-- System Information:
Debian Release: forky/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 7.2.9+deb14-amd64 (SMP w/24 CPU threads; PREEMPT)
Kernel taint flags: TAINT_AUX
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages linux-image-amd64 depends on:
ii  linux-base-amd64               7.2.9-1
ii  linux-image-7.2.9+deb14-amd64  7.2.9-1

linux-image-amd64 recommends no packages.

linux-image-amd64 suggests no packages.

-- no debconf information

Back to linux.debian.kernel | Previous | Next | Find similar | Unroll thread


Thread

Bug#1150966: linux-image-amd64: usb_core hangs after dockstation usb-c disconnect Yauhen <jsirex@gmail.com> - 2026-10-15 12:10 +0200

csiph-web