From: Benjamin Herrenschmidt Date: Fri, 19 Jun 2020 10:27:31 +0000 (+1000) Subject: sim_console: Fix polling to check for POLLIN X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=fc4e13ae67ef7d49480cd0095850814c0d040583;p=microwatt.git sim_console: Fix polling to check for POLLIN Under some circumstances we get POLLHUP which we incorrectly treat as having a character in the buffer. Signed-off-by: Benjamin Herrenschmidt --- diff --git a/sim_console_c.c b/sim_console_c.c index b3920c1..a2c9d55 100644 --- a/sim_console_c.c +++ b/sim_console_c.c @@ -71,8 +71,11 @@ void sim_console_poll(unsigned char *__rt) ret = poll(fdset, 1, 0); //fprintf(stderr, "poll returns %d\n", ret); - if (ret == 1) - val = 1; + if (ret == 1) { + if (fdset[0].revents & POLLIN) + val = 1; +// fprintf(stderr, "poll revents: 0x%x\n", fdset[0].revents); + } to_std_logic_vector(val, __rt, 64); }