Re: Oops in UHCI when encountering "host controller process error"

From: Jeremy Fitzhardinge
Date: Tue Dec 09 2008 - 13:25:06 EST


Alan Stern wrote:
The hardware starts running right at the end of uhci_start(), in the
call to start_rh(). However according to those debugging lines you
added to uhci_alloc_qh(), the DMA pool allocations are all messed up. Those initial allocations all occur within uhci_start(), in the

for (i = 0; i < UHCI_NUM_SKELQH; ++i)

loop. It sure looks like the DMA pool memory management needs attention.


Yep, there's something very odd going on in there. By contrast, does this look OK? The allocations are fine, but I'm wondering if the skeleton QH stuff is all correct; it seems to work OK in this state.

uhci_alloc_qh: uhci=ffff88002e5de3d0 qh=ffff88002e5f4000 handle=7e212000
uhci_alloc_qh: uhci=ffff88002e5de3d0 qh=ffff88002e5f4080 handle=7e212080
uhci_alloc_qh: uhci=ffff88002e5de3d0 qh=ffff88002e5f4100 handle=7e212100
uhci_alloc_qh: uhci=ffff88002e5de3d0 qh=ffff88002e5f4180 handle=7e212180
uhci_alloc_qh: uhci=ffff88002e5de3d0 qh=ffff88002e5f4200 handle=7e212200
uhci_alloc_qh: uhci=ffff88002e5de3d0 qh=ffff88002e5f4280 handle=7e212280
uhci_alloc_qh: uhci=ffff88002e5de3d0 qh=ffff88002e5f4300 handle=7e212300
uhci_alloc_qh: uhci=ffff88002e5de3d0 qh=ffff88002e5f4380 handle=7e212380
uhci_alloc_qh: uhci=ffff88002e5de3d0 qh=ffff88002e5f4400 handle=7e212400
uhci_alloc_qh: uhci=ffff88002e5de3d0 qh=ffff88002e5f4480 handle=7e212480
uhci_alloc_qh: uhci=ffff88002e5de3d0 qh=ffff88002e5f4500 handle=7e212500
Root-hub state: reset FSBR: 0
HC status
usbcmd = 0000 Maxp32 usbstat = 0020 HCHalted usbint = 0000
usbfrnum = (0)000
flbaseadd = 7ffd5000
sof = 40
stat1 = 0080 stat2 = 0080 Most recent frame: 0 (0) Last ISO frame: 0 (0)
Periodic load table
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
Total: 0, #INT: 0, #ISO: 0
Frame List
Skeleton QHs
- skel_unlink_qh
[ffff88002e5f4000] Skel QH link (00000001) element (00000001)
queue is empty
- skel_iso_qh
[ffff88002e5f4080] Skel QH link (00000001) element (00000001)
queue is empty
- skel_int128_qh
[ffff88002e5f4100] Skel QH link (7e212482) element (00000001)
queue is empty
- skel_int64_qh
[ffff88002e5f4180] Skel QH link (7e212482) element (00000001)
queue is empty
- skel_int32_qh
[ffff88002e5f4200] Skel QH link (7e212482) element (00000001)
queue is empty
- skel_int16_qh
[ffff88002e5f4280] Skel QH link (7e212482) element (00000001)
queue is empty
- skel_int8_qh
[ffff88002e5f4300] Skel QH link (7e212482) element (00000001)
queue is empty
- skel_int4_qh
[ffff88002e5f4380] Skel QH link (7e212482) element (00000001)
queue is empty
- skel_int2_qh
[ffff88002e5f4400] Skel QH link (7e212482) element (00000001)
queue is empty
- skel_async_qh
[ffff88002e5f4480] Skel QH link (00000001) element (7e215000)
queue is empty
[ffff88002e5f3000] link (00000001) e0 Length=0 MaxLen=7ff DT0 EndPt=0 Dev=7f, PID=69(IN) (buf=00000000)
- skel_term_qh
[ffff88002e5f4500] Skel QH link (7e212502) element (7e215000)
queue is empty


Thanks,
J
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/