提交 79280b75 编写于 作者: A Anton Ivanov 提交者: Zheng Zengkai

um: Fix uml_mconsole stop/go

stable inclusion
from stable-v5.10.110
commit 272c74323dcc5b65e6e20f89c9283b3696ed36a7
bugzilla: https://gitee.com/openeuler/kernel/issues/I574AL

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=272c74323dcc5b65e6e20f89c9283b3696ed36a7

--------------------------------

commit 1a3a6a2a upstream.

Moving to an EPOLL based IRQ controller broke uml_mconsole stop/go
commands. This fixes it and restores stop/go functionality.

Fixes: ff6a1798 ("Epoll based IRQ controller")
Signed-off-by: NAnton Ivanov <anton.ivanov@cambridgegreys.com>
Signed-off-by: NRichard Weinberger <richard@nod.at>
Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: NYu Liao <liaoyu15@huawei.com>
Reviewed-by: NWei Li <liwei391@huawei.com>
Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
上级 e5d2a20d
...@@ -223,7 +223,7 @@ void mconsole_go(struct mc_request *req) ...@@ -223,7 +223,7 @@ void mconsole_go(struct mc_request *req)
void mconsole_stop(struct mc_request *req) void mconsole_stop(struct mc_request *req)
{ {
deactivate_fd(req->originating_fd, MCONSOLE_IRQ); block_signals();
os_set_fd_block(req->originating_fd, 1); os_set_fd_block(req->originating_fd, 1);
mconsole_reply(req, "stopped", 0, 0); mconsole_reply(req, "stopped", 0, 0);
for (;;) { for (;;) {
...@@ -246,6 +246,7 @@ void mconsole_stop(struct mc_request *req) ...@@ -246,6 +246,7 @@ void mconsole_stop(struct mc_request *req)
} }
os_set_fd_block(req->originating_fd, 0); os_set_fd_block(req->originating_fd, 0);
mconsole_reply(req, "", 0, 0); mconsole_reply(req, "", 0, 0);
unblock_signals();
} }
static DEFINE_SPINLOCK(mc_devices_lock); static DEFINE_SPINLOCK(mc_devices_lock);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册