Bug 11412 - Unichrome - Invalid / Unimplemented DMA HEADER command
Unichrome - Invalid / Unimplemented DMA HEADER command
Status: NEW
Product: DRI
Classification: Unclassified
Component: DRM/other
DRI git
x86 (IA32) Linux (All)
: medium normal
Assigned To: Default DRI bug account
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2007-06-28 14:20 UTC by Gabriel Mansi
Modified: 2007-07-02 12:31 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Gabriel Mansi 2007-06-28 14:20:53 UTC
The unichrome DRI driver is sending unaligned data which confuses the DRM kernel module.

This is what the dri driver is flushing (via_ioctl.c:854):
viaFlushDmaLocked: unaligned value for vmesa->dmaLow: 7dc
0000:   430983f1  44390363  00000000  ffbf0505
0010:   430f0484  44390363  00000000  ffbf0505

dmesg shows this message:
[drm:via_verify_command_stream] *ERROR* Invalid / Unimplemented DMA HEADER command. 0x430983f1

Tested on KM400 and CX700 mesa 6.5.1 and 6.5.2

How to reproduce:
Playing gltron, It will abort after about 30 seconds.
Comment 1 Gabriel Mansi 2007-07-02 12:31:39 UTC
I found the problem inside the function viaRasterPrimitive, there is a call to viaCheckDma to ensure that the command buffer will not be wrapped, but that check is failing because it is only ensuring 1024 bytes when it should ensure about three times that value.
Setting it to 3072 will cause the buffer to be flushed more frequently because it has 4096 bytes.