OSDN Git Service

intel: Add some defense against buffer allocation failure for subimage blits
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 4 Mar 2011 15:04:36 +0000 (15:04 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Wed, 30 Mar 2011 10:01:42 +0000 (11:01 +0100)
Once more! This time without the unwarranted conversion from
drm_intel_bo_alloc_tiled.

Signed-off-by: [a very embarrassed] Chris Wilson <chris@chris-wilson.co.uk>
src/mesa/drivers/dri/intel/intel_tex_subimage.c

index 6b7f13f..8b43c40 100644 (file)
@@ -92,6 +92,7 @@ intelTexSubimage(struct gl_context * ctx,
       {
         unsigned long pitch;
         uint32_t tiling_mode = I915_TILING_NONE;
+
         temp_bo = drm_intel_bo_alloc_tiled(intel->bufmgr,
                                            "subimage blit bo",
                                            width, height,
@@ -99,7 +100,14 @@ intelTexSubimage(struct gl_context * ctx,
                                            &tiling_mode,
                                            &pitch,
                                            0);
-        drm_intel_gem_bo_map_gtt(temp_bo);
+         if (temp_bo == NULL)
+            return;
+
+        if (drm_intel_gem_bo_map_gtt(temp_bo)) {
+            drm_intel_bo_unreference(temp_bo);
+            return;
+         }
+
         texImage->Data = temp_bo->virtual;
         texImage->ImageOffsets[0] = 0;
         dstRowStride = pitch;