From patchwork Mon Jan 27 20:49:47 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Vetter X-Patchwork-Id: 3544001 Return-Path: X-Original-To: patchwork-intel-gfx@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 06E4B9F382 for ; Mon, 27 Jan 2014 20:50:28 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 242CC20123 for ; Mon, 27 Jan 2014 20:50:27 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id 42DAC2011E for ; Mon, 27 Jan 2014 20:50:26 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 20F3C105ECE for ; Mon, 27 Jan 2014 12:50:26 -0800 (PST) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from mail-ea0-f180.google.com (mail-ea0-f180.google.com [209.85.215.180]) by gabe.freedesktop.org (Postfix) with ESMTP id DF8E2FC2ED for ; Mon, 27 Jan 2014 12:50:01 -0800 (PST) Received: by mail-ea0-f180.google.com with SMTP id o10so1984071eaj.25 for ; Mon, 27 Jan 2014 12:49:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=from:to:cc:subject:date:message-id:mime-version:content-type :content-transfer-encoding; bh=vgdL7jOrq2ExIJWaXP8hE7RcwJ1BE4ncusBp9n5nAzQ=; b=jDIfHl13hRIeeSBKJQ1aQZ7MQ5TyYOJRspmdnANAIy4JENNk3IAeZSbJgqgllxu3/h VLf6rLoGv72Odttoq9xNvfvzpgzQM7CKXRUt7rmN5mXID28ff6opHk2xzdlFlZWsLV1M aJDR1fkZCXyLLqwiCdKdlgJ+NSkEHl5r1dWjA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-type:content-transfer-encoding; bh=vgdL7jOrq2ExIJWaXP8hE7RcwJ1BE4ncusBp9n5nAzQ=; b=ShZZwABRY+Hy59UTXo/yPag2q5VItsHPNqNKQ3Qizu4tpHi+zEYzsq1hA447+rhplg U2gCVpMWtoW8Qb10OCHLfnYYBmK1nIbEy0k8ilZOeSS9B8VVGggPOtrrAJ+r4lr/txR3 kw+g5C+JcK6NBdpVt/DbfygXx6kZAarv4N3NwnFj7SsxO0zC2boqijabzj/oinW75CaO Cv1ElkxffGfMJJB4yABiEWfnJj1SusFc7xdgf1FVOyn3Fz/Ab1YJxzvYuzYSVIHZYTW5 OScrfGBQFEqP+JC1b3hBm6ezfJYg/3H6kZWPK9BKIiyFoMisJPOoIKkRx+c6YQyhaJIq BFIg== X-Gm-Message-State: ALoCoQkpMucVhAdxyM/5mSkODgh2+sfw9LeRDYJdYucAYr9XF1dfmCWBK6QBgbCsUnAQySmBCfJ0 X-Received: by 10.14.177.200 with SMTP id d48mr27018308eem.8.1390855798149; Mon, 27 Jan 2014 12:49:58 -0800 (PST) Received: from phenom.ffwll.local (84-73-67-144.dclient.hispeed.ch. [84.73.67.144]) by mx.google.com with ESMTPSA id z49sm46744998eeo.10.2014.01.27.12.49.55 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 27 Jan 2014 12:49:56 -0800 (PST) From: Daniel Vetter To: Intel Graphics Development Date: Mon, 27 Jan 2014 21:49:47 +0100 Message-Id: <1390855788-20422-1-git-send-email-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 1.8.5.2 MIME-Version: 1.0 Cc: Daniel Vetter Subject: [Intel-gfx] [PATCH 1/2] drm/i915: Don't drop pinned fences X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , 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-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Userspace can currently provoke this when e.g. trying to use a pinned scanout as a cursor or overlay target. Later on that might lead to some fun fence pin count mayhem. Spurred by Ville's report that something goes wrong here and originally I've thought that this might slip through the pwrite gtt fastpath. But that one checks of obj tiling, so should be ok. But one thing that _does_ blow up is the vma unbinding with more than one address space. The next patch will fix this. Cc: Ville Syrjälä Signed-off-by: Daniel Vetter Tested-by: Ville Syrjälä --- drivers/gpu/drm/i915/i915_gem.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 05e79fa02db2..9559d33cd94b 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -3058,6 +3058,9 @@ i915_gem_object_put_fence(struct drm_i915_gem_object *obj) fence = &dev_priv->fence_regs[obj->fence_reg]; + if (fence->pin_count) + return -EBUSY; + i915_gem_object_fence_lost(obj); i915_gem_object_update_fence(obj, fence, false);