Lines Matching refs:winch
583 struct winch {
595 struct winch *winch = container_of(work, struct winch, work);
596 um_free_irq(WINCH_IRQ, winch);
598 if (winch->pid != -1)
599 os_kill_process(winch->pid, 1);
600 if (winch->stack != 0)
601 free_stack(winch->stack, 0);
602 kfree(winch);
605 static void free_winch(struct winch *winch)
607 int fd = winch->fd;
608 winch->fd = -1;
611 list_del(&winch->list);
612 __free_winch(&winch->work);
617 struct winch *winch = data;
620 int fd = winch->fd;
629 winch->fd = -1;
630 list_del(&winch->list);
635 "support\n", winch->tty_fd);
636 INIT_WORK(&winch->work, __free_winch);
637 schedule_work(&winch->work);
643 tty = tty_port_tty_get(winch->port);
663 struct winch *winch;
665 winch = kmalloc(sizeof(*winch), GFP_KERNEL);
666 if (winch == NULL) {
671 *winch = ((struct winch) { .list = LIST_HEAD_INIT(winch->list),
679 IRQF_SHARED, "winch", winch) < 0) {
686 list_add(&winch->list, &winch_handlers);
692 kfree(winch);
703 struct winch *winch;
709 winch = list_entry(ele, struct winch, list);
710 wtty = tty_port_tty_get(winch->port);
712 free_winch(winch);
723 struct winch *winch;
728 winch = list_entry(ele, struct winch, list);
729 free_winch(winch);