summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2011-12-29 09:03:21 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2011-12-29 09:03:21 +0000
commitc9f7f10bc528ac783f4e89bdb36fc56ccdcd0088 (patch)
tree771e6ae896188cb5f40991d94520ac29a765f0bc
parent98e053503aed292beb2006043e8508d59262c7c2 (diff)
sna: Be paranoid and check for errors from mmapping the bo
Now that the error propagation is actually in place, we may as well use it. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r--src/sna/sna_accel.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index 8d319dbd..9c04e1dc 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -692,6 +692,9 @@ sna_pixmap_move_to_cpu(PixmapPtr pixmap, unsigned int flags)
pixmap->devPrivate.ptr =
kgem_bo_map(&sna->kgem, priv->gpu_bo,
PROT_WRITE);
+ if (pixmap->devPrivate.ptr == NULL)
+ goto skip_inplace_map;
+
priv->mapped = 1;
sna_damage_all(&priv->gpu_damage,
@@ -885,6 +888,9 @@ sna_drawable_move_region_to_cpu(DrawablePtr drawable,
pixmap->devPrivate.ptr =
kgem_bo_map(&sna->kgem, priv->gpu_bo,
PROT_WRITE);
+ if (pixmap->devPrivate.ptr == NULL)
+ return false;
+
priv->mapped = 1;
sna_damage_subtract(&priv->cpu_damage, region);
@@ -920,6 +926,9 @@ sna_drawable_move_region_to_cpu(DrawablePtr drawable,
pixmap->devPrivate.ptr =
kgem_bo_map(&sna->kgem, priv->gpu_bo,
PROT_WRITE);
+ if (pixmap->devPrivate.ptr == NULL)
+ return false;
+
priv->mapped = 1;
sna_damage_subtract(&priv->cpu_damage, region);