ether.c:rx_complete() question

"Matt Reimer" <[email protected]>
Newsgroups gmane.linux.usb.devel
Message-ID <[email protected]>
I'm getting a hang in s3c2410_udc.c's nuke() function which is due to
the same usb_request being queued back-to-back, with the result that
the request on the endpoint's queue points to itself, thus causing
nuke() to loop infinitely. (See below for a pseudo-trace for
illustration.)

In trying to figure out what the root problem is, I came across this
code in ether.c:rx_complete():

        if (req)
                rx_submit (dev, req, GFP_ATOMIC);

What is the purpose of this code? Under what circumstance would we
want to resubmit the usb_request we're completing?

TIA.

Matt


/ # ifconfig usb0 up
usb0: eth_open
usb0: eth_start
entering rx_fill
rx_fill: about to call rx_submit
  rx_submit: about to call usb_ep_queue req 0xc3dd73a8
  s3c2410_ep_queue: queueing req 0xc3dd73a0 on ep ep2-bulk 0xc037d868
  0.409 USB: s3c2410_queue: ep2 len 1536
  0.410 USB: fifo_read fifo count : 42
  done: dequeueing 0xc3dd73a0
    rx_complete: ep 0xc037d880 req 0xc3dd73a8
      rx_submit: about to call usb_ep_queue req 0xc3dd73a8
        s3c2410_ep_queue: queueing req 0xc3dd73a0 on ep ep2-bulk 0xc037d868
        0.411 USB: s3c2410_queue: ep2 len 1536
        s3c2410_ep_queue: adding req 0xc3dd73a0 to ep 0xc037d868 queue
        0.412 USB: s3c2410_queue normal end ep 0xc037d868
      rx_submit: back from usb_ep_queue req 0xc3dd73a8, retval 0
  s3c2410_ep_queue: adding req 0xc3dd73a0 to ep 0xc037d868 queue
  0.413 USB: s3c2410_queue normal end ep 0xc037d868
  rx_submit: back from usb_ep_queue req 0xc3dd73a8, retval 0
rx_fill: back from rx_submit

rx_fill: about to call rx_submit
  rx_submit: about to call usb_ep_queue req 0xc3dd73e8
    s3c2410_ep_queue: queueing req 0xc3dd73e0 on ep ep2-bulk 0xc037d868
    0.414 USB: s3c2410_queue: ep2 len 1536
    0.415 USB: s3c2410_queue normal end ep 0xc037d868
  rx_submit: back from usb_ep_queue req 0xc3dd73e8, retval 0
rx_fill: back from rx_submit
leaving rx_fill
eth_start: leaving

-------------------------------------------------------------------------
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.