From patchwork Fri Jul 23 13:39:38 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris Wilson X-Patchwork-Id: 113890 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by demeter.kernel.org (8.14.4/8.14.3) with ESMTP id o6NDe7uU010640 for ; Fri, 23 Jul 2010 13:40:43 GMT Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 149F39F0DA for ; Fri, 23 Jul 2010 06:40:08 -0700 (PDT) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 75C129E7CB for ; Fri, 23 Jul 2010 06:39:55 -0700 (PDT) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga101.fm.intel.com with ESMTP; 23 Jul 2010 06:37:35 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.55,247,1278313200"; d="scan'208";a="820968669" Received: from unknown (HELO cantiga.alporthouse.com) ([10.255.17.107]) by fmsmga001.fm.intel.com with ESMTP; 23 Jul 2010 06:39:42 -0700 From: Chris Wilson To: intel-gfx@lists.freedesktop.org Date: Fri, 23 Jul 2010 14:39:38 +0100 Message-Id: <1279892378-28744-1-git-send-email-chris@chris-wilson.co.uk> X-Mailer: git-send-email 1.7.1 Cc: stable@kernel.org Subject: [Intel-gfx] [PATCH] drm/i915: Repeat unbinding during free if interrupted X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: intel-gfx-bounces+patchwork-intel-gfx=patchwork.kernel.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+patchwork-intel-gfx=patchwork.kernel.org@lists.freedesktop.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.3 (demeter.kernel.org [140.211.167.41]); Fri, 23 Jul 2010 13:40:43 +0000 (UTC) diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 3c7c0f7..a4c0b44 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -4292,6 +4292,7 @@ void i915_gem_free_object(struct drm_gem_object *obj) { struct drm_device *dev = obj->dev; struct drm_i915_gem_object *obj_priv = to_intel_bo(obj); + int ret; trace_i915_gem_object_destroy(obj); @@ -4301,7 +4302,9 @@ void i915_gem_free_object(struct drm_gem_object *obj) if (obj_priv->phys_obj) i915_gem_detach_phys_object(dev, obj); - i915_gem_object_unbind(obj); + do { + ret = i915_gem_object_unbind(obj); + } while (ret == -ERESTARTSYS); if (obj_priv->mmap_offset) i915_gem_free_mmap_offset(obj);