From patchwork Mon Nov 23 09:33:00 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Vetter X-Patchwork-Id: 7679151 Return-Path: X-Original-To: patchwork-dri-devel@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 F23D0BF90C for ; Mon, 23 Nov 2015 09:34:06 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 3D0D420445 for ; Mon, 23 Nov 2015 09:34:06 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id EC0CD20623 for ; Mon, 23 Nov 2015 09:34:04 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 38FF27211C; Mon, 23 Nov 2015 01:34:03 -0800 (PST) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-wm0-f41.google.com (mail-wm0-f41.google.com [74.125.82.41]) by gabe.freedesktop.org (Postfix) with ESMTPS id EFCCB72102 for ; Mon, 23 Nov 2015 01:33:40 -0800 (PST) Received: by wmww144 with SMTP id w144so87854756wmw.1 for ; Mon, 23 Nov 2015 01:33:39 -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:in-reply-to:references; bh=xvVOOTA8p9TrSVbzpsptWp4zv81iWVKbiA1njJZK2oI=; b=GcA4Idxl8a46yoF5rLNKi6J0x4hIMslraG0HqPef3f0SrrEBL94h3X5xRAIlWL6CrN b6YUb/CylGdgJhZ7rrC9PlUXqQdePHmmC4qAn5dMnO8y2GiOZXcZC+WrXrTUunN0N7/C TtCjISHb7lPWU4oTrs0NDp5o3XTw2ksylpemo= 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:in-reply-to :references; bh=xvVOOTA8p9TrSVbzpsptWp4zv81iWVKbiA1njJZK2oI=; b=GJGtx+mrGjDgLAT0BYcQ60ovX98QBwg6uRoRMxZiJHOdG4ARwfskIo9TtpdNAkcCGo t9vYWVtOYSYJnM/H5HeXI+eCN0EXPZmvTpziXopS24FD2OZIeYvSP2Frtp5mz1xGNuSN DomXJJK8AceBtM5nGwmehex/n1vLRx+q0Y1EsJInw5dTQJOEDEjJcbM0xN6+MBQDVJds BcS3ztmAmOJL62fUOhfbaZOjrTDmkm8xneiB7Q2q3SJZtOAoDB1SX6y0AysHJ7czLhTE reZg5+Q6naJNmfAZoG37vkHLqMNFi/V6hi3CemWG21mCfqb/OVeLkSy7Mmh9qvNslahj 9HUA== X-Gm-Message-State: ALoCoQlRA+qe+uSE2Gugmn3s+g6Wl3+B4VLHY9FYF0jy+ghR2sNnhes4Lc/Rpbe8+KyPHxSdP+LK X-Received: by 10.194.109.169 with SMTP id ht9mr5809623wjb.13.1448271219742; Mon, 23 Nov 2015 01:33:39 -0800 (PST) Received: from phenom.ffwll.local (212-51-149-109.fiber7.init7.net. [212.51.149.109]) by smtp.gmail.com with ESMTPSA id pn6sm12332758wjb.15.2015.11.23.01.33.38 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 23 Nov 2015 01:33:39 -0800 (PST) From: Daniel Vetter To: DRI Development Subject: [PATCH 27/29] drm/vgem: Move get_pages to gem_create Date: Mon, 23 Nov 2015 10:33:00 +0100 Message-Id: <1448271183-20523-28-git-send-email-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.5.1 In-Reply-To: <1448271183-20523-1-git-send-email-daniel.vetter@ffwll.ch> References: <1448271183-20523-1-git-send-email-daniel.vetter@ffwll.ch> Cc: Daniel Vetter , Intel Graphics Development , Daniel Vetter X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Spam-Status: No, score=-4.7 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 vgem doesn't have a shrinker or anything like that and drops backing storage only at object_free time. There's no use in trying to be clever and allocating backing storage delayed, it only causes trouble by requiring locking. Instead grab pages when we allocate the object right away. Signed-off-by: Daniel Vetter --- drivers/gpu/drm/vgem/vgem_drv.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/vgem/vgem_drv.c b/drivers/gpu/drm/vgem/vgem_drv.c index 63026d4324ad..1a609347236b 100644 --- a/drivers/gpu/drm/vgem/vgem_drv.c +++ b/drivers/gpu/drm/vgem/vgem_drv.c @@ -154,6 +154,10 @@ static struct drm_gem_object *vgem_gem_create(struct drm_device *dev, if (err) goto out; + ret = vgem_gem_get_pages(to_vgem_bo(obj)); + if (ret) + goto out; + err = drm_gem_handle_create(file, gem_object, handle); if (err) goto handle_out; @@ -216,16 +220,8 @@ int vgem_gem_dumb_map(struct drm_file *file, struct drm_device *dev, obj->filp->private_data = obj; - ret = vgem_gem_get_pages(to_vgem_bo(obj)); - if (ret) - goto fail_get_pages; - *offset = drm_vma_node_offset_addr(&obj->vma_node); - goto unref; - -fail_get_pages: - drm_gem_free_mmap_offset(obj); unref: drm_gem_object_unreference(obj); unlock: