} else { tty_unregister_device(acm_tty_driver, acm->minor); acm_table[acm->minor] = NULL; usb_free_urb(acm->ctrlurb); usb_free_urb(acm->readurb); usb_free_urb(acm->writeurb); kfree(acm); } 
} else acm_tty_unregister(acm); 
static void acm_tty_close(struct tty_struct *tty, struct file *filp){	struct acm *acm = tty->driver_data;	if (!acm || !acm->used)		return;	down(&open_sem);	if (!--acm->used) {		if (acm->dev) {			acm_set_control(acm, acm->ctrlout = 0);			usb_kill_urb(acm->ctrlurb);			usb_kill_urb(acm->writeurb);			usb_kill_urb(acm->readurb);		} else {			tty_unregister_device(acm_tty_driver, acm->minor);			acm_table[acm->minor] = NULL;			usb_free_urb(acm->ctrlurb);			usb_free_urb(acm->readurb);			usb_free_urb(acm->writeurb);			kfree(acm);		}	}	up(&open_sem);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/83ef344a7539aa55a787790bc036f0bf3466e191/cdc-acm.c/clean/drivers/usb/class/cdc-acm.c