[9fans] usb ohci question

2011-02-22 Thread rod
I'm struggling to understand the ins and outs of the usb ohci driver (usbohci.c) and have a question (well, several). If one writes to an endpoint, then epio gets called. This in turn does ilock(ctrl) which disables interrupts on my single-processor machine. Then epgettd is called several times

Re: [9fans] usb ohci question

2011-02-22 Thread Francisco J Ballesteros
I'll look again (just did). But I think you found a bug. On Tue, Feb 22, 2011 at 4:10 PM, r...@hemiola.co.uk wrote: I'm struggling to understand the ins and outs of the usb ohci driver (usbohci.c) and have a question (well, several). If one writes to an endpoint, then epio gets called. This

Re: [9fans] usb ohci question

2011-02-22 Thread Philippe Anel
Hello, A 'page-in' occurs on page fault exception, which cannot be masked. Phil; Le 22/02/2011 16:10, r...@hemiola.co.uk a écrit : I'm struggling to understand the ins and outs of the usb ohci driver (usbohci.c) and have a question (well, several). If one writes to an endpoint, then epio

Re: [9fans] usb ohci question

2011-02-22 Thread Philippe Anel
Oh, sorry, I forgot that the page-in operation might require an interrupt from the disk or network controller in order to reload the page. Phil; Le 22/02/2011 16:31, Philippe Anel a écrit : Hello, A 'page-in' occurs on page fault exception, which cannot be masked. Phil; Le 22/02/2011

Re: [9fans] usb ohci question

2011-02-22 Thread rod
But I think you found a bug. Ok, so maybe the first ilock/iunlock pair isn't needed? The controller can't see the task descriptors that have been chained on to the endpoint until the tail element of the endpoint descriptor is set, so any potential interrupts during the sequence won't affect

Re: [9fans] usb ohci question

2011-02-22 Thread Francisco J Ballesteros
In general, there are more ilocks than needed, out of paranoia. I don't have the code here now, but you might be right. thanks On Tue, Feb 22, 2011 at 5:42 PM, r...@hemiola.co.uk wrote: But I think you found a bug. Ok, so maybe the first ilock/iunlock pair isn't needed? The controller can't