diff options
author | jkim <jkim@FreeBSD.org> | 2010-03-24 15:40:18 +0000 |
---|---|---|
committer | jkim <jkim@FreeBSD.org> | 2010-03-24 15:40:18 +0000 |
commit | 5f4a0e75c2e87a86f1198cb1e64bf36e0bc4c320 (patch) | |
tree | 12ae2d3ee5e1f4a451ee27507c40ee11ced25015 | |
parent | 0d9a14548aaf115ee268ccc6039bed619931006a (diff) | |
download | FreeBSD-src-5f4a0e75c2e87a86f1198cb1e64bf36e0bc4c320.zip FreeBSD-src-5f4a0e75c2e87a86f1198cb1e64bf36e0bc4c320.tar.gz |
Align memory access of 24-bit pixel renderer to word boundary.
-rw-r--r-- | sys/dev/syscons/scvgarndr.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/dev/syscons/scvgarndr.c b/sys/dev/syscons/scvgarndr.c index 583e51a..dbee6f2 100644 --- a/sys/dev/syscons/scvgarndr.c +++ b/sys/dev/syscons/scvgarndr.c @@ -184,8 +184,13 @@ static u_short mouse_or_mask[16] = { writel(pos, vga_palette32[color]); \ break; \ case 24: \ - writew(pos, vga_palette32[color]); \ - writeb(pos + 2, vga_palette32[color] >> 16); \ + if (((pos) & 1) == 0) { \ + writew(pos, vga_palette32[color]); \ + writeb(pos + 2, vga_palette32[color] >> 16);\ + } else { \ + writeb(pos, vga_palette32[color]); \ + writew(pos + 1, vga_palette32[color] >> 8);\ + } \ break; \ case 16: \ if (scp->sc->adp->va_info.vi_pixel_fsizes[1] == 5)\ |