--- linux-2.6.10/drivers/usb/class/cdc-acm.c.orig Thu Feb 24 15:02:29 2005 +++ linux-2.6.10/drivers/usb/class/cdc-acm.c Thu Feb 24 15:02:36 2005 @@ -272,7 +272,7 @@ static int acm_tty_open(struct tty_struc down(&open_sem); - if (acm->used) { + if (acm->used++) { goto done; } @@ -296,7 +296,6 @@ static int acm_tty_open(struct tty_struc tty->low_latency = 1; done: - acm->used++; up(&open_sem); return 0; @@ -305,6 +304,7 @@ full_bailout: bail_out_and_unlink: usb_kill_urb(acm->ctrlurb); bail_out: + acm->used--; up(&open_sem); return -EIO; }