diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-12-16 13:30:17 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-12-16 13:30:17 -0500 |
commit | c5113e3d66d7c7140fe854c7638a27eb3a23fd7d (patch) | |
tree | 9247edfcfa87132e15a277d6f2359b303c24da29 /drivers/gpu/drm/radeon/radeon_gem.c | |
parent | 9b2831704e9250269032e3b8c2ffdfca09fd2851 (diff) | |
parent | d785d78bbdb53580b12c40e820af5a3281ce2fc8 (diff) |
Merge branch 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6
* 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:
drm/radeon/kms: fix r100->r500 CS checker for compressed textures. (v2)
drm/radeon/kms: allow for texture tiling
drm/radeon/kms: init pm on all chipsets
drm/radeon/kms: HDMI support for R600 KMS
drm/radeon/kms: make sure mc is initialized before mapping blit bo
drm/radeon/kms: Return to userspace on ERESTARTSYS
drm/radeon/gem: don't leak a gem object if reserve fails on get tiling (v2)
drm/radeon/kms: don't report allocate failure on ERESTARTSYS
drm/radeon/kms: Check if bo we got from ttm are radeon object or not
drm/radeon/kms: If no placement is supplied fallback to system
drm/ttm: Fix memory type manager debug information printing
drm/ttm: Fix printk format & compute bo->mem.size at bo initialization
drm/ttm: Fix potential ttm_mem_evict_first races.
drm/ttm: Delayed delete fixes.
drm/ttm: fix two bugs in new placement routines.
drm/ttm: fix incorrect logic in ttm_bo_io path
drm/nouveau: remove use of -ERESTART
nouveau: Fix endianness with new context program loader
drm/nouveau: fix build with CONFIG_AGP=n
drm/nouveau: fix ch7006 build
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_gem.c')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_gem.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_gem.c b/drivers/gpu/drm/radeon/radeon_gem.c index 2944486871b0..60df2d7e7e4c 100644 --- a/drivers/gpu/drm/radeon/radeon_gem.c +++ b/drivers/gpu/drm/radeon/radeon_gem.c | |||
@@ -66,8 +66,9 @@ int radeon_gem_object_create(struct radeon_device *rdev, int size, | |||
66 | } | 66 | } |
67 | r = radeon_bo_create(rdev, gobj, size, kernel, initial_domain, &robj); | 67 | r = radeon_bo_create(rdev, gobj, size, kernel, initial_domain, &robj); |
68 | if (r) { | 68 | if (r) { |
69 | DRM_ERROR("Failed to allocate GEM object (%d, %d, %u)\n", | 69 | if (r != -ERESTARTSYS) |
70 | size, initial_domain, alignment); | 70 | DRM_ERROR("Failed to allocate GEM object (%d, %d, %u, %d)\n", |
71 | size, initial_domain, alignment, r); | ||
71 | mutex_lock(&rdev->ddev->struct_mutex); | 72 | mutex_lock(&rdev->ddev->struct_mutex); |
72 | drm_gem_object_unreference(gobj); | 73 | drm_gem_object_unreference(gobj); |
73 | mutex_unlock(&rdev->ddev->struct_mutex); | 74 | mutex_unlock(&rdev->ddev->struct_mutex); |
@@ -350,9 +351,10 @@ int radeon_gem_get_tiling_ioctl(struct drm_device *dev, void *data, | |||
350 | rbo = gobj->driver_private; | 351 | rbo = gobj->driver_private; |
351 | r = radeon_bo_reserve(rbo, false); | 352 | r = radeon_bo_reserve(rbo, false); |
352 | if (unlikely(r != 0)) | 353 | if (unlikely(r != 0)) |
353 | return r; | 354 | goto out; |
354 | radeon_bo_get_tiling_flags(rbo, &args->tiling_flags, &args->pitch); | 355 | radeon_bo_get_tiling_flags(rbo, &args->tiling_flags, &args->pitch); |
355 | radeon_bo_unreserve(rbo); | 356 | radeon_bo_unreserve(rbo); |
357 | out: | ||
356 | mutex_lock(&dev->struct_mutex); | 358 | mutex_lock(&dev->struct_mutex); |
357 | drm_gem_object_unreference(gobj); | 359 | drm_gem_object_unreference(gobj); |
358 | mutex_unlock(&dev->struct_mutex); | 360 | mutex_unlock(&dev->struct_mutex); |