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

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

 



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

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

  Powered by Linux