xf86-video-intel: 6 commits - src/i915_render.c src/intel_dri.c src/sna/gen3_render.c src/sna/gen4_render.c src/sna/gen5_render.c src/sna/gen6_render.c src/sna/gen7_render.c src/sna/sna_accel.c src/sna/sna_dri.c src/sna/sna_io.c src/sna/sna_trapezoids.c

Chris Wilson ickle at kemper.freedesktop.org
Fri Jun 1 09:34:38 PDT 2012


 src/i915_render.c        |    2 +-
 src/intel_dri.c          |    5 +----
 src/sna/gen3_render.c    |    3 ++-
 src/sna/gen4_render.c    |    3 ++-
 src/sna/gen5_render.c    |    3 ++-
 src/sna/gen6_render.c    |    3 ++-
 src/sna/gen7_render.c    |    3 ++-
 src/sna/sna_accel.c      |    2 +-
 src/sna/sna_dri.c        |    4 ++--
 src/sna/sna_io.c         |    7 ++++++-
 src/sna/sna_trapezoids.c |    5 ++++-
 11 files changed, 25 insertions(+), 15 deletions(-)

New commits:
commit b83e2a79f2a082630e0d3147abec8d3599f3f4b4
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Fri Jun 1 17:17:49 2012 +0100

    uxa: Static analysis warning fixes
    
    A smattering of bugs and confusing code.
    
    Reported-by: Zdenek Kabelac <zkabelac at redhat.com>
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/i915_render.c b/src/i915_render.c
index 5605edf..0ad991a 100644
--- a/src/i915_render.c
+++ b/src/i915_render.c
@@ -665,7 +665,7 @@ i915_prepare_composite(int op, PicturePtr source_picture,
 	drm_intel_bo *bo_table[] = {
 		NULL,		/* batch_bo */
 		intel_get_pixmap_bo(dest),
-		source ? intel_get_pixmap_bo(source) : NULL,
+		intel_get_pixmap_bo(source),
 		mask ? intel_get_pixmap_bo(mask) : NULL,
 	};
 	int tex_unit = 0;
diff --git a/src/intel_dri.c b/src/intel_dri.c
index 3261e54..2a95edb 100644
--- a/src/intel_dri.c
+++ b/src/intel_dri.c
@@ -1034,9 +1034,6 @@ can_exchange(DrawablePtr drawable, DRI2BufferPtr front, DRI2BufferPtr back)
 	struct intel_pixmap *front_intel = intel_get_pixmap_private(front_pixmap);
 	struct intel_pixmap *back_intel = intel_get_pixmap_private(back_pixmap);
 
-	if (drawable == NULL)
-		return FALSE;
-
 	if (!DRI2CanFlip(drawable))
 		return FALSE;
 
@@ -1275,7 +1272,7 @@ I830DRI2ScheduleSwap(ClientPtr client, DrawablePtr draw, DRI2BufferPtr front,
 	swap_info->event_data = data;
 	swap_info->front = front;
 	swap_info->back = back;
-	swap_info->pipe = I830DRI2DrawablePipe(draw);
+	swap_info->pipe = pipe;
 
 	if (!i830_dri2_add_frame_event(swap_info)) {
 	    free(swap_info);
commit 67e8ac365c4b7dd9c4eb2abe46aecc8cc04d4278
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Fri Jun 1 17:20:51 2012 +0100

    sna/gen3+: Guard against a kgem_bo_destroy(NULL)
    
    Reported-by: Zdenek Kabelac <zkabelac at redhat.com>
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/gen3_render.c b/src/sna/gen3_render.c
index 8cafeb8..d8d1e09 100644
--- a/src/sna/gen3_render.c
+++ b/src/sna/gen3_render.c
@@ -1651,7 +1651,8 @@ static int gen3_vertex_finish(struct sna *sna)
 	if (sna->render.vbo)
 		sna->render.vertices = kgem_bo_map(&sna->kgem, sna->render.vbo);
 	if (sna->render.vertices == NULL) {
-		kgem_bo_destroy(&sna->kgem, sna->render.vbo);
+		if (sna->render.vbo)
+			kgem_bo_destroy(&sna->kgem, sna->render.vbo);
 		sna->render.vbo = NULL;
 		return 0;
 	}
diff --git a/src/sna/gen4_render.c b/src/sna/gen4_render.c
index 8ab707f..dd66a46 100644
--- a/src/sna/gen4_render.c
+++ b/src/sna/gen4_render.c
@@ -401,7 +401,8 @@ static int gen4_vertex_finish(struct sna *sna)
 	if (sna->render.vbo)
 		sna->render.vertices = kgem_bo_map(&sna->kgem, sna->render.vbo);
 	if (sna->render.vertices == NULL) {
-		kgem_bo_destroy(&sna->kgem, sna->render.vbo);
+		if (sna->render.vbo)
+			kgem_bo_destroy(&sna->kgem, sna->render.vbo);
 		sna->render.vbo = NULL;
 		return 0;
 	}
diff --git a/src/sna/gen5_render.c b/src/sna/gen5_render.c
index 68c1bb7..9c30041 100644
--- a/src/sna/gen5_render.c
+++ b/src/sna/gen5_render.c
@@ -393,7 +393,8 @@ static int gen5_vertex_finish(struct sna *sna)
 	if (sna->render.vbo)
 		sna->render.vertices = kgem_bo_map(&sna->kgem, sna->render.vbo);
 	if (sna->render.vertices == NULL) {
-		kgem_bo_destroy(&sna->kgem, sna->render.vbo);
+		if (sna->render.vbo)
+			kgem_bo_destroy(&sna->kgem, sna->render.vbo);
 		sna->render.vbo = NULL;
 		return 0;
 	}
diff --git a/src/sna/gen6_render.c b/src/sna/gen6_render.c
index d9068de..df2eeb2 100644
--- a/src/sna/gen6_render.c
+++ b/src/sna/gen6_render.c
@@ -967,7 +967,8 @@ static int gen6_vertex_finish(struct sna *sna)
 	if (sna->render.vbo)
 		sna->render.vertices = kgem_bo_map(&sna->kgem, sna->render.vbo);
 	if (sna->render.vertices == NULL) {
-		kgem_bo_destroy(&sna->kgem, sna->render.vbo);
+		if (sna->render.vbo)
+			kgem_bo_destroy(&sna->kgem, sna->render.vbo);
 		sna->render.vbo = NULL;
 		return 0;
 	}
diff --git a/src/sna/gen7_render.c b/src/sna/gen7_render.c
index 3f31437..6bf25d3 100644
--- a/src/sna/gen7_render.c
+++ b/src/sna/gen7_render.c
@@ -1105,7 +1105,8 @@ static int gen7_vertex_finish(struct sna *sna)
 	if (sna->render.vbo)
 		sna->render.vertices = kgem_bo_map(&sna->kgem, sna->render.vbo);
 	if (sna->render.vertices == NULL) {
-		kgem_bo_destroy(&sna->kgem, sna->render.vbo);
+		if (sna->render.vbo)
+			kgem_bo_destroy(&sna->kgem, sna->render.vbo);
 		sna->render.vbo = NULL;
 		return 0;
 	}
commit e91b27ae14a5366175a4fe9c87ee15a0a25b5a42
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Fri Jun 1 17:12:36 2012 +0100

    sna: Fix potential deference of NULL cpu_bo inside assertion
    
    Reported-by: Zdenek Kabelac <zkabelac at redhat.com>
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index 7eeb7af..7b7190d 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -2486,7 +2486,7 @@ done:
 	if (DAMAGE_IS_ALL(priv->gpu_damage)) {
 		priv->undamaged = false;
 		if (priv->ptr) {
-			assert(!priv->cpu_bo->sync);
+			assert(priv->cpu_bo == NULL || !priv->cpu_bo->sync);
 			sna_pixmap_free_cpu(sna, priv);
 		}
 	}
commit 048161e69612324d6c077ec487a2a64aaaa7c1f5
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Fri Jun 1 17:09:21 2012 +0100

    sna/trapezoids: Check for malloc failure
    
    Reported-by: Zdenek Kabelac <zkabelac at redhat.com>
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_trapezoids.c b/src/sna/sna_trapezoids.c
index c7f6671..d65c249 100644
--- a/src/sna/sna_trapezoids.c
+++ b/src/sna/sna_trapezoids.c
@@ -2598,8 +2598,11 @@ composite_aligned_boxes(struct sna *sna,
 	DBG(("%s\n", __FUNCTION__));
 
 	boxes = stack_boxes;
-	if (ntrap > (int)ARRAY_SIZE(stack_boxes))
+	if (ntrap > (int)ARRAY_SIZE(stack_boxes)) {
 		boxes = malloc(sizeof(BoxRec)*ntrap);
+		if (boxes == NULL)
+			return false;
+	}
 
 	dx = dst->pDrawable->x;
 	dy = dst->pDrawable->y;
commit 2896aa7b46931d3b95567121ccb07844725ab45c
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Fri Jun 1 17:08:01 2012 +0100

    sna/io: Free the heap clip boxes on error paths
    
    Reported-by: Zdenek Kabelac <zkabelac at redhat.com>
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_io.c b/src/sna/sna_io.c
index 3f39de5..0d6fbbb 100644
--- a/src/sna/sna_io.c
+++ b/src/sna/sna_io.c
@@ -261,14 +261,19 @@ fallback:
 								       tmp.drawable.bitsPerPixel,
 								       KGEM_BUFFER_LAST,
 								       &ptr);
-					if (!dst_bo)
+					if (!dst_bo) {
+						if (clipped != stack)
+							free(clipped);
 						goto fallback;
+					}
 
 					if (!sna->render.copy_boxes(sna, GXcopy,
 								    dst, src_bo, src_dx, src_dy,
 								    &tmp, dst_bo, -tile.x1, -tile.y1,
 								    clipped, c-clipped)) {
 						kgem_bo_destroy(&sna->kgem, dst_bo);
+						if (clipped != stack)
+							free(clipped);
 						goto fallback;
 					}
 
commit 1ef00ff720226c211444806d9fdf67ce2046685b
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Fri Jun 1 17:05:55 2012 +0100

    sna/dri: Fix typo, check for NULL after allocations to spot failure!
    
    Reported-by: Zdenek Kabelac <zkabelac at redhat.com>
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_dri.c b/src/sna/sna_dri.c
index c74ecc4..c26c128 100644
--- a/src/sna/sna_dri.c
+++ b/src/sna/sna_dri.c
@@ -1369,7 +1369,7 @@ sna_dri_schedule_flip(ClientPtr client, DrawablePtr draw, DRI2BufferPtr front,
 		}
 
 		info = calloc(1, sizeof(struct sna_dri_frame_event));
-		if (!info)
+		if (info == NULL)
 			return FALSE;
 
 		info->type = type;
@@ -1415,7 +1415,7 @@ sna_dri_schedule_flip(ClientPtr client, DrawablePtr draw, DRI2BufferPtr front,
 				 info->event_data);
 	} else {
 		info = calloc(1, sizeof(struct sna_dri_frame_event));
-		if (info)
+		if (info == NULL)
 			return FALSE;
 
 		info->sna = sna;


More information about the xorg-commit mailing list