Am Donnerstag, 25. Juni 2009 00:51:40 schrieb Alan Cox: > A failing open calls the close method anyway (braindead tty layer > prehistory). That causes a set of other bugs instead which Luca just > posted fixes for 8( Does this mean the rest of the cleanup done in serial_open() is actually wrong and needs to be done in close? This would mean we'd have to record any progress made in opening to tell where an error happend and we bailed out. Do we have defined semantics for the subdrivers? This would indicate that we should have to filter some calls to close to _not_ call down if the failed call to open did not get as far as calling into the subdriver. Regards Oliver bailout_interface_put: usb_autopm_put_interface(serial->interface); bailout_module_put: mutex_unlock(&serial->disc_mutex); module_put(serial->type->driver.owner); bailout_mutex_unlock: port->port.count = 0; tty->driver_data = NULL; tty_port_tty_set(&port->port, NULL); mutex_unlock(&port->mutex); bailout_port_put: put_device(&port->dev); bailout_serial_put: usb_serial_put(serial); return retval; } -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html