diff options
author | Michael Brown <mcb30@ipxe.org> | 2011-03-07 17:40:12 +0000 |
---|---|---|
committer | Michael Brown <mcb30@ipxe.org> | 2011-03-07 19:22:20 +0000 |
commit | 2969a8567ffd1e0fd1096199ec32b78beaf779fc (patch) | |
tree | a2aa94188d2208046d39c8e3a484ea41e6fdd89b /src/core/getkey.c | |
parent | 9e98e4b9b890ceabfc1f95224015f4748e59ea35 (diff) | |
download | ipxe-2969a8567ffd1e0fd1096199ec32b78beaf779fc.tar.gz |
[console] Avoid timer wraparound problems in getchar_timeout()
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/core/getkey.c')
-rw-r--r-- | src/core/getkey.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/core/getkey.c b/src/core/getkey.c index d93ba1e6..5710f190 100644 --- a/src/core/getkey.c +++ b/src/core/getkey.c @@ -39,9 +39,9 @@ FILE_LICENCE ( GPL2_OR_LATER ); * @ret character Character read from console */ int getchar_timeout ( unsigned long timeout ) { - unsigned long expiry = ( currticks() + timeout ); + unsigned long start = currticks(); - while ( currticks() < expiry ) { + while ( ( currticks() - start ) < timeout ) { step(); if ( iskey() ) return getchar(); |