drm/i915: Don't print to dmesg when taking signal during object_pin.
authorEric Anholt <eric@anholt.net>
Fri, 19 Dec 2008 22:47:48 +0000 (14:47 -0800)
committerDave Airlie <airlied@linux.ie>
Mon, 29 Dec 2008 07:47:27 +0000 (17:47 +1000)
This showed up in logs where people had a hung chip, so pinning was blocked
on the chip unpinning other buffers, and the X Server took its scheduler
signal during that time.

Signed-off-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Dave Airlie <airlied@linux.ie>
drivers/gpu/drm/i915/i915_gem.c

index 6a288a7..630eec2 100644 (file)
@@ -2491,7 +2491,8 @@ i915_gem_execbuffer(struct drm_device *dev, void *data,
 
                /* error other than GTT full, or we've already tried again */
                if (ret != -ENOMEM || pin_tries >= 1) {
-                       DRM_ERROR("Failed to pin buffers %d\n", ret);
+                       if (ret != -ERESTARTSYS)
+                               DRM_ERROR("Failed to pin buffers %d\n", ret);
                        goto err;
                }
 
@@ -2641,7 +2642,8 @@ i915_gem_object_pin(struct drm_gem_object *obj, uint32_t alignment)
        if (obj_priv->gtt_space == NULL) {
                ret = i915_gem_object_bind_to_gtt(obj, alignment);
                if (ret != 0) {
-                       DRM_ERROR("Failure to bind: %d", ret);
+                       if (ret != -ERESTARTSYS)
+                               DRM_ERROR("Failure to bind: %d", ret);
                        return ret;
                }
        }