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. Regards Oliver -- commit c94f27a0d1dae0ec9c79b5a80cd7d269a7af2924 Author: Oliver Neukum <oliver@xxxxxxxxxx> Date: Tue Sep 8 14:35:18 2009 +0200 usb:cdc-acm: set flags communicating with tty layer diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c index d4e6c05..ac76af8 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,6 +610,7 @@ 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); -- 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