Messages in this thread | | | Date | Fri, 21 Aug 2009 16:48:43 +0100 | From | Alan Cox <> | Subject | Re: 2.6.31-rc5 regression: Oops when USB Serial disconnected while in use |
| |
> Alan, related to this problem is the fact that usb_serial_driver > doesn't include a "hangup" method. I'm not sure that making > serial_hangup() call serial_do_down() is correct, but if it is then > shouldn't we call port->serial->type->open() afterwards? Otherwise the > lower driver can't know that the port is still open.
After a hangup the port isn't open (at the physical level anyway). It may be re-opened by another open() call later but the original user lost access to it and shouldn't touch the h/w post hangup completion.
> Furthermore, shouldn't we check ASYNCB_INITIALIZED in serial_close()?
Possibly - I was in the middle of debugging the newest bits when Linus annoyed me. Certainly there are issues in the current code if you get a hangup while waiting for open to complete. I fixed that in the patches I sent Greg but didn't finish debugging it.
| |