free_irq_by_irq_and_dev(WINCH_IRQ, winch); 
static void unregister_winch(struct tty_struct *tty){	struct list_head *ele;	struct winch *winch, *found = NULL;	down(&winch_handler_sem);	list_for_each(ele, &winch_handlers){		winch = list_entry(ele, struct winch, list);                if(winch->tty == tty){                        found = winch;                        break;                }        }        if(found == NULL)                goto out;        if(winch->pid != -1)                os_kill_process(winch->pid, 1);        free_irq_by_irq_and_dev(WINCH_IRQ, winch);        free_irq(WINCH_IRQ, winch);        list_del(&winch->list);        kfree(winch); out:	up(&winch_handler_sem);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/faec1e99ba9ca7371d9aee1656938373133c4b21/line.c/clean/arch/um/drivers/line.c