Unverified Commit 9a2f2d13 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!9504 um: Add winch to winch_handlers before registering winch IRQ

parents 0526df27 55951be8
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -668,23 +668,25 @@ void register_winch_irq(int fd, int tty_fd, int pid, struct tty_port *port,
		goto cleanup;
	}

	*winch = ((struct winch) { .list  	= LIST_HEAD_INIT(winch->list),
				   .fd  	= fd,
	*winch = ((struct winch) { .fd  	= fd,
				   .tty_fd 	= tty_fd,
				   .pid  	= pid,
				   .port 	= port,
				   .stack	= stack });

	spin_lock(&winch_handler_lock);
	list_add(&winch->list, &winch_handlers);
	spin_unlock(&winch_handler_lock);

	if (um_request_irq(WINCH_IRQ, fd, IRQ_READ, winch_interrupt,
			   IRQF_SHARED, "winch", winch) < 0) {
		printk(KERN_ERR "register_winch_irq - failed to register "
		       "IRQ\n");
		goto out_free;
	}

		spin_lock(&winch_handler_lock);
	list_add(&winch->list, &winch_handlers);
		list_del(&winch->list);
		spin_unlock(&winch_handler_lock);
		goto out_free;
	}

	return;