[SeaBIOS] [PATCH] vgabios: Don't use "smsww" instruction - it confuses x86emu

Paolo Bonzini pbonzini at redhat.com
Thu Apr 9 18:39:55 CEST 2015



On 09/04/2015 18:37, Kevin O'Connor wrote:
> Commit 251e2638 introduced the "smsww" instruction to the vgabios.
> Unfortunately, it appears at least some versions of x86emu crash when
> executing that instruction (eg, FC13 installer crashes).  That
> instruction wasn't required to work around the problem fixed in
> 251e2638, so just avoid it.
> 
> Signed-off-by: Kevin O'Connor <kevin at koconnor.net>
> ---
> 
> The fix for the "skifree bug" tickled yet another old OS problem - old
> versions of x86emu don't like smsww.  :-(  The smsww wasn't strickly
> necessary, so this patch just stops using it.
> 
> ---
>  vgasrc/vgabios.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/vgasrc/vgabios.c b/vgasrc/vgabios.c
> index 7c1f0b8..f07e85b 100644
> --- a/vgasrc/vgabios.c
> +++ b/vgasrc/vgabios.c
> @@ -304,7 +304,7 @@ vga_set_mode(int mode, int flags)
>          SET_BDA(video_mode, 0xff);
>      SET_BDA_EXT(vbe_mode, mode | (flags & MF_VBEFLAGS));
>      SET_BDA_EXT(vgamode_offset, (u32)vmode_g);
> -    if (CONFIG_VGA_ALLOCATE_EXTRA_STACK && !(getcr0_vm86() & CR0_PE))
> +    if (CONFIG_VGA_ALLOCATE_EXTRA_STACK)
>          // Disable extra stack if it appears a modern OS is in use.
>          // This works around bugs in some versions of Windows (Vista
>          // and possibly later) when the stack is in the e-segment.
> 

Is it worth keeping the definition in src/x86.h?

Paolo



More information about the SeaBIOS mailing list