The same problem with HackRF: it stops working after using it once (presumably due to transfers being cancelled on exit). hackrf_info still detects it though, which is probably because only the bulk transfer endpoint becomes broken. Kernel 5.9.11 ASRock B550 Extreme4, BIOS P1.20 08/13/2020 01:00.0 USB controller: Advanced Micro Devices, Inc. [AMD] Device 43ee 0c:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller The debug messages on stopping the tool: [ 3944.894483] xhci_hcd 0000:01:00.0: Transfer error for slot 28 ep 2 on endpoint [ 3944.894494] xhci_hcd 0000:01:00.0: // Ding dong! [ 3944.894602] xhci_hcd 0000:01:00.0: Ignoring reset ep completion code of 1 [ 3945.396550] xhci_hcd 0000:01:00.0: Cancel URB 000000008085c3f5, dev 5, ep 0x81, starting at offset 0x1fa7ae1c90 [ 3945.396558] xhci_hcd 0000:01:00.0: // Ding dong! [ 3945.396690] xhci_hcd 0000:01:00.0: Removing canceled TD starting at 0x1fa7ae1c90 (dma). [ 3945.396710] xhci_hcd 0000:01:00.0: Cancel URB 000000000098c2b5, dev 5, ep 0x81, starting at offset 0x1fa7ae1990 [ 3945.396712] xhci_hcd 0000:01:00.0: // Ding dong! [ 3945.396836] xhci_hcd 0000:01:00.0: Removing canceled TD starting at 0x1fa7ae1990 (dma). [ 3945.396839] xhci_hcd 0000:01:00.0: Finding endpoint context [ 3945.396841] xhci_hcd 0000:01:00.0: Cycle state = 0x1 [ 3945.396843] xhci_hcd 0000:01:00.0: New dequeue segment = 000000008a0bf921 (virtual) [ 3945.396845] xhci_hcd 0000:01:00.0: New dequeue pointer = 0x1fa7ae1a90 (DMA) [ 3945.396847] xhci_hcd 0000:01:00.0: Set TR Deq Ptr cmd, new deq seg = 000000008a0bf921 (0x1fa7ae1000 dma), new deq ptr = 00000000e5711e6d (0x1fa7ae1a90 dma), new cycle = 1 [ 3945.396851] xhci_hcd 0000:01:00.0: // Ding dong! [ 3945.396869] xhci_hcd 0000:01:00.0: Cancel URB 000000008b1032dd, dev 5, ep 0x81, starting at offset 0x1fa7ae1a90 [ 3945.396871] xhci_hcd 0000:01:00.0: // Ding dong! [ 3945.396904] xhci_hcd 0000:01:00.0: WARN Set TR Deq Ptr cmd failed due to incorrect slot or ep state. [ 3945.396909] xhci_hcd 0000:01:00.0: Slot state = 3, EP state = 2 [ 3945.397028] xhci_hcd 0000:01:00.0: Removing canceled TD starting at 0x1fa7ae1a90 (dma). [ 3945.397040] xhci_hcd 0000:01:00.0: Cancel URB 00000000b1b43562, dev 5, ep 0x81, starting at offset 0x1fa7ae1b90 [ 3945.397042] xhci_hcd 0000:01:00.0: // Ding dong! [ 3945.397172] xhci_hcd 0000:01:00.0: Removing canceled TD starting at 0x1fa7ae1b90 (dma). Messages on attempts to use the device again: [ 4076.243019] xhci_hcd 0000:01:00.0: WARN halted endpoint, queueing URB anyway. [ 4076.243029] xhci_hcd 0000:01:00.0: WARN halted endpoint, queueing URB anyway. [ 4076.243044] xhci_hcd 0000:01:00.0: WARN halted endpoint, queueing URB anyway. [ 4076.243051] xhci_hcd 0000:01:00.0: WARN halted endpoint, queueing URB anyway. [ 4077.749450] xhci_hcd 0000:01:00.0: Cancel URB 0000000063c2cde4, dev 5, ep 0x81, starting at offset 0x1fa7ae1d90 [ 4077.749456] xhci_hcd 0000:01:00.0: // Ding dong! [ 4077.749592] xhci_hcd 0000:01:00.0: Removing canceled TD starting at 0x1fa7ae1d90 (dma). [ 4077.749620] xhci_hcd 0000:01:00.0: Cancel URB 00000000564ffbd2, dev 5, ep 0x81, starting at offset 0x1fa7ae1e90 [ 4077.749622] xhci_hcd 0000:01:00.0: // Ding dong! [ 4077.749748] xhci_hcd 0000:01:00.0: Removing canceled TD starting at 0x1fa7ae1e90 (dma). [ 4077.749761] xhci_hcd 0000:01:00.0: Cancel URB 00000000ff7fb480, dev 5, ep 0x81, starting at offset 0x1fa7ae1f90 [ 4077.749763] xhci_hcd 0000:01:00.0: // Ding dong! [ 4077.749892] xhci_hcd 0000:01:00.0: Removing canceled TD starting at 0x1fa7ae1f90 (dma). [ 4077.749906] xhci_hcd 0000:01:00.0: Cancel URB 00000000f83271e0, dev 5, ep 0x81, starting at offset 0x1fa7ae00a0 [ 4077.749908] xhci_hcd 0000:01:00.0: // Ding dong! [ 4077.750035] xhci_hcd 0000:01:00.0: Removing canceled TD starting at 0x1fa7ae00a0 (dma).