From 1b949e975922b03e5366011a646c3a41b298dc51 Mon Sep 17 00:00:00 2001 From: Earl Ou Date: Wed, 1 Feb 2023 21:55:05 -0800 Subject: [PATCH] dev: terminal: run pollevent in terminal eventq Change-Id: Idefda0ca1cd71d3e790d470458fa1cd370393c4a Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/67532 Reviewed-by: Gabe Black Maintainer: Gabe Black Tested-by: kokoro --- src/dev/serial/terminal.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/dev/serial/terminal.cc b/src/dev/serial/terminal.cc index 52dbb9ede6..d4108a372d 100644 --- a/src/dev/serial/terminal.cc +++ b/src/dev/serial/terminal.cc @@ -87,6 +87,10 @@ Terminal::ListenEvent::ListenEvent(Terminal *t, int fd, int e) void Terminal::ListenEvent::process(int revent) { + // As a consequence of being called from the PollQueue, we might + // have been called from a different thread. Migrate to "our" + // thread. + EventQueue::ScopedMigration migrate(term->eventQueue()); term->accept(); }