i915: Quiet valgrind by initializing the seq value the kernel writes into.
authorEric Anholt <eric@anholt.net>
Tue, 19 Jun 2007 22:15:40 +0000 (15:15 -0700)
committerEric Anholt <eric@anholt.net>
Wed, 19 Sep 2007 17:50:19 +0000 (10:50 -0700)
Also, add a couple of comments to the wait/emit IRQ functions.

src/mesa/drivers/dri/i915/intel_ioctl.c

index ede3b6378fe3998f2a700141eb3ad5e220343cdc..ddd92782db0102b15a79c1788dbe6b83c9256d50 100644 (file)
@@ -53,6 +53,10 @@ u_int32_t intelGetLastFrame (intelContextPtr intel)
    return frame;
 }
 
+/**
+ * Emits a marker in the command stream, numbered from 0x00000001 to
+ * 0x7fffffff.
+ */
 int intelEmitIrqLocked( intelContextPtr intel )
 {
    drmI830IrqEmit ie;
@@ -61,6 +65,10 @@ int intelEmitIrqLocked( intelContextPtr intel )
    assert(((*(int *)intel->driHwLock) & ~DRM_LOCK_CONT) == 
          (DRM_LOCK_HELD|intel->hHWContext));
 
+   /* Valgrind can't tell that the kernel will have copyout()ed onto this
+    * value, so initialize it now to prevent false positives.
+    */
+   seq = 0;
    ie.irq_seq = &seq;
         
    ret = drmCommandWriteRead( intel->driFd, DRM_I830_IRQ_EMIT, 
@@ -76,6 +84,7 @@ int intelEmitIrqLocked( intelContextPtr intel )
    return seq;
 }
 
+/** Blocks on a marker returned by intelEitIrqLocked(). */
 void intelWaitIrq( intelContextPtr intel, int seq )
 {
    int ret;