Mikulas Patocka a939aa56b3 mga_drv: fix image corruption due to memcpy reordering
The memcpy specification doesn't specify how the destination is written -
and on glibc 2.19 memcpy is doing some bytewise writes with the rep stosb
instruction. These bytewise writes confuse the hardware (because it
expects 32-bit writes) and result in image corruption.

This patch replaces memcpy with explicit writes, so that the sequential
write order and 32-bit write size is guaranteed. We use the "volatile"
attribute to make sure that compiler optimizations won't cause write
reordering. When reading the memory, we use a structure with "packed"
attribute to avoid unaligned traps on RISC machines.

Tested-by: Kevin Brace <kevinbrace@gmx.com>
Signed-off-by: Mikulas Patocka <mikulas@twibright.com>
2018-11-21 13:51:54 -08:00
2014-05-22 12:48:27 -04:00
2010-10-06 20:45:41 -07:00
2017-01-26 14:00:22 +10:00
2018-11-18 13:25:33 -08:00
2003-11-14 16:48:55 +00:00
2018-11-18 13:25:33 -08:00

xf86-video-mga - Matrox video driver for the Xorg X server

All questions regarding this software should be directed at the Xorg mailing list:

https://lists.x.org/mailman/listinfo/xorg

The master development code repository can be found at:

https://gitlab.freedesktop.org/xorg/driver/xf86-video-mga

Please submit bug reports and requests to merge patches there.

For patch submission instructions, see:

https://www.x.org/wiki/Development/Documentation/SubmittingPatches

Description
No description provided
Readme 1.6 MiB
Languages
C 98.6%
M4 0.8%
Makefile 0.6%