* [REGRESSION] usb: xhci port capability storage change broke fastboot android bootloader utility
@ 2024-12-27 21:59 Forest
2025-01-02 14:13 ` Mathias Nyman
0 siblings, 1 reply; 13+ messages in thread
From: Forest @ 2024-12-27 21:59 UTC (permalink / raw)
To: Mathias Nyman; +Cc: linux-usb, regressions, stable
#regzbot introduced: 63a1f8454962
Dear maintainer,
I think I have found a regression in kernels version 6.10 and newer,
including the latest mainline v6.13-rc4:
fastboot (the tool for communicating with Android bootloaders) now fails to
perform various operations over USB.
The problem manifests as an error when attempting to 'fastboot flash' an
image (e.g. a new kernel containing security updates) to a LineageOS phone.
It also manifests with simpler operations like reading a variable from the
bootloader. For example:
fastboot getvar kernel
A typical error message when the failure occurs:
getvar:kernel FAILED (remote: 'GetVar Variable Not found')
I can reproduce this at will. It happens about 50% of the time when I
run the above getvar command, and almost all the time when I try to push
a new kernel to a device.
A git bisect reveals this:
63a1f8454962a64746a59441687dc2401290326c is the first bad commit
commit 63a1f8454962a64746a59441687dc2401290326c
Author: Mathias Nyman <mathias.nyman@linux.intel.com>
Date: Mon Apr 29 17:02:28 2024 +0300
xhci: stored cached port capability values in one place
^ permalink raw reply [flat|nested] 13+ messages in thread* Re: [REGRESSION] usb: xhci port capability storage change broke fastboot android bootloader utility 2024-12-27 21:59 [REGRESSION] usb: xhci port capability storage change broke fastboot android bootloader utility Forest @ 2025-01-02 14:13 ` Mathias Nyman 2025-01-05 23:42 ` Forest 0 siblings, 1 reply; 13+ messages in thread From: Mathias Nyman @ 2025-01-02 14:13 UTC (permalink / raw) To: Forest; +Cc: linux-usb, regressions, stable Hi On 27.12.2024 23.59, Forest wrote: > #regzbot introduced: 63a1f8454962 > > Dear maintainer, > > I think I have found a regression in kernels version 6.10 and newer, > including the latest mainline v6.13-rc4: > > fastboot (the tool for communicating with Android bootloaders) now fails to > perform various operations over USB. > > The problem manifests as an error when attempting to 'fastboot flash' an > image (e.g. a new kernel containing security updates) to a LineageOS phone. > It also manifests with simpler operations like reading a variable from the > bootloader. For example: > > fastboot getvar kernel > > A typical error message when the failure occurs: > > getvar:kernel FAILED (remote: 'GetVar Variable Not found') > > I can reproduce this at will. It happens about 50% of the time when I > run the above getvar command, and almost all the time when I try to push > a new kernel to a device. > > A git bisect reveals this: > > 63a1f8454962a64746a59441687dc2401290326c is the first bad commit > commit 63a1f8454962a64746a59441687dc2401290326c > Author: Mathias Nyman <mathias.nyman@linux.intel.com> > Date: Mon Apr 29 17:02:28 2024 +0300 > xhci: stored cached port capability values in one place It's not clear to me why this patch would cause regression. Could you enable xhci and usb core dynamic debug before connecting the device, and then share dmesg after the issue is triggered. dmesg of a working case would also be good to have for comparison. mount -t debugfs none /sys/kernel/debug echo 'module xhci_hcd =p' >/sys/kernel/debug/dynamic_debug/control echo 'module usbcore =p' >/sys/kernel/debug/dynamic_debug/control < Reproduce issue > Send output of dmesg Thanks Mathias ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [REGRESSION] usb: xhci port capability storage change broke fastboot android bootloader utility 2025-01-02 14:13 ` Mathias Nyman @ 2025-01-05 23:42 ` Forest 2025-01-07 12:29 ` Mathias Nyman 0 siblings, 1 reply; 13+ messages in thread From: Forest @ 2025-01-05 23:42 UTC (permalink / raw) To: Mathias Nyman; +Cc: linux-usb, regressions, stable On Thu, 2 Jan 2025 16:13:34 +0200, Mathias Nyman wrote: >It's not clear to me why this patch would cause regression. > >Could you enable xhci and usb core dynamic debug before connecting the >device, and then share dmesg after the issue is triggered. > >dmesg of a working case would also be good to have for comparison. I booted kernel 9b780c845fb6 (the last good one), logged in to my desktop, waited a couple of minutes to let things settle, and then ran 'fastboot getvar kernel' twice with the android device in bootloader mode. Here's the dmesg output: [ 178.056557] xhci_hcd 0000:0c:00.0: ep 0x82 - asked for 32 bytes, 26 bytes untransferred [ 179.166570] xhci_hcd 0000:0c:00.0: ep 0x82 - asked for 32 bytes, 26 bytes untransferred [ 179.738601] xhci_hcd 0000:0c:00.0: ep 0x82 - asked for 32 bytes, 26 bytes untransferred [ 179.874603] xhci_hcd 0000:0c:00.0: ep 0x82 - asked for 32 bytes, 26 bytes untransferred [ 195.331308] xhci_hcd 0000:0c:00.0: Port change event, 1-3, id 8, portsc: 0x202e1 [ 195.331313] xhci_hcd 0000:0c:00.0: handle_port_status: starting usb1 port polling. [ 195.331337] hub 1-0:1.0: state 7 ports 12 chg 0000 evt 0008 [ 195.331343] xhci_hcd 0000:0c:00.0: Get port status 1-3 read: 0x202e1, return 0x10101 [ 195.331354] xhci_hcd 0000:0c:00.0: clear port3 connect change, portsc: 0x2e1 [ 195.331360] usb usb1-port3: status 0101, change 0001, 12 Mb/s [ 195.331363] xhci_hcd 0000:0c:00.0: Get port status 1-3 read: 0x2e1, return 0x101 [ 195.359097] xhci_hcd 0000:0c:00.0: xhci_hub_status_data: stopping usb1 port polling [ 195.367107] xhci_hcd 0000:0c:00.0: Get port status 1-3 read: 0x2e1, return 0x101 [ 195.403105] xhci_hcd 0000:0c:00.0: Get port status 1-3 read: 0x2e1, return 0x101 [ 195.439107] xhci_hcd 0000:0c:00.0: Get port status 1-3 read: 0x2e1, return 0x101 [ 195.475109] xhci_hcd 0000:0c:00.0: Get port status 1-3 read: 0x2e1, return 0x101 [ 195.475119] usb usb1-port3: debounce total 100ms stable 100ms status 0x101 [ 195.475124] xhci_hcd 0000:0c:00.0: // Ding dong! [ 195.475222] xhci_hcd 0000:0c:00.0: Slot 5 output ctx = 0x0x00000000fff58000 (dma) [ 195.475232] xhci_hcd 0000:0c:00.0: Slot 5 input ctx = 0x0x00000000fff4e000 (dma) [ 195.475240] xhci_hcd 0000:0c:00.0: Set slot id 5 dcbaa entry 0000000014c537d8 to 0xfff58000 [ 195.475261] xhci_hcd 0000:0c:00.0: set port reset, actual port 1-3 status = 0x2e1 [ 195.543104] xhci_hcd 0000:0c:00.0: Get port status 1-3 read: 0x331, return 0x111 [ 195.543113] usb usb1-port3: not reset yet, waiting 60ms [ 195.550132] xhci_hcd 0000:0c:00.0: Port change event, 1-3, id 8, portsc: 0x200e03 [ 195.550137] xhci_hcd 0000:0c:00.0: handle_port_status: starting usb1 port polling. [ 195.611110] xhci_hcd 0000:0c:00.0: Get port status 1-3 read: 0x200e03, return 0x100503 [ 195.611123] xhci_hcd 0000:0c:00.0: clear port3 reset change, portsc: 0xe03 [ 195.671106] usb 1-3: new high-speed USB device number 6 using xhci_hcd [ 195.671111] xhci_hcd 0000:0c:00.0: Slot ID 5: HW portnum 7, hcd portnum 2 [ 195.671113] xhci_hcd 0000:0c:00.0: udev->tt = 0000000000000000 [ 195.671115] xhci_hcd 0000:0c:00.0: udev->ttport = 0x0 [ 195.671117] xhci_hcd 0000:0c:00.0: // Ding dong! [ 195.671624] xhci_hcd 0000:0c:00.0: Successful setup context command [ 195.671628] xhci_hcd 0000:0c:00.0: Op regs DCBAA ptr = 0x000000fffff000 [ 195.671630] xhci_hcd 0000:0c:00.0: Slot ID 5 dcbaa entry @0000000014c537d8 = 0x000000fff58000 [ 195.671633] xhci_hcd 0000:0c:00.0: Output Context DMA address = 0xfff58000 [ 195.671634] xhci_hcd 0000:0c:00.0: Internal device address = 0 [ 195.674197] xhci_hcd 0000:0c:00.0: Waiting for status stage event [ 195.676204] xhci_hcd 0000:0c:00.0: set port reset, actual port 1-3 status = 0xe03 [ 195.743113] xhci_hcd 0000:0c:00.0: Get port status 1-3 read: 0x331, return 0x111 [ 195.743124] usb usb1-port3: not reset yet, waiting 60ms [ 195.751006] xhci_hcd 0000:0c:00.0: Port change event, 1-3, id 8, portsc: 0x200e03 [ 195.751011] xhci_hcd 0000:0c:00.0: handle_port_status: starting usb1 port polling. [ 195.811114] xhci_hcd 0000:0c:00.0: Get port status 1-3 read: 0x200e03, return 0x100503 [ 195.811126] xhci_hcd 0000:0c:00.0: clear port3 reset change, portsc: 0xe03 [ 195.855115] xhci_hcd 0000:0c:00.0: xhci_hub_status_data: stopping usb1 port polling [ 195.871114] xhci_hcd 0000:0c:00.0: Resetting device with slot ID 5 [ 195.871119] xhci_hcd 0000:0c:00.0: // Ding dong! [ 195.871155] xhci_hcd 0000:0c:00.0: Completed reset device command. [ 195.871160] xhci_hcd 0000:0c:00.0: Can't reset device (slot ID 5) in default state [ 195.871162] xhci_hcd 0000:0c:00.0: Not freeing device rings. [ 195.871165] xhci_hcd 0000:0c:00.0: // Ding dong! [ 195.871940] xhci_hcd 0000:0c:00.0: Successful setup address command [ 195.871944] xhci_hcd 0000:0c:00.0: Op regs DCBAA ptr = 0x000000fffff000 [ 195.871947] xhci_hcd 0000:0c:00.0: Slot ID 5 dcbaa entry @0000000014c537d8 = 0x000000fff58000 [ 195.871949] xhci_hcd 0000:0c:00.0: Output Context DMA address = 0xfff58000 [ 195.871951] xhci_hcd 0000:0c:00.0: Internal device address = 5 [ 195.918200] xhci_hcd 0000:0c:00.0: Waiting for status stage event [ 195.920204] usb 1-3: default language 0x0409 [ 195.923197] xhci_hcd 0000:0c:00.0: Waiting for status stage event [ 195.928197] xhci_hcd 0000:0c:00.0: Waiting for status stage event [ 195.933200] xhci_hcd 0000:0c:00.0: Waiting for status stage event [ 195.935211] usb 1-3: udev 6, busnum 1, minor = 5 [ 195.935215] usb 1-3: New USB device found, idVendor=0fce, idProduct=0dde, bcdDevice= 1.00 [ 195.935219] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 195.935222] usb 1-3: Product: Android [ 195.935224] usb 1-3: Manufacturer: Google [ 195.935226] usb 1-3: SerialNumber: BH905BAH9E [ 195.935427] usb 1-3: usb_probe_device [ 195.935430] usb 1-3: configuration #1 chosen from 1 choice [ 195.935439] xhci_hcd 0000:0c:00.0: add ep 0x81, slot id 5, new drop flags = 0x0, new add flags = 0x8 [ 195.935447] xhci_hcd 0000:0c:00.0: add ep 0x1, slot id 5, new drop flags = 0x0, new add flags = 0xc [ 195.935449] xhci_hcd 0000:0c:00.0: xhci_check_bandwidth called for udev 00000000f4c62038 [ 195.935452] xhci_hcd 0000:0c:00.0: // Ding dong! [ 195.938503] xhci_hcd 0000:0c:00.0: Successful Endpoint Configure command [ 195.938523] xhci_hcd 0000:0c:00.0: // Ding dong! [ 195.938614] xhci_hcd 0000:0c:00.0: Stopped on No-op or Link TRB for slot 5 ep 2 [ 195.938705] xhci_hcd 0000:0c:00.0: // Ding dong! [ 195.943603] xhci_hcd 0000:0c:00.0: // Ding dong! [ 195.943686] xhci_hcd 0000:0c:00.0: Stopped on No-op or Link TRB for slot 5 ep 1 [ 195.943764] xhci_hcd 0000:0c:00.0: // Ding dong! [ 195.951200] usb 1-3: adding 1-3:1.0 (config #1, interface 0) [ 195.954200] xhci_hcd 0000:0c:00.0: Waiting for status stage event [ 200.327212] xhci_hcd 0000:0c:00.0: Get port status 1-5 read: 0xe63, return 0x507 [ 200.327233] xhci_hcd 0000:0c:00.0: clear USB_PORT_FEAT_SUSPEND [ 200.327236] xhci_hcd 0000:0c:00.0: PORTSC 0e63 [ 200.327239] xhci_hcd 0000:0c:00.0: Set port 1-5 link state, portsc: 0xe63, write 0x10fe1 [ 200.375216] xhci_hcd 0000:0c:00.0: Set port 1-5 link state, portsc: 0xfe3, write 0x10e01 [ 200.375236] usb 1-5: usb auto-resume [ 200.375486] xhci_hcd 0000:0c:00.0: Port change event, 1-5, id 10, portsc: 0x400e03 [ 200.375491] xhci_hcd 0000:0c:00.0: handle_port_status: starting usb1 port polling. [ 200.375507] hub 1-0:1.0: state 7 ports 12 chg 0000 evt 0020 [ 200.376723] xhci_hcd 0000:0c:00.0: underrun event on endpoint [ 200.376726] xhci_hcd 0000:0c:00.0: overrun event on endpoint [ 200.423215] xhci_hcd 0000:0c:00.0: Get port status 1-5 read: 0xe03, return 0x40503 [ 200.423230] xhci_hcd 0000:0c:00.0: clear port5 suspend/resume change, portsc: 0xe03 [ 200.443209] usb 1-5: Waited 0ms for CONNECT [ 200.443213] usb 1-5: finish resume [ 200.447237] xhci_hcd 0000:0c:00.0: Get port status 1-5 read: 0xe03, return 0x503 [ 200.447933] xhci_hcd 0000:0c:00.0: ep 0x81 - asked for 256 bytes, 248 bytes untransferred [ 200.567210] xhci_hcd 0000:0c:00.0: xhci_hub_status_data: stopping usb1 port polling [ 201.814693] xhci_hcd 0000:0c:00.0: ep 0x81 - asked for 256 bytes, 248 bytes untransferred [ 204.209316] xhci_hcd 0000:0c:00.0: // Ding dong! [ 204.209404] xhci_hcd 0000:0c:00.0: Stopped on No-op or Link TRB for slot 1 ep 20 [ 204.209565] xhci_hcd 0000:0c:00.0: Stopped on No-op or Link TRB for slot 1 ep 19 [ 204.209721] xhci_hcd 0000:0c:00.0: Stopped on No-op or Link TRB for slot 1 ep 6 [ 204.209873] xhci_hcd 0000:0c:00.0: Stopped on No-op or Link TRB for slot 1 ep 5 [ 204.210027] xhci_hcd 0000:0c:00.0: Stopped on No-op or Link TRB for slot 1 ep 4 [ 204.210187] xhci_hcd 0000:0c:00.0: Stopped on No-op or Link TRB for slot 1 ep 3 [ 204.210342] xhci_hcd 0000:0c:00.0: Stopped on No-op or Link TRB for slot 1 ep 2 [ 204.210503] xhci_hcd 0000:0c:00.0: Stopped on No-op or Link TRB for slot 1 ep 0 [ 204.210600] xhci_hcd 0000:0c:00.0: Set port 1-5 link state, portsc: 0xe03, write 0x10e61 [ 204.227291] usb 1-5: usb auto-suspend, wakeup 0 I then did the same with kernel 63a1f8454962 (the first bad one): [ 196.399094] xhci_hcd 0000:0c:00.0: ep 0x82 - asked for 32 bytes, 26 bytes untransferred [ 197.103104] xhci_hcd 0000:0c:00.0: ep 0x82 - asked for 32 bytes, 26 bytes untransferred [ 197.881108] xhci_hcd 0000:0c:00.0: ep 0x82 - asked for 32 bytes, 26 bytes untransferred [ 198.021105] xhci_hcd 0000:0c:00.0: ep 0x82 - asked for 32 bytes, 26 bytes untransferred [ 225.430197] xhci_hcd 0000:0c:00.0: Port change event, 1-3, id 8, portsc: 0x202e1 [ 225.430202] xhci_hcd 0000:0c:00.0: handle_port_status: starting usb1 port polling. [ 225.430226] hub 1-0:1.0: state 7 ports 12 chg 0000 evt 0008 [ 225.430233] xhci_hcd 0000:0c:00.0: Get port status 1-3 read: 0x202e1, return 0x10101 [ 225.430244] xhci_hcd 0000:0c:00.0: clear port3 connect change, portsc: 0x2e1 [ 225.430250] usb usb1-port3: status 0101, change 0001, 12 Mb/s [ 225.430254] xhci_hcd 0000:0c:00.0: Get port status 1-3 read: 0x2e1, return 0x101 [ 225.464705] xhci_hcd 0000:0c:00.0: Get port status 1-3 read: 0x2e1, return 0x101 [ 225.500707] xhci_hcd 0000:0c:00.0: Get port status 1-3 read: 0x2e1, return 0x101 [ 225.536707] xhci_hcd 0000:0c:00.0: Get port status 1-3 read: 0x2e1, return 0x101 [ 225.572708] xhci_hcd 0000:0c:00.0: Get port status 1-3 read: 0x2e1, return 0x101 [ 225.572719] usb usb1-port3: debounce total 100ms stable 100ms status 0x101 [ 225.572724] xhci_hcd 0000:0c:00.0: // Ding dong! [ 225.572826] xhci_hcd 0000:0c:00.0: Slot 5 output ctx = 0x0x00000000fff5e000 (dma) [ 225.572838] xhci_hcd 0000:0c:00.0: Slot 5 input ctx = 0x0x00000000fff54000 (dma) [ 225.572846] xhci_hcd 0000:0c:00.0: Set slot id 5 dcbaa entry 000000003fadcb3f to 0xfff5e000 [ 225.572888] xhci_hcd 0000:0c:00.0: set port reset, actual port 1-3 status = 0x2e1 [ 225.616706] xhci_hcd 0000:0c:00.0: xhci_hub_status_data: stopping usb1 port polling [ 225.640709] xhci_hcd 0000:0c:00.0: Get port status 1-3 read: 0x331, return 0x111 [ 225.640720] usb usb1-port3: not reset yet, waiting 60ms [ 225.647922] xhci_hcd 0000:0c:00.0: Port change event, 1-3, id 8, portsc: 0x200e03 [ 225.647927] xhci_hcd 0000:0c:00.0: handle_port_status: starting usb1 port polling. [ 225.708710] xhci_hcd 0000:0c:00.0: Get port status 1-3 read: 0x200e03, return 0x100503 [ 225.708723] xhci_hcd 0000:0c:00.0: clear port3 reset change, portsc: 0xe03 [ 225.768711] usb 1-3: new high-speed USB device number 6 using xhci_hcd [ 225.768716] xhci_hcd 0000:0c:00.0: Slot ID 5: HW portnum 7, hcd portnum 2 [ 225.768718] xhci_hcd 0000:0c:00.0: udev->tt = 0000000000000000 [ 225.768720] xhci_hcd 0000:0c:00.0: udev->ttport = 0x0 [ 225.768722] xhci_hcd 0000:0c:00.0: // Ding dong! [ 225.769231] xhci_hcd 0000:0c:00.0: Successful setup context command [ 225.769236] xhci_hcd 0000:0c:00.0: Op regs DCBAA ptr = 0x000000fffff000 [ 225.769239] xhci_hcd 0000:0c:00.0: Slot ID 5 dcbaa entry @000000003fadcb3f = 0x000000fff5e000 [ 225.769241] xhci_hcd 0000:0c:00.0: Output Context DMA address = 0xfff5e000 [ 225.769243] xhci_hcd 0000:0c:00.0: Internal device address = 0 [ 225.771743] xhci_hcd 0000:0c:00.0: Waiting for status stage event [ 225.773750] xhci_hcd 0000:0c:00.0: set port reset, actual port 1-3 status = 0xe03 [ 225.840714] xhci_hcd 0000:0c:00.0: Get port status 1-3 read: 0x331, return 0x111 [ 225.840726] usb usb1-port3: not reset yet, waiting 60ms [ 225.848802] xhci_hcd 0000:0c:00.0: Port change event, 1-3, id 8, portsc: 0x200e03 [ 225.848807] xhci_hcd 0000:0c:00.0: handle_port_status: starting usb1 port polling. [ 225.908732] xhci_hcd 0000:0c:00.0: Get port status 1-3 read: 0x200e03, return 0x100503 [ 225.908744] xhci_hcd 0000:0c:00.0: clear port3 reset change, portsc: 0xe03 [ 225.968714] xhci_hcd 0000:0c:00.0: Resetting device with slot ID 5 [ 225.968718] xhci_hcd 0000:0c:00.0: // Ding dong! [ 225.968757] xhci_hcd 0000:0c:00.0: Completed reset device command. [ 225.968762] xhci_hcd 0000:0c:00.0: Can't reset device (slot ID 5) in default state [ 225.968764] xhci_hcd 0000:0c:00.0: Not freeing device rings. [ 225.968767] xhci_hcd 0000:0c:00.0: // Ding dong! [ 225.969479] xhci_hcd 0000:0c:00.0: Successful setup address command [ 225.969483] xhci_hcd 0000:0c:00.0: Op regs DCBAA ptr = 0x000000fffff000 [ 225.969485] xhci_hcd 0000:0c:00.0: Slot ID 5 dcbaa entry @000000003fadcb3f = 0x000000fff5e000 [ 225.969488] xhci_hcd 0000:0c:00.0: Output Context DMA address = 0xfff5e000 [ 225.969490] xhci_hcd 0000:0c:00.0: Internal device address = 5 [ 226.002756] xhci_hcd 0000:0c:00.0: enable port 3 USB2 hardware LPM [ 226.002765] xhci_hcd 0000:0c:00.0: Set up evaluate context for LPM MEL change. [ 226.002769] xhci_hcd 0000:0c:00.0: // Ding dong! [ 226.003125] xhci_hcd 0000:0c:00.0: Successful evaluate context command [ 226.015745] xhci_hcd 0000:0c:00.0: Waiting for status stage event [ 226.017754] usb 1-3: default language 0x0409 [ 226.020737] xhci_hcd 0000:0c:00.0: Waiting for status stage event [ 226.025742] xhci_hcd 0000:0c:00.0: Waiting for status stage event [ 226.030745] xhci_hcd 0000:0c:00.0: Waiting for status stage event [ 226.032754] usb 1-3: udev 6, busnum 1, minor = 5 [ 226.032759] usb 1-3: New USB device found, idVendor=0fce, idProduct=0dde, bcdDevice= 1.00 [ 226.032761] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 226.032763] usb 1-3: Product: Android [ 226.032765] usb 1-3: Manufacturer: Google [ 226.032766] usb 1-3: SerialNumber: BH905BAH9E [ 226.032972] usb 1-3: usb_probe_device [ 226.032974] usb 1-3: configuration #1 chosen from 1 choice [ 226.032983] xhci_hcd 0000:0c:00.0: add ep 0x81, slot id 5, new drop flags = 0x0, new add flags = 0x8 [ 226.032990] xhci_hcd 0000:0c:00.0: add ep 0x1, slot id 5, new drop flags = 0x0, new add flags = 0xc [ 226.032993] xhci_hcd 0000:0c:00.0: xhci_check_bandwidth called for udev 00000000f07964e8 [ 226.032996] xhci_hcd 0000:0c:00.0: // Ding dong! [ 226.036041] xhci_hcd 0000:0c:00.0: Successful Endpoint Configure command [ 226.036058] xhci_hcd 0000:0c:00.0: // Ding dong! [ 226.036142] xhci_hcd 0000:0c:00.0: Stopped on No-op or Link TRB for slot 5 ep 2 [ 226.036227] xhci_hcd 0000:0c:00.0: // Ding dong! [ 226.041132] xhci_hcd 0000:0c:00.0: // Ding dong! [ 226.041222] xhci_hcd 0000:0c:00.0: Stopped on No-op or Link TRB for slot 5 ep 1 [ 226.041311] xhci_hcd 0000:0c:00.0: // Ding dong! [ 226.048744] usb 1-3: adding 1-3:1.0 (config #1, interface 0) [ 226.051745] xhci_hcd 0000:0c:00.0: Waiting for status stage event [ 226.112724] xhci_hcd 0000:0c:00.0: xhci_hub_status_data: stopping usb1 port polling [ 229.214292] xhci_hcd 0000:0c:00.0: ep 0x82 - asked for 32 bytes, 26 bytes untransferred [ 229.358289] xhci_hcd 0000:0c:00.0: ep 0x82 - asked for 32 bytes, 26 bytes untransferred [ 234.642446] xhci_hcd 0000:0c:00.0: Get port status 1-5 read: 0xe63, return 0x507 [ 234.642466] xhci_hcd 0000:0c:00.0: clear USB_PORT_FEAT_SUSPEND [ 234.642468] xhci_hcd 0000:0c:00.0: PORTSC 0e63 [ 234.642470] xhci_hcd 0000:0c:00.0: Set port 1-5 link state, portsc: 0xe63, write 0x10fe1 [ 234.688896] xhci_hcd 0000:0c:00.0: Set port 1-5 link state, portsc: 0xfe3, write 0x10e01 [ 234.688933] usb 1-5: usb auto-resume [ 234.689161] xhci_hcd 0000:0c:00.0: Port change event, 1-5, id 10, portsc: 0x400e03 [ 234.689166] xhci_hcd 0000:0c:00.0: handle_port_status: starting usb1 port polling. [ 234.689189] hub 1-0:1.0: state 7 ports 12 chg 0000 evt 0020 [ 234.690282] xhci_hcd 0000:0c:00.0: underrun event on endpoint [ 234.690285] xhci_hcd 0000:0c:00.0: overrun event on endpoint [ 234.736898] xhci_hcd 0000:0c:00.0: Get port status 1-5 read: 0xe03, return 0x40503 [ 234.736914] xhci_hcd 0000:0c:00.0: clear port5 suspend/resume change, portsc: 0xe03 [ 234.756897] usb 1-5: Waited 0ms for CONNECT [ 234.756901] usb 1-5: finish resume [ 234.761806] xhci_hcd 0000:0c:00.0: Get port status 1-5 read: 0xe03, return 0x503 [ 234.762810] xhci_hcd 0000:0c:00.0: ep 0x81 - asked for 256 bytes, 248 bytes untransferred [ 234.792899] xhci_hcd 0000:0c:00.0: xhci_hub_status_data: stopping usb1 port polling [ 236.353577] xhci_hcd 0000:0c:00.0: ep 0x81 - asked for 256 bytes, 237 bytes untransferred [ 238.852825] xhci_hcd 0000:0c:00.0: // Ding dong! [ 238.852917] xhci_hcd 0000:0c:00.0: Stopped on No-op or Link TRB for slot 1 ep 20 [ 238.853081] xhci_hcd 0000:0c:00.0: Stopped on No-op or Link TRB for slot 1 ep 19 [ 238.853229] xhci_hcd 0000:0c:00.0: Stopped on No-op or Link TRB for slot 1 ep 6 [ 238.853388] xhci_hcd 0000:0c:00.0: Stopped on No-op or Link TRB for slot 1 ep 5 [ 238.853541] xhci_hcd 0000:0c:00.0: Stopped on No-op or Link TRB for slot 1 ep 4 [ 238.853698] xhci_hcd 0000:0c:00.0: Stopped on No-op or Link TRB for slot 1 ep 3 [ 238.853854] xhci_hcd 0000:0c:00.0: Stopped on No-op or Link TRB for slot 1 ep 2 [ 238.854015] xhci_hcd 0000:0c:00.0: Stopped on No-op or Link TRB for slot 1 ep 0 [ 238.854113] xhci_hcd 0000:0c:00.0: Set port 1-5 link state, portsc: 0xe03, write 0x10e61 [ 238.872988] usb 1-5: usb auto-suspend, wakeup 0 [ 240.855359] xhci_hcd 0000:0c:00.0: ep 0x82 - asked for 32 bytes, 26 bytes untransferred [ 241.009359] xhci_hcd 0000:0c:00.0: ep 0x82 - asked for 32 bytes, 26 bytes untransferred ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [REGRESSION] usb: xhci port capability storage change broke fastboot android bootloader utility 2025-01-05 23:42 ` Forest @ 2025-01-07 12:29 ` Mathias Nyman 2025-01-11 0:00 ` Forest 0 siblings, 1 reply; 13+ messages in thread From: Mathias Nyman @ 2025-01-07 12:29 UTC (permalink / raw) To: Forest; +Cc: linux-usb, regressions, stable On 6.1.2025 1.42, Forest wrote: > On Thu, 2 Jan 2025 16:13:34 +0200, Mathias Nyman wrote: > >> It's not clear to me why this patch would cause regression. >> >> Could you enable xhci and usb core dynamic debug before connecting the >> device, and then share dmesg after the issue is triggered. >> >> dmesg of a working case would also be good to have for comparison. > > I booted kernel 9b780c845fb6 (the last good one), logged in to my desktop, > waited a couple of minutes to let things settle, and then ran 'fastboot > getvar kernel' twice with the android device in bootloader mode. > Here's the dmesg output: Thanks for the logs. Looks like we enable USB2 Link Power Management (LPM) in the failing case > > [ 226.002756] xhci_hcd 0000:0c:00.0: enable port 3 USB2 hardware LPM > [ 226.002765] xhci_hcd 0000:0c:00.0: Set up evaluate context for LPM MEL change. Does disabling USB2 hardware LPM for the device make it work again? Adding USB_QUIRK_NO_LPM quirk "k" for your device vid:pid should do it. i.e. add "usbcore.quirks=0fce:0dde:k" parameter to your kernel cmdline. Or alternatively disable usb2 lpm during runtime via sysfs (after enumeration, assuming device is "1-3" as in the log): # echo 0 > /sys/bus/usb/devices/1-3/power/usb2_hardware_lpm If those work then we need to figure out if we incorrectly try to enable USB2 hardware LPM, or if device just can't handle LPM even if it claims to be LPM capable. Host hardware LPM capability can be checked from xhci reg-ext-protocol fields from debugfs. cat /sys/kernel/debug/usb/xhci/0000:0c:00.0/reg-ext-protocol:* (please print content of _all_ reg_ext_protocol* files, LPM capability is bit 19 of EXTCAP_PORTINFO) Device USB2 LPM capability can be checked from the devices BOS descriptor, visible (as sudo/root) with lsusb -v -d 0fce:0dde Thanks Mathias ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [REGRESSION] usb: xhci port capability storage change broke fastboot android bootloader utility 2025-01-07 12:29 ` Mathias Nyman @ 2025-01-11 0:00 ` Forest 2025-01-13 15:05 ` Mathias Nyman 0 siblings, 1 reply; 13+ messages in thread From: Forest @ 2025-01-11 0:00 UTC (permalink / raw) To: Mathias Nyman; +Cc: linux-usb, regressions, stable On Tue, 7 Jan 2025 14:29:35 +0200, Mathias Nyman wrote: >Does disabling USB2 hardware LPM for the device make it work again? > >Adding USB_QUIRK_NO_LPM quirk "k" for your device vid:pid should do it. >i.e. add "usbcore.quirks=0fce:0dde:k" parameter to your kernel cmdline. That fixed my test case on Debian kernel 6.12.8-amd64, which is among those that have been failing. >Or alternatively disable usb2 lpm during runtime via sysfs >(after enumeration, assuming device is "1-3" as in the log): ># echo 0 > /sys/bus/usb/devices/1-3/power/usb2_hardware_lpm That did not fix it. Maybe it's too late once the device is connected and enumerated? >If those work then we need to figure out if we incorrectly try to enable >USB2 hardware LPM, or if device just can't handle LPM even if it claims >to be LPM capable. > >Host hardware LPM capability can be checked from xhci reg-ext-protocol >fields from debugfs. >cat /sys/kernel/debug/usb/xhci/0000:0c:00.0/reg-ext-protocol:* >(please print content of _all_ reg_ext_protocol* files, LPM capability is >bit 19 of EXTCAP_PORTINFO) # cd /sys/kernel/debug/usb/xhci/0000:0c:00.0/ # grep . reg-ext-protocol:* reg-ext-protocol:00:EXTCAP_REVISION = 0x03200802 reg-ext-protocol:00:EXTCAP_NAME = 0x20425355 reg-ext-protocol:00:EXTCAP_PORTINFO = 0x40000101 reg-ext-protocol:00:EXTCAP_PORTTYPE = 0x00000000 reg-ext-protocol:00:EXTCAP_MANTISSA1 = 0x00050134 reg-ext-protocol:00:EXTCAP_MANTISSA2 = 0x000a4135 reg-ext-protocol:00:EXTCAP_MANTISSA3 = 0x000a4136 reg-ext-protocol:00:EXTCAP_MANTISSA4 = 0x00144137 reg-ext-protocol:01:EXTCAP_REVISION = 0x03100802 reg-ext-protocol:01:EXTCAP_NAME = 0x20425355 reg-ext-protocol:01:EXTCAP_PORTINFO = 0x20000402 reg-ext-protocol:01:EXTCAP_PORTTYPE = 0x00000000 reg-ext-protocol:01:EXTCAP_MANTISSA1 = 0x00050134 reg-ext-protocol:01:EXTCAP_MANTISSA2 = 0x000a4135 reg-ext-protocol:02:EXTCAP_REVISION = 0x02000802 reg-ext-protocol:02:EXTCAP_NAME = 0x20425355 reg-ext-protocol:02:EXTCAP_PORTINFO = 0x00190c06 reg-ext-protocol:02:EXTCAP_PORTTYPE = 0x00000000 # grep EXTCAP_PORTINFO reg-ext-protocol:* reg-ext-protocol:00:EXTCAP_PORTINFO = 0x40000101 reg-ext-protocol:01:EXTCAP_PORTINFO = 0x20000402 reg-ext-protocol:02:EXTCAP_PORTINFO = 0x00190c06 >>> bool(0x40000101 & 1 << 19) False >>> bool(0x20000402 & 1 << 19) False >>> bool(0x00190c06 & 1 << 19) True >Device USB2 LPM capability can be checked from the devices BOS descriptor, >visible (as sudo/root) with lsusb -v -d 0fce:0dde # lsusb -v -d 0fce:0dde |grep -B 5 LPM USB 2.0 Extension Device Capability: bLength 7 bDescriptorType 16 bDevCapabilityType 2 bmAttributes 0x00000006 BESL Link Power Management (LPM) Supported I think that says the device claims support for LPM, yes? Maybe relevant: The failing test and lsusb were both run with the device in fastboot mode, which allows talking to the bootloader. Is it possible that a device would support LPM in normal operating modes, but not in bootloader mode, yet present the same capabilities data structure in both modes? ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [REGRESSION] usb: xhci port capability storage change broke fastboot android bootloader utility 2025-01-11 0:00 ` Forest @ 2025-01-13 15:05 ` Mathias Nyman 2025-01-15 1:38 ` Forest 2025-01-24 19:44 ` Forest 0 siblings, 2 replies; 13+ messages in thread From: Mathias Nyman @ 2025-01-13 15:05 UTC (permalink / raw) To: Forest; +Cc: linux-usb, regressions, stable On 11.1.2025 2.00, Forest wrote: > On Tue, 7 Jan 2025 14:29:35 +0200, Mathias Nyman wrote: > >> Does disabling USB2 hardware LPM for the device make it work again? >> >> Adding USB_QUIRK_NO_LPM quirk "k" for your device vid:pid should do it. >> i.e. add "usbcore.quirks=0fce:0dde:k" parameter to your kernel cmdline. > > That fixed my test case on Debian kernel 6.12.8-amd64, which is among those > that have been failing. > > # grep EXTCAP_PORTINFO reg-ext-protocol:* > reg-ext-protocol:00:EXTCAP_PORTINFO = 0x40000101 > reg-ext-protocol:01:EXTCAP_PORTINFO = 0x20000402 > reg-ext-protocol:02:EXTCAP_PORTINFO = 0x00190c06 > >>>> bool(0x40000101 & 1 << 19) > False >>>> bool(0x20000402 & 1 << 19) > False >>>> bool(0x00190c06 & 1 << 19) > True > >> Device USB2 LPM capability can be checked from the devices BOS descriptor, >> visible (as sudo/root) with lsusb -v -d 0fce:0dde > > # lsusb -v -d 0fce:0dde |grep -B 5 LPM > USB 2.0 Extension Device Capability: > bLength 7 > bDescriptorType 16 > bDevCapabilityType 2 > bmAttributes 0x00000006 > BESL Link Power Management (LPM) Supported > > I think that says the device claims support for LPM, yes? Yes. Looks like both the device and host support USB2 LPM I think I see what is going on. Before commit 63a1f8454962a64746a59441687 the xhci driver apparently failed to detect xHC USB2 LPM support if USB 3 ports were listed before USB 2 ports in the "supported protocol capabilities. Now that we correctly detect LPM support and enable it, it turns out the device does not work well with USB 2 LPM enabled. I'd recommend a patch that permanently adds USB_QUIRK_NO_LPM for this device. Let me know if you want to submit it yourself, otherwise I can do it. Thanks Mathias Additional debugging details: We incorrectly compared usb device port numbers with xHC hardware port numbers when checking for USB2 port capabilities. xHC hardware has one long array of ports, including all USB 2 and USB 3 ports. In your case host lists three sets of supported protocol capabilities: One USB 3.2 port as the fist port at offset 1: reg-ext-protocol:00:EXTCAP_REVISION = 0x03200802 reg-ext-protocol:00:EXTCAP_PORTINFO = 0x40000101 Four USB 3.1 ports starting at offset 2 reg-ext-protocol:01:EXTCAP_REVISION = 0x03100802 reg-ext-protocol:01:EXTCAP_PORTINFO = 0x20000402 Ten USB 2.0 ports stating at offset 6, supporting LPM reg-ext-protocol:02:EXTCAP_REVISION = 0x02000802 reg-ext-protocol:02:EXTCAP_PORTINFO = 0x00190c06 Most xHC hosts used to list their USB 2.0 ports first, meaning there was no offset difference between usb device port number and xHC port number for USB 2.0 ports. Usb device port numbers start from 1 on that hub, in your case it was "3" xhci driver then checked that usb device with port number "3" does not match the LPM supported USB 2 port range from 6 to 16 (10 LPM capabale USB 2 ports starting at offset 6). -Mathias ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [REGRESSION] usb: xhci port capability storage change broke fastboot android bootloader utility 2025-01-13 15:05 ` Mathias Nyman @ 2025-01-15 1:38 ` Forest 2025-01-15 7:33 ` Greg KH 2025-01-24 19:44 ` Forest 1 sibling, 1 reply; 13+ messages in thread From: Forest @ 2025-01-15 1:38 UTC (permalink / raw) To: Mathias Nyman; +Cc: linux-usb, regressions, stable On Mon, 13 Jan 2025 17:05:09 +0200, Mathias Nyman wrote: >I'd recommend a patch that permanently adds USB_QUIRK_NO_LPM for this device. >Let me know if you want to submit it yourself, otherwise I can do it. Thank you. I have prepared a patch against 6.13-rc7. This regression also affects the stable branch, but I don't know the patch policy for stable. To which lists should I send the patch? ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [REGRESSION] usb: xhci port capability storage change broke fastboot android bootloader utility 2025-01-15 1:38 ` Forest @ 2025-01-15 7:33 ` Greg KH 0 siblings, 0 replies; 13+ messages in thread From: Greg KH @ 2025-01-15 7:33 UTC (permalink / raw) To: Forest; +Cc: Mathias Nyman, linux-usb, regressions, stable On Tue, Jan 14, 2025 at 05:38:54PM -0800, Forest wrote: > On Mon, 13 Jan 2025 17:05:09 +0200, Mathias Nyman wrote: > > >I'd recommend a patch that permanently adds USB_QUIRK_NO_LPM for this device. > >Let me know if you want to submit it yourself, otherwise I can do it. > > Thank you. > > I have prepared a patch against 6.13-rc7. This regression also affects the > stable branch, but I don't know the patch policy for stable. To which lists > should I send the patch? Please read: https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html for how to do this properly. (hint, get it into Linus's tree first before worrying about stable backports.) thanks, greg k-h ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [REGRESSION] usb: xhci port capability storage change broke fastboot android bootloader utility 2025-01-13 15:05 ` Mathias Nyman 2025-01-15 1:38 ` Forest @ 2025-01-24 19:44 ` Forest 2025-01-29 11:01 ` Mathias Nyman 1 sibling, 1 reply; 13+ messages in thread From: Forest @ 2025-01-24 19:44 UTC (permalink / raw) To: Mathias Nyman; +Cc: linux-usb, regressions, stable On Mon, 13 Jan 2025 17:05:09 +0200, Mathias Nyman wrote: >I'd recommend a patch that permanently adds USB_QUIRK_NO_LPM for this device. >Let me know if you want to submit it yourself, otherwise I can do it. It looks like I can't contribute a patch after all, due to an issue with my Signed-off-by signature. So, can you take care of the quirk patch for this device? Thank you. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [REGRESSION] usb: xhci port capability storage change broke fastboot android bootloader utility 2025-01-24 19:44 ` Forest @ 2025-01-29 11:01 ` Mathias Nyman 2025-02-13 20:24 ` Salvatore Bonaccorso 0 siblings, 1 reply; 13+ messages in thread From: Mathias Nyman @ 2025-01-29 11:01 UTC (permalink / raw) To: Forest; +Cc: linux-usb, regressions, stable On 24.1.2025 21.44, Forest wrote: > On Mon, 13 Jan 2025 17:05:09 +0200, Mathias Nyman wrote: > >> I'd recommend a patch that permanently adds USB_QUIRK_NO_LPM for this device. >> Let me know if you want to submit it yourself, otherwise I can do it. > > It looks like I can't contribute a patch after all, due to an issue with my > Signed-off-by signature. > > So, can you take care of the quirk patch for this device? > > Thank you. Sure, I'll send it after rc1 is out next week Thanks Mathias ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [REGRESSION] usb: xhci port capability storage change broke fastboot android bootloader utility 2025-01-29 11:01 ` Mathias Nyman @ 2025-02-13 20:24 ` Salvatore Bonaccorso 2025-02-14 12:29 ` Mathias Nyman 0 siblings, 1 reply; 13+ messages in thread From: Salvatore Bonaccorso @ 2025-02-13 20:24 UTC (permalink / raw) To: Mathias Nyman; +Cc: Forest, linux-usb, regressions, stable Hi Mathias, On Wed, Jan 29, 2025 at 01:01:58PM +0200, Mathias Nyman wrote: > On 24.1.2025 21.44, Forest wrote: > > On Mon, 13 Jan 2025 17:05:09 +0200, Mathias Nyman wrote: > > > > > I'd recommend a patch that permanently adds USB_QUIRK_NO_LPM for this device. > > > Let me know if you want to submit it yourself, otherwise I can do it. > > > > It looks like I can't contribute a patch after all, due to an issue with my > > Signed-off-by signature. > > > > So, can you take care of the quirk patch for this device? > > > > Thank you. > > Sure, I'll send it after rc1 is out next week Not something superurgent, but wanted to ask is that still on your radaar? I stumpled over it while looking at the current open bugs reported in Debian, reminding me of https://bugs.debian.org/1091517 Thanks for your work! Regards, Salvatore ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [REGRESSION] usb: xhci port capability storage change broke fastboot android bootloader utility 2025-02-13 20:24 ` Salvatore Bonaccorso @ 2025-02-14 12:29 ` Mathias Nyman 2025-02-14 15:55 ` Salvatore Bonaccorso 0 siblings, 1 reply; 13+ messages in thread From: Mathias Nyman @ 2025-02-14 12:29 UTC (permalink / raw) To: Salvatore Bonaccorso; +Cc: Forest, linux-usb, regressions, stable On 13.2.2025 22.24, Salvatore Bonaccorso wrote: > Hi Mathias, > > On Wed, Jan 29, 2025 at 01:01:58PM +0200, Mathias Nyman wrote: >> On 24.1.2025 21.44, Forest wrote: >>> On Mon, 13 Jan 2025 17:05:09 +0200, Mathias Nyman wrote: >>> >>>> I'd recommend a patch that permanently adds USB_QUIRK_NO_LPM for this device. >>>> Let me know if you want to submit it yourself, otherwise I can do it. >>> >>> It looks like I can't contribute a patch after all, due to an issue with my >>> Signed-off-by signature. >>> >>> So, can you take care of the quirk patch for this device? >>> >>> Thank you. >> >> Sure, I'll send it after rc1 is out next week > > Not something superurgent, but wanted to ask is that still on your > radaar? I stumpled over it while looking at the current open bugs > reported in Debian, reminding me of https://bugs.debian.org/1091517 Yes, patch was here: https://lore.kernel.org/linux-usb/20250206151836.51742-1-mathias.nyman@linux.intel.com/ Greg applied it to his tree today: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git/commit/?h=usb-linus&id=159daf1258227f44b26b5d38f4aa8f37b8cca663 Thanks Mathias ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [REGRESSION] usb: xhci port capability storage change broke fastboot android bootloader utility 2025-02-14 12:29 ` Mathias Nyman @ 2025-02-14 15:55 ` Salvatore Bonaccorso 0 siblings, 0 replies; 13+ messages in thread From: Salvatore Bonaccorso @ 2025-02-14 15:55 UTC (permalink / raw) To: Mathias Nyman; +Cc: Forest, linux-usb, regressions, stable Hi, On Fri, Feb 14, 2025 at 02:29:29PM +0200, Mathias Nyman wrote: > On 13.2.2025 22.24, Salvatore Bonaccorso wrote: > > Hi Mathias, > > > > On Wed, Jan 29, 2025 at 01:01:58PM +0200, Mathias Nyman wrote: > > > On 24.1.2025 21.44, Forest wrote: > > > > On Mon, 13 Jan 2025 17:05:09 +0200, Mathias Nyman wrote: > > > > > > > > > I'd recommend a patch that permanently adds USB_QUIRK_NO_LPM for this device. > > > > > Let me know if you want to submit it yourself, otherwise I can do it. > > > > > > > > It looks like I can't contribute a patch after all, due to an issue with my > > > > Signed-off-by signature. > > > > > > > > So, can you take care of the quirk patch for this device? > > > > > > > > Thank you. > > > > > > Sure, I'll send it after rc1 is out next week > > > > Not something superurgent, but wanted to ask is that still on your > > radaar? I stumpled over it while looking at the current open bugs > > reported in Debian, reminding me of https://bugs.debian.org/1091517 > > Yes, patch was here: > https://lore.kernel.org/linux-usb/20250206151836.51742-1-mathias.nyman@linux.intel.com/ > > Greg applied it to his tree today: > https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git/commit/?h=usb-linus&id=159daf1258227f44b26b5d38f4aa8f37b8cca663 Thank you Matthias. Regards, Salvatore ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2025-02-14 15:55 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-12-27 21:59 [REGRESSION] usb: xhci port capability storage change broke fastboot android bootloader utility Forest 2025-01-02 14:13 ` Mathias Nyman 2025-01-05 23:42 ` Forest 2025-01-07 12:29 ` Mathias Nyman 2025-01-11 0:00 ` Forest 2025-01-13 15:05 ` Mathias Nyman 2025-01-15 1:38 ` Forest 2025-01-15 7:33 ` Greg KH 2025-01-24 19:44 ` Forest 2025-01-29 11:01 ` Mathias Nyman 2025-02-13 20:24 ` Salvatore Bonaccorso 2025-02-14 12:29 ` Mathias Nyman 2025-02-14 15:55 ` Salvatore Bonaccorso
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).