diff options
| author | H. Peter Anvin <hpa@zytor.com> | 2009-06-04 17:24:58 -0700 |
|---|---|---|
| committer | H. Peter Anvin <hpa@zytor.com> | 2009-06-04 17:24:58 -0700 |
| commit | 9147554cd1ab47d51fd4f50a001f05fa665ecfd0 (patch) | |
| tree | c7ecf4a6437f234617bc5dbde6f78fc111c5013f /core/diskstart.inc | |
| parent | ed6f352b62233c155abf446f57d2b9dc7a6b1e87 (diff) | |
| download | syslinux-9147554cd1ab47d51fd4f50a001f05fa665ecfd0.tar.gz | |
core: prevent buggy INT 13h from leaving IF=0syslinux-3.82-pre4
If it can happen for CD-ROM BIOSes, it can probably happen elsewhere,
too; make sure we don't leave interrupts disabled after broken INT 13h
calls.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'core/diskstart.inc')
| -rw-r--r-- | core/diskstart.inc | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/core/diskstart.inc b/core/diskstart.inc index c3881eab..53229223 100644 --- a/core/diskstart.inc +++ b/core/diskstart.inc @@ -503,6 +503,7 @@ ldlinux_ent: ; jmp 0:.next .next: + sti ; In case of broken INT 13h BIOSes ; ; Tell the user we got this far @@ -609,11 +610,16 @@ writestr_early: ret +; ; getlinsecsr: save registers, call getlinsec, restore registers +; Save/restore the flags, too, especially IF. ; -getlinsecsr: pushad +getlinsecsr: + pushfd + pushad call getlinsec popad + popfd ret ; |
