All of lore.kernel.org
 help / color / mirror / Atom feed
From: Herbie Robinson <Herbie.Robinson@stratus.com>
To: qemu-devel@nongnu.org
Cc: qemu-trivial@nongnu.org, lvivier@redhat.com,
	Herbie Robinson <Herbie.Robinson@stratus.com>
Subject: [Qemu-devel] [PATCH v3] SGABIOS: fix wrong video attrs for int 10h, ah==13h
Date: Fri, 10 Mar 2017 10:54:55 -0500	[thread overview]
Message-ID: <1489161295-23864-1-git-send-email-Herbie.Robinson@stratus.com> (raw)

Fix Bug #1670509: wrong video attrs for int 10h, ah==13h
The subroutine set_cursor_position is trashing %bx.
Unfortunately, %bl contains the video attribute for write_string.

The fix saves %bx in the function prolog and restores it in
the epilog. 

Signed-off-by: Herbie Robinson <Herbie.Robinson@stratus.com>
---
Removed incorrect code deletions from set_current_cursor.
Removed explanation of same from the commit message.

BTW, I didn't see any test cases for this code, but if they exist
and somebody points me at them, I should be able to generate a 
very small qcow2 file that demonstrates the problem.

 sgabios.S | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/sgabios.S b/sgabios.S
index 275d063..96c4e23 100644
--- a/sgabios.S
+++ b/sgabios.S
@@ -1728,6 +1728,7 @@ write_string_tail:
 
 set_cursor_position:
   pushw %ax
+  pushw %bx
   pushw %ds
   pushw $BDA_SEG
   popw %ds                             /* ds = 0x40 */
@@ -1738,6 +1739,7 @@ set_cursor_position:
   movw %ax, %bx                        /* bx = cursor save offset */
   movw %dx, (%bx)                      /* save new cursor value */
   popw %ds
+  popw %bx
   popw %ax
   ret
 
-- 
1.8.3.1

             reply	other threads:[~2017-03-10 15:55 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-10 15:54 Herbie Robinson [this message]
2017-03-10 19:10 ` [Qemu-devel] [PATCH v3] SGABIOS: fix wrong video attrs for int 10h, ah==13h Laurent Vivier
2017-04-23  9:03 ` Michael Tokarev
2017-04-24 12:08   ` Laurent Vivier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1489161295-23864-1-git-send-email-Herbie.Robinson@stratus.com \
    --to=herbie.robinson@stratus.com \
    --cc=lvivier@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-trivial@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.