On Fri, May 19, 2000, Al Borchers <[EMAIL PROTECTED]> wrote:
> Georg Acher wrote:
>
> > From the logs, it look like you are using isochronous transfers and bulk
> > messages for communication, is this right? Can you give me some
> > source code of your driver to show the urbs submitted?
>
> We are using only bulk transfers. I was puzzled by the isochronous calls
> on the stack. Could the stack be corrupted or the code have followed a
> corrupted function pointer?
>
> I have attached the driver, digi_acceleport.c; it fits in with Greg's
> usb serial driver and an earlier version is already in the usb sources
> in drivers/usb/serial. Let me know if you see any problems in the
> way we are doing things there.
Looking at the driver, why do you only use spin_lock? It's not
safe for interrupts.
This may be causing the deadlocks you are seeing.
Also, you may want to add this to the top of your source file:
#define static
so the object file gets built with all of the symbols. Try that in the
HC driver as well (I think usb-uhci has something similar).
Then we can find out which function EIP is pointing to in the traces you
sent out.
Some side notes:
Wrapping the entire source in:
#ifdef CONFIG_USB_SERIAL_DIGI_ACCELEPORT
....
#endif
shouldn't be needed if the Makefile's are setup correctly.
You should also check the return value from copy_from_user since it may
fault. Look at some of the other drivers for some examples.
JE
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]