Hello community, here is the log from the commit of package syslinux for openSUSE:Factory checked in at 2014-03-25 13:20:00 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/syslinux (Old) and /work/SRC/openSUSE:Factory/.syslinux.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "syslinux" Changes: -------- --- /work/SRC/openSUSE:Factory/syslinux/syslinux.changes 2014-03-06 19:18:17.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.syslinux.new/syslinux.changes 2014-03-25 13:20:04.000000000 +0100 @@ -1,0 +2,5 @@ +Fri Mar 21 13:10:04 CET 2014 - snw...@suse.de + +- timeout.diff: fix timeout counter to work more accurate (bnc #691211) + +------------------------------------------------------------------- New: ---- syslinux-4.04-timeout.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ syslinux.spec ++++++ --- /var/tmp/diff_new_pack.6YHYNx/_old 2014-03-25 13:20:05.000000000 +0100 +++ /var/tmp/diff_new_pack.6YHYNx/_new 2014-03-25 13:20:05.000000000 +0100 @@ -48,6 +48,7 @@ Patch11: %{name}-%{version}-localboot.diff Patch12: %{name}-%{version}-geometry.diff Patch13: %{name}-%{version}-nostrip.diff +Patch14: %{name}-%{version}-timeout.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -77,6 +78,7 @@ %patch11 -p1 %patch12 -p1 %patch13 -p0 +%patch14 -p1 %build cp %{SOURCE2} . ++++++ syslinux-4.04-timeout.diff ++++++ diff --git a/core/ui.inc b/core/ui.inc index 0a4bb56..97945c9 100644 --- a/core/ui.inc +++ b/core/ui.inc @@ -529,30 +529,36 @@ kernel_corrupt: mov si,err_notkernel ; which can be adjusted by the caller based on the corresponding ; master variables; on return they're updated. ; -; This cheats. If we say "no timeout" we actually get a timeout of -; 7.5 years. -; getchar_timeout: call vgashowcursor call reset_idle .loop: - push word [__jiffies] + push dword [__jiffies] call pollchar jnz .got_char call do_idle - pop ax - cmp ax,[__jiffies] ; Has the timer advanced? + pop eax + sub eax,[__jiffies] ; Has the timer advanced? je .loop - dec dword [ThisKbdTo] - jz .timeout - dec dword [ThisTotalTo] - jnz .loop + ; more than one tick may have passed, keep the diff in eax + neg eax + + cmp dword [ThisKbdTo],0 + jz .chk_total + sub [ThisKbdTo],eax + jbe .timeout + +.chk_total: + cmp dword [ThisTotalTo],0 + jz .loop + sub [ThisTotalTo],eax + ja .loop .timeout: ; Timeout!!!! - pop cx ; Discard return address + pop ecx ; Discard return address call vgahidecursor mov si,Ontimeout ; Copy ontimeout command mov di,command_line @@ -561,7 +567,7 @@ getchar_timeout: jmp command_done .got_char: - pop cx ; Discard + pop ecx ; Discard call getchar call vgahidecursor ret -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org