Browse Source

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 <benh@kernel.crashing.org>
jtag-port
Benjamin Herrenschmidt 2 years ago
parent
commit
fc4e13ae67
  1. 7
      sim_console_c.c

7
sim_console_c.c

@ -71,8 +71,11 @@ void sim_console_poll(unsigned char *__rt) @@ -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);
}

Loading…
Cancel
Save