- Issued:
- 2010-03-30
- Updated:
- 2010-03-30
RHBA-2010:0188 - Bug Fix Advisory
Synopsis
xorg-x11-drv-qxl bug fix update
Type/Severity
Bug Fix Advisory
Red Hat Insights patch analysis
Identify and remediate systems affected by this advisory.
Topic
An updated xorg-x11-drv-qxl package that fixes numerous bugs is now
available.
Description
xorg-x11-qxl-drv is an X11 video driver for the QEMU QXL video
accelerator. This driver makes it possible to use Red Hat Enterprise Linux
5 as a guest operating system under KVM and QEMU, using the SPICE protocol.
This update addresses the following:
- if a virtual machine running X11 was switched to run-level 3 and the
startx command was then used to restart X11, the X server would hang,
resulting in a black screen. When "init 3" is run, the QXL device switches
into VGA mode without either notifying the X server or clearing the command
buffer. As a consequence, when X attempted to restart, the commands queued
from the previous X session (which are cleared when an X session is stopped
properly and safely) cause X to hang and the virtual machine to crash.
With this update the QXL driver now checks the device mode before issuing
any commands: if the QXL driver reports being in VGA mode, the driver now
waits for it to be set back to non-VGA mode as part of the normal X startup
process. This avoids the problem created by the QXL device and ensures the
command queue is not left in an illegal state when exiting X. (BZ#509410)
- In the previous release, only a 32-bit x86 version of the QXL driver
was included. With this update both 32-bit and 64-bit x86 versions are
provided.(BZ#543663)
- Launching applications from shortcuts pinned to the task bar panel
caused a visual glitch where rectangles animating the movement of windows
would persist on screen.
To improve performance and fix bugs in conjunction with moving windows
around, the driver was modified to keep damage in a separate pending_copy
region. Accelerated operations then delete this region, and whenever new
damage appears, it is unioned onto the "to_be_sent" region, which is then
submitted at BlockHandler time.(BZ#544781)
This modification also resolves the following:
- Scrolling through a document with the mouse wheel in OpenOffice 3.1.1
would cause corruption of the displayed document text.(BZ#552181)
- In Red Hat Enterprise Linux 5.4 with the KDE desktop running in a virtual
machine using the QXL driver, dragging icons or drawing frames on the
desktop with the mouse would result in residual screen
corruption.(BZ#552838)
- When running x11perf in a virtual machine with the 32-bit QXL driver, X
Windows would occasionally become unresponsive though the VM was responsive
otherwise.
The 32-bit QXL driver did not implement correct memory accesses to the QXL
ring buffer. This could lead to an endless loop. In this update, all ring
accesses have been modified to use volatile accessors. The driver no
longer enters an endless loop after this modification.(BZ#549379)
- Unmapping errors and incorrect draw area values appeared in the log file.
This was caused by incorrect size parameters applied to xf86UnMapVidMem
and printing of values from incorrect memory structure. The size parameter
was modified and ROM structure replaced QXL structure for draw area values.
These errors no longer appear in the log.(BZ#549386)
- Video was not displayed to screen in video players.
The QXL driver did not output video streams with the correct effect type
and consequently video was not displayed to screen. The driver was
modified to use QXL_EFFECT_OPAQUE instead of QXL_EFFECT_BLEND. Video
detection works correctly after this modification.(BZ#551289)
- X11 crashed when the display configuration was changed to "thousands of
colors" (16-bit color depth) and the virtual machine was restarted.
QXL uses a 15-bit color depth (x1r5g5b5) rather than 16-bits. The
driver implemented 16-bit depth modes incorrectly with the "thousands of
colors" setting and caused X11 to crash.
The driver was modified to implement a 15-bit color depth which allowed X11
to restart without crashing after "thousands of colors" was set in the
display configuration.(BZ#551981)
All users of KVM-based virtualization are advised to upgrade to this
updated package, which fixes these issues.
Solution
Before applying this update, make sure all previously-released errata
relevant to your system have been applied.
This update is available via the Red Hat Network. Details on how to
use the Red Hat Network to apply this update are available at
http://kbase.redhat.com/faq/docs/DOC-11259
Affected Products
- Red Hat Enterprise Linux Server 5 x86_64
- Red Hat Enterprise Linux Server 5 i386
- Red Hat Enterprise Linux Workstation 5 x86_64
- Red Hat Enterprise Linux Workstation 5 i386
- Red Hat Enterprise Linux Desktop 5 x86_64
- Red Hat Enterprise Linux Desktop 5 i386
- Red Hat Enterprise Linux Server from RHUI 5 x86_64
- Red Hat Enterprise Linux Server from RHUI 5 i386
Fixes
- BZ - 509410 - Black screen when trying to run X by executing startx command after init 3.
- BZ - 543663 - Build qxl driver for 64bit/32bit
CVEs
(none)
References
(none)
Red Hat Enterprise Linux Server 5
SRPM | |
---|---|
xorg-x11-drv-qxl-0.0.12-1.2.el5.src.rpm | SHA-256: 3df945a096c97632561ae1666e39cf5ed5828eec105ab83b8146651073a246b4 |
x86_64 | |
xorg-x11-drv-qxl-0.0.12-1.2.el5.x86_64.rpm | SHA-256: 4ae3342310d8cd63487398e963c60133c45816fa2719b18d3002dd2dbdbb6819 |
i386 | |
xorg-x11-drv-qxl-0.0.12-1.2.el5.i386.rpm | SHA-256: ba075449f2f0c46d2fdfc418a020fea0af5eb568d253e118da2d47ab3b4eac52 |
Red Hat Enterprise Linux Workstation 5
SRPM | |
---|---|
xorg-x11-drv-qxl-0.0.12-1.2.el5.src.rpm | SHA-256: 3df945a096c97632561ae1666e39cf5ed5828eec105ab83b8146651073a246b4 |
x86_64 | |
xorg-x11-drv-qxl-0.0.12-1.2.el5.x86_64.rpm | SHA-256: 4ae3342310d8cd63487398e963c60133c45816fa2719b18d3002dd2dbdbb6819 |
i386 | |
xorg-x11-drv-qxl-0.0.12-1.2.el5.i386.rpm | SHA-256: ba075449f2f0c46d2fdfc418a020fea0af5eb568d253e118da2d47ab3b4eac52 |
Red Hat Enterprise Linux Desktop 5
SRPM | |
---|---|
xorg-x11-drv-qxl-0.0.12-1.2.el5.src.rpm | SHA-256: 3df945a096c97632561ae1666e39cf5ed5828eec105ab83b8146651073a246b4 |
x86_64 | |
xorg-x11-drv-qxl-0.0.12-1.2.el5.x86_64.rpm | SHA-256: 4ae3342310d8cd63487398e963c60133c45816fa2719b18d3002dd2dbdbb6819 |
i386 | |
xorg-x11-drv-qxl-0.0.12-1.2.el5.i386.rpm | SHA-256: ba075449f2f0c46d2fdfc418a020fea0af5eb568d253e118da2d47ab3b4eac52 |
Red Hat Enterprise Linux Server from RHUI 5
SRPM | |
---|---|
xorg-x11-drv-qxl-0.0.12-1.2.el5.src.rpm | SHA-256: 3df945a096c97632561ae1666e39cf5ed5828eec105ab83b8146651073a246b4 |
x86_64 | |
xorg-x11-drv-qxl-0.0.12-1.2.el5.x86_64.rpm | SHA-256: 4ae3342310d8cd63487398e963c60133c45816fa2719b18d3002dd2dbdbb6819 |
i386 | |
xorg-x11-drv-qxl-0.0.12-1.2.el5.i386.rpm | SHA-256: ba075449f2f0c46d2fdfc418a020fea0af5eb568d253e118da2d47ab3b4eac52 |
The Red Hat security contact is secalert@redhat.com. More contact details at https://access.redhat.com/security/team/contact/.