aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nouveau_gem.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2011-03-14 19:59:31 -0400
committerDave Airlie <airlied@redhat.com>2011-03-14 19:59:31 -0400
commit235b87afbcadf46e5ca042b2e7a977a41ebce9dd (patch)
tree3dd7102ae63435e3ed30357609710ac45780766f /drivers/gpu/drm/nouveau/nouveau_gem.c
parentbcd5023c961a44c7149936553b6929b2b233dd27 (diff)
parentbd35fe5a7930bf83ed56422ea4e4b6471ee6f739 (diff)
Merge remote branch 'nouveau/drm-nouveau-next' of ../drm-nouveau-next into drm-core-next
* 'nouveau/drm-nouveau-next' of ../drm-nouveau-next: drm/nouveau: fix __nouveau_fence_wait performance drm/nv40: attempt to reserve just enough vram for all 32 channels drm/nv50: check for vm traps on every gr irq drm/nv50: decode vm faults some more drm/nouveau: add nouveau_enum_find() util function drm/nouveau: properly handle pushbuffer check failures drm/nvc0: remove vm hack forcing large/small pages to not share a PDE
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_gem.c')
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_gem.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c
index 3ce58d2222cb..e8b04f4aed7e 100644
--- a/drivers/gpu/drm/nouveau/nouveau_gem.c
+++ b/drivers/gpu/drm/nouveau/nouveau_gem.c
@@ -600,7 +600,7 @@ nouveau_gem_ioctl_pushbuf(struct drm_device *dev, void *data,
600 if (push[i].bo_index >= req->nr_buffers) { 600 if (push[i].bo_index >= req->nr_buffers) {
601 NV_ERROR(dev, "push %d buffer not in list\n", i); 601 NV_ERROR(dev, "push %d buffer not in list\n", i);
602 ret = -EINVAL; 602 ret = -EINVAL;
603 goto out; 603 goto out_prevalid;
604 } 604 }
605 605
606 bo[push[i].bo_index].read_domains |= (1 << 31); 606 bo[push[i].bo_index].read_domains |= (1 << 31);
@@ -612,7 +612,7 @@ nouveau_gem_ioctl_pushbuf(struct drm_device *dev, void *data,
612 if (ret) { 612 if (ret) {
613 if (ret != -ERESTARTSYS) 613 if (ret != -ERESTARTSYS)
614 NV_ERROR(dev, "validate: %d\n", ret); 614 NV_ERROR(dev, "validate: %d\n", ret);
615 goto out; 615 goto out_prevalid;
616 } 616 }
617 617
618 /* Apply any relocations that are required */ 618 /* Apply any relocations that are required */
@@ -705,6 +705,8 @@ nouveau_gem_ioctl_pushbuf(struct drm_device *dev, void *data,
705out: 705out:
706 validate_fini(&op, fence); 706 validate_fini(&op, fence);
707 nouveau_fence_unref(&fence); 707 nouveau_fence_unref(&fence);
708
709out_prevalid:
708 kfree(bo); 710 kfree(bo);
709 kfree(push); 711 kfree(push);
710 712