From: Gerd Hoffmann Date: Wed, 30 May 2018 14:19:02 +0000 (+0200) Subject: cbvga_list_modes: don't list current mode twice X-Git-Tag: rel-1.12.0~18 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=0c2b3b1d95cf35d1a08c5dab6579acbb1f20e2c1;p=people%2Fandrewcoop%2Fseabios.git cbvga_list_modes: don't list current mode twice In case we've already added the framebuffer video mode to the list do not add number 0x140. Signed-off-by: Gerd Hoffmann --- diff --git a/vgasrc/cbvga.c b/vgasrc/cbvga.c index fb68620..3f16bee 100644 --- a/vgasrc/cbvga.c +++ b/vgasrc/cbvga.c @@ -104,6 +104,8 @@ struct vgamode_s *cbvga_find_mode(int mode) void cbvga_list_modes(u16 seg, u16 *dest, u16 *last) { + int seen = 0; + if (GET_GLOBAL(CBmode) != 0x3) { /* Advertise additional SVGA modes for Microsoft NTLDR graphical mode. * Microsoft NTLDR: @@ -119,9 +121,11 @@ cbvga_list_modes(u16 seg, u16 *dest, u16 *last) continue; SET_FARVAR(seg, *dest, mode); dest++; + if (GET_GLOBAL(CBmode) == mode) + seen = 1; } } - if (dest < last) { + if (dest < last && !seen) { SET_FARVAR(seg, *dest, GET_GLOBAL(CBmode)); dest++; }