um: Fix uml_mconsole stop/go

commit 1a3a6a2a035bb6c3a7ef4c788d8fd69a7b2d6284 upstream.

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

Fixes: ff6a17989c ("Epoll based IRQ controller")
Signed-off-by: Anton Ivanov <anton.ivanov@cambridgegreys.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Anton Ivanov
2022-02-22 12:44:10 +00:00
committed by Greg Kroah-Hartman
parent c0a6a54738
commit 272c74323d

View File

@@ -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)
} }
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);