OSDN Git Service

nouveau: silence some remaining valgrind warnings
authorMarcin Slusarz <marcin.slusarz@gmail.com>
Sat, 9 Jun 2012 18:56:37 +0000 (20:56 +0200)
committerMarcin Slusarz <marcin.slusarz@gmail.com>
Sat, 9 Jun 2012 21:23:32 +0000 (23:23 +0200)
Valgrind can't understand some of the fields passed to ioctls are overwritten
by kernel, so we need to initialize them. Almost all of our ioctl wrappers
already do it and the cost of remaining 3 is very small.

Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
nouveau/abi16.c
nouveau/pushbuf.c

index 69a0a9b..a67fbc1 100644 (file)
@@ -31,13 +31,10 @@ int
 abi16_chan_nv04(struct nouveau_object *obj)
 {
        struct nouveau_device *dev = (struct nouveau_device *)obj->parent;
-       struct drm_nouveau_channel_alloc req;
        struct nv04_fifo *nv04 = obj->data;
+       struct drm_nouveau_channel_alloc req = {nv04->vram, nv04->gart};
        int ret;
 
-       req.fb_ctxdma_handle = nv04->vram;
-       req.tt_ctxdma_handle = nv04->gart;
-
        ret = drmCommandWriteRead(dev->fd, DRM_NOUVEAU_CHANNEL_ALLOC,
                                  &req, sizeof(req));
        if (ret)
index 7b9dbaa..0e37ce3 100644 (file)
@@ -336,6 +336,8 @@ pushbuf_submit(struct nouveau_pushbuf *push, struct nouveau_object *chan)
                req.push = (uint64_t)(unsigned long)krec->push;
                req.suffix0 = nvpb->suffix0;
                req.suffix1 = nvpb->suffix1;
+               req.vram_available = 0; /* for valgrind */
+               req.gart_available = 0;
 
                if (dbg_on(0))
                        pushbuf_dump(krec, krec_id++, fifo->channel);
@@ -534,7 +536,7 @@ nouveau_pushbuf_new(struct nouveau_client *client, struct nouveau_object *chan,
        struct nouveau_fifo *fifo = chan->data;
        struct nouveau_pushbuf_priv *nvpb;
        struct nouveau_pushbuf *push;
-       struct drm_nouveau_gem_pushbuf req;
+       struct drm_nouveau_gem_pushbuf req = {};
        int ret;
 
        if (chan->oclass != NOUVEAU_FIFO_CHANNEL_CLASS)