On Sun, 3 Dec 2006, David Relson wrote: > Hi Alan, > > Most of the patch applies fine, but there were several rejects. It > seems that end_unlink_async () has change from 2 arguments (in 2.6.17) > to 1 argument (in 2.6.19). I've made manual changes as best I can. > > However the patch does cause 1 compiler error message (from gcc 4.1.1 > (Gentoo 4.1.1-r1)): > > CC [M] drivers/usb/host/ehci-hcd.o > drivers/usb/host/ehci-hcd.c: In function 'ehci_urb_dequeue': > drivers/usb/host/ehci-hcd.c:847: error: label at end of compound > statement > make[3]: *** [drivers/usb/host/ehci-hcd.o] Error 1 > > Part of the bug 8020 patch adds the following switch statement. > > @@ -755,7 +769,19 @@ static int ehci_urb_dequeue (struct usb_ > qh = (struct ehci_qh *) urb->hcpriv; > if (!qh) > break; > - unlink_async (ehci, qh); > + switch (qh->qh_state) { > + case QH_STATE_LINKED: > + unlink_async (ehci, qh); > + break; > + case QH_STATE_UNLINK: > + case QH_STATE_UNLINK_WAIT: > + /* already started */ > + break; > + case QH_STATE_IDLE: > + WARN_ON(1); > + break; > + case QH_STATE_COMPLETING: > + } > break; > > case PIPE_INTERRUPT: > > ehci-q.c sets state QH_STATE_COMPLETING, so it seems that the case > statement _should_ do something > > It would seem that something is missing here! To satisfy gcc, I've > added a break statement, but suspect something else is needed.
It looks like the patch may be stale; it applies to a different version of the kernel from the one you are using. > I've not yet started using the patched code... > > In the wee hours of this morning, i.e. 05:02, the following messages > were logged: > > ... hub 1-0:1.0: state 7 ports 6 chg 0000 evt 0004 > ... ehci_hcd 0000:00:10.3: GetStatus port 2 status 00180b POWER sig=j > PEC CSC CONNECT > ... hub 1-0:1.0: port 2, status 0501, change 0003, 480 Mb/s > ... usb 1-2: USB disconnect, address 2 > ... usb 1-2: unregistering device > ... usb 1-2: usb_disable_device nuking all URBs > ... ehci_hcd 0000:00:10.3: shutdown urb f57d3860 pipe c0040280 > ep8in-bulk > ... usb 1-2: usb_sg_cancel, unlink --> -19 > > and the USB subsystem hung. The dmesg output appears similar to > yesterday's. Do you want it? No thanks, it sounds exactly like your previous examples. Alan Stern ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel