On Tue, Sep 08, 2009 at 02:38:53PM +0200, Oliver Neukum wrote: > Am Montag, 7. September 2009 21:59:37 schrieb Paul Martin: > > > This is extremely interesting, as it points to a general failure. > > > But I cannot see how the return value comes about. To double check > > > could you commented out those lines in cdc-acm.c and try again? > > > > > > rv = tty_port_block_til_ready(&acm->port, tty, filp); > > > if (rv < 0) > > > dbg("tty_port_block_til_ready returned %d", rv); > > > > This works. I'm on Linus 2.6.31-rc9 with the following modifiacation: > > OK, please test this patch. That works. Just to confirm, this is how git diff shows things: diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c index 2bfc41e..765264f 100644 --- a/drivers/usb/class/cdc-acm.c +++ b/drivers/usb/class/cdc-acm.c @@ -57,6 +57,7 @@ #include <linux/kernel.h> #include <linux/errno.h> #include <linux/init.h> +#include <linux/serial.h> #include <linux/slab.h> #include <linux/tty.h> #include <linux/tty_driver.h> @@ -609,7 +610,11 @@ static int acm_tty_open(struct tty_struct *tty, struct file *filp) acm->throttle = 0; tasklet_schedule(&acm->urb_task); + set_bit(ASYNCB_INITIALIZED, &acm->port.flags); rv = tty_port_block_til_ready(&acm->port, tty, filp); + if (rv < 0) + dbg("tty_port_block_til_ready returned %d", rv); + done: mutex_unlock(&acm->mutex); err_out: -- Paul Martin <pm@xxxxxxxxxx> -- 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