From patchwork Mon Dec 14 16:23:40 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Ville Syrjala X-Patchwork-Id: 7845701 Return-Path: X-Original-To: patchwork-intel-gfx@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 4E5FABEEE1 for ; Mon, 14 Dec 2015 16:24:03 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 7AE8C203B4 for ; Mon, 14 Dec 2015 16:24:02 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id 401962009C for ; Mon, 14 Dec 2015 16:23:58 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id BBB206E04B; Mon, 14 Dec 2015 08:23:57 -0800 (PST) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id B1E2B6E04B for ; Mon, 14 Dec 2015 08:23:56 -0800 (PST) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga103.jf.intel.com with ESMTP; 14 Dec 2015 08:23:56 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.20,427,1444719600"; d="scan'208";a="871208620" Received: from stinkbox.fi.intel.com (HELO stinkbox) ([10.237.72.174]) by orsmga002.jf.intel.com with SMTP; 14 Dec 2015 08:23:53 -0800 Received: by stinkbox (sSMTP sendmail emulation); Mon, 14 Dec 2015 18:23:52 +0200 From: ville.syrjala@linux.intel.com To: intel-gfx@lists.freedesktop.org Date: Mon, 14 Dec 2015 18:23:40 +0200 Message-Id: <1450110229-30450-2-git-send-email-ville.syrjala@linux.intel.com> X-Mailer: git-send-email 2.4.10 In-Reply-To: <1450110229-30450-1-git-send-email-ville.syrjala@linux.intel.com> References: <1450110229-30450-1-git-send-email-ville.syrjala@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 01/10] drm/i915: Release mmaps on partial ggtt vma unbind X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, T_RP_MATCHES_RCVD, 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 From: Ville Syrjälä When a partial ggtt vma gets evicted, we need to zap any CPU mapping to said vma as well. Currently we zap the mappings only when the normal gtt vma gets evicted, but for partial vmas we leave behind stale CPU mappins. And so, if something else gets bound into the same gtt address range, any userspace access into the relevant virtual addresses will go astray. I didn't find anything really suitable in the mm code to zap just the needed mappings (we'd need to know the right CPU side mm and vma etc.), so let's just call i915_gem_release_mmap() for now. Cc: Joonas Lahtinen Cc: Tvrtko Ursulin Cc: Chris Wilson Testcase: igt/gem_mmap_gtt Fixes: c5ad54c ("drm/i915: Use partial view in mmap fault handler") Signed-off-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 66b170598ae6..c29b929f796c 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -3264,6 +3264,9 @@ static int __i915_vma_unbind(struct i915_vma *vma, bool wait) ret = i915_gem_object_put_fence(obj); if (ret) return ret; + } else if (i915_is_ggtt(vma->vm) && + vma->ggtt_view.type == I915_GGTT_VIEW_PARTIAL) { + i915_gem_release_mmap(obj); } trace_i915_vma_unbind(vma);