diff options
author | Dave Airlie <airlied@redhat.com> | 2011-03-14 19:59:31 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2011-03-14 19:59:31 -0400 |
commit | 235b87afbcadf46e5ca042b2e7a977a41ebce9dd (patch) | |
tree | 3dd7102ae63435e3ed30357609710ac45780766f /drivers/gpu/drm/nouveau/nouveau_gem.c | |
parent | bcd5023c961a44c7149936553b6929b2b233dd27 (diff) | |
parent | bd35fe5a7930bf83ed56422ea4e4b6471ee6f739 (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.c | 6 |
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, | |||
705 | out: | 705 | out: |
706 | validate_fini(&op, fence); | 706 | validate_fini(&op, fence); |
707 | nouveau_fence_unref(&fence); | 707 | nouveau_fence_unref(&fence); |
708 | |||
709 | out_prevalid: | ||
708 | kfree(bo); | 710 | kfree(bo); |
709 | kfree(push); | 711 | kfree(push); |
710 | 712 | ||