If tv.tv_usec is 1000000 the structure needs normalizing, too. So the right check would be: if (tv.tv_usec >= 1000000) { ... But as normalizing doesn't destroy anything even for smaller values, just do it unconditionally to simplify a bit. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx> --- scripts/kwboot.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/scripts/kwboot.c b/scripts/kwboot.c index 60e8a69d187d..1cbb456935f2 100644 --- a/scripts/kwboot.c +++ b/scripts/kwboot.c @@ -147,12 +147,11 @@ kwboot_tty_recv(int fd, void *buf, size_t len, int timeo) FD_ZERO(&rfds); FD_SET(fd, &rfds); - tv.tv_sec = 0; tv.tv_usec = timeo * 1000; - if (tv.tv_usec > 1000000) { - tv.tv_sec += tv.tv_usec / 1000000; - tv.tv_usec %= 1000000; - } + + /* normalize timeval */ + tv.tv_sec = tv.tv_usec / 1000000; + tv.tv_usec %= 1000000; do { nfds = select(fd + 1, &rfds, NULL, NULL, &tv); base-commit: f2dd8896846757829fb3033f41b89be3fc037d78 -- 2.30.2 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox