[PATCH v1] usb: xhci: Check return value of wait for TRB_TRANSFER event
Marek Vasut
marex at denx.de
Wed Oct 18 04:35:22 CEST 2023
On 10/18/23 03:22, Minda Chen wrote:
>
>
> On 2023/10/17 19:20, Marek Vasut wrote:
>> On 10/17/23 08:20, Minda Chen wrote:
>>> xhci_wait_for_event() waiting TRB_TRANSFER event may return
>>> NULL. Checking the return value to avoid crash.
>>>
>>> Signed-off-by: Minda Chen <minda.chen at starfivetech.com>
>>
>> How did you trigger this error ? Is there a reproducer ? Details please ...
>
> While Scanning a lenovo usb2.0 udisk, not 100 % reproduce
Can you include Linux
lsusb -vvv
output for this device and include that information in the commit
message ? (or the U-Boot info below, that works too, just please add it
into the commit message, it is important for future reference).
> This is log.
>
> StarFive # usb reset
> resetting USB...
> Bus xhci_pci: Register 5000420 NbrPorts 5
> Starting the controller
> USB XHCI 1.00
> scanning bus xhci_pci for devices... WARN halted endpoint, queueing URB anyway.
> Unexpected XHCI event TRB, skipping... (f77141f0 00000000 13000000 02008401)
> Unhandled exception: Load access fault
> EPC: 00000000f7f563c6 RA: 00000000f7f563c6 TVAL: 000000000000000c
> EPC: 000000004024a3c6 RA: 000000004024a3c6 reloc adjusted
Where does the crash point to in code, can you disassemble the PC
pointer ? (or maybe you can use scripts/decodecode I think)
> SP: 00000000f76f9a60 GP: 00000000f76fbdd0 TP: 0000000000000001
> T0: 00000000f76fa168 T1: 00000000000000ff T2: 0000000000000016
> S0: 00000000f7712fc0 S1: 00000000f76fb100 A0: 0000000000000000
> A1: 0000000000000000 A2: 00000000f77145d0 A3: 00000000f7714590
> A4: 0000000000000000 A5: 0000000000000020 A6: 000000000000000f
> A7: 0000000000000100 S2: 0000000000000000 S3: 0000000000000000
> S4: 00000000f7717050 S5: 00000000f7717050 S6: 0000000080000383
> S7: 00000000f76f9dc0 S8: 00000000000000ff S9: 0000000000000001
> S10: 00000000f76f9ba0 S11: 0000000000010c04 T3: 0000000000000010
> T4: 0000000000000006 T5: 0000000000000080 T6: 00000000f76fa231
[...]
> 3: Mass Storage, USB Revision 2.0
> - Generic Mass Storage 31097778XB15113405
> - Class: (from Interface) Mass Storage
> - PacketSize: 64 Configurations: 1
> - Vendor: 0x17ef Product 0x38ac Version 1.0
> Configuration: 1
> - Interfaces: 1 Bus Powered 200mA
> Interface: 0
> - Alternate Setting 0, Endpoints: 2
> - Class Mass Storage, Transp. SCSI, Bulk only
> - Endpoint 1 Out Bulk MaxPacket 512
> - Endpoint 2 In Bulk MaxPacket 512
>
> StarFive # usb storage
> Device 0: Vendor: Rev: 8.07 Prod: Lenovo SX1 64G
> Type: Removable Hard Disk
> Capacity: 60000.0 MB = 58.5 GB (122880000 x 512)
[...]
More information about the U-Boot
mailing list