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

Reply via email to