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
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel