Re: [Bugme-new] [Bug 14103] New: cdc_acm gives I/O error

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux