From patchwork Thu May 19 09:54:58 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Christian_K=C3=B6nig?= X-Patchwork-Id: 12854732 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id C67B7C433F5 for ; Thu, 19 May 2022 09:55:14 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id E78F811B323; Thu, 19 May 2022 09:55:13 +0000 (UTC) Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com [IPv6:2a00:1450:4864:20::529]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4427311B323; Thu, 19 May 2022 09:55:13 +0000 (UTC) Received: by mail-ed1-x529.google.com with SMTP id fd25so6345248edb.3; Thu, 19 May 2022 02:55:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=8R40cOPvMPMZYsuXVKC3tvSzxBJxpU4HfejzWEcU2zU=; b=oUIogAySYA7T/2pLHotJv6RdNzthH49GrSW4T5LiNzinsE+AFx+4VsdNS/Jqrgg3LA 6SGuSkbTLVmGaDAdKk6uIqhBPHqqBTMyMxccoEesgI/6Y0lC8MR8UCMefCKO06nhlxG5 7pGHJ4dflEraoVvFR5WN5zUVXljs7HJMwo3Mx2bGTdL+CcrKeRjwj9lW9ofXTEF1s/aE Ww3RXWHzFeQfIseeDBPs8JQOJjdQKqyvDIoCMpMGGe0mAigid99ZJ09mPrV+287th3+q g22En8dvO4i8ONhcm0EWgRKHd9lqmW8Dpqnbaf0dG4BNneqwnbPDLVfrDYCTc3jdStZv kz5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=8R40cOPvMPMZYsuXVKC3tvSzxBJxpU4HfejzWEcU2zU=; b=WQsHlbjxO6D/kECZxCl4Uf5DM1b4C8U0LtVlqgH/mH8/kzJhN/Rmqjo1IKvxgCNM9u i1/BLewSk5A19O8V8gAg8Awh3a7iIX8WCuKhQ5495eOyko+Udo6h7UbiVhWu9LM4IgT0 K/GmrI1kFfAlD0FMqMBtwmiYzsxOQP0qabhqwSGv4JpsVwkazbDR//KyiASuR4jBmzlE yyrrM1kWDUXoM03bzX5fqH7QdhBpdzHq4HGEBtYFpvpUnq2aJAO/kypS+7NYfJXrA9uc YXafE06bUNjF9blGXAfg0GfLfjX1EI/G28l3ZubEJwIw8FozbfcHp7Ip4yVcCHIjGJz3 Pb2w== X-Gm-Message-State: AOAM533qNKlm8wG3fHnmS+kcE9ULxyxSDlMQ/seh2A3n+Sz6n/vZuWjL gQK/p26NcNZAKsQ47Nmycc9geHWxyPg= X-Google-Smtp-Source: ABdhPJyEylf70dnIj2G+McY0mpT4ug4SyP29t+o24SDEVRlPnIVV1YNpzCO9og1YWBumyZ8B5i9aeA== X-Received: by 2002:a05:6402:2553:b0:42a:ef31:4444 with SMTP id l19-20020a056402255300b0042aef314444mr4395983edb.46.1652954111829; Thu, 19 May 2022 02:55:11 -0700 (PDT) Received: from able.fritz.box (p57b0bdaa.dip0.t-ipconnect.de. [87.176.189.170]) by smtp.gmail.com with ESMTPSA id y6-20020a170906518600b006fe9c65ffb8sm388267ejk.92.2022.05.19.02.55.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 May 2022 02:55:11 -0700 (PDT) From: " =?utf-8?q?Christian_K=C3=B6nig?= " X-Google-Original-From: =?utf-8?q?Christian_K=C3=B6nig?= To: intel-gfx@lists.freedesktop.org Subject: [PATCH 01/11] drm/radeon: switch over to ttm_bo_init_reserved Date: Thu, 19 May 2022 11:54:58 +0200 Message-Id: <20220519095508.115203-2-christian.koenig@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220519095508.115203-1-christian.koenig@amd.com> References: <20220519095508.115203-1-christian.koenig@amd.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: matthew.william.auld@gmail.com, =?utf-8?q?Christian_K=C3=B6nig?= , dri-devel@lists.freedesktop.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Use the new interface instead. Signed-off-by: Christian König --- drivers/gpu/drm/radeon/radeon_object.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c index 6c4a6802ca96..1d414ff4ab0c 100644 --- a/drivers/gpu/drm/radeon/radeon_object.c +++ b/drivers/gpu/drm/radeon/radeon_object.c @@ -133,9 +133,12 @@ int radeon_bo_create(struct radeon_device *rdev, struct dma_resv *resv, struct radeon_bo **bo_ptr) { - struct radeon_bo *bo; - enum ttm_bo_type type; unsigned long page_align = roundup(byte_align, PAGE_SIZE) >> PAGE_SHIFT; + + /* Kernel allocation are uninterruptible */ + struct ttm_operation_ctx ctx = { !kernel, false }; + enum ttm_bo_type type; + struct radeon_bo *bo; int r; size = ALIGN(size, PAGE_SIZE); @@ -200,11 +203,13 @@ int radeon_bo_create(struct radeon_device *rdev, #endif radeon_ttm_placement_from_domain(bo, domain); - /* Kernel allocation are uninterruptible */ down_read(&rdev->pm.mclk_lock); - r = ttm_bo_init(&rdev->mman.bdev, &bo->tbo, size, type, - &bo->placement, page_align, !kernel, sg, resv, - &radeon_ttm_bo_destroy); + r = ttm_bo_init_reserved(&rdev->mman.bdev, &bo->tbo, size, type, + &bo->placement, page_align, &ctx, sg, resv, + &radeon_ttm_bo_destroy); + if (!r) + ttm_bo_unreserve(&bo->tbo); + up_read(&rdev->pm.mclk_lock); if (unlikely(r != 0)) { return r; From patchwork Thu May 19 09:54:59 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Christian_K=C3=B6nig?= X-Patchwork-Id: 12854740 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id BB2D8C433EF for ; Thu, 19 May 2022 09:56:00 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 8C5CC11B342; Thu, 19 May 2022 09:55:56 +0000 (UTC) Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com [IPv6:2a00:1450:4864:20::62b]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5224711B324; Thu, 19 May 2022 09:55:14 +0000 (UTC) Received: by mail-ej1-x62b.google.com with SMTP id m20so8847379ejj.10; Thu, 19 May 2022 02:55:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=pKWPsy6mmoPtYTTh5dk7m+bzljmJqMD/312eYbn5Y/Y=; b=D0SyLGO4vwRmpRAK6xXID2oI2Eu8tR6XxTjyQmNnuOIjhKkcwFqznUnzVIv98FOy2h AjWRcJWZxMyiLDLx55Jxl5BY96Vl7zaAHWSfBKV/lT21RgplF5PIJv2tQoIu0HlhbSmb 4k855PY8+jdwFc4Et6U7A8SbLiW/pHlSUv6DG+E0K6Qpil3CLhG4TacsGCcqYAOZfxni 7eVIm3hMCQ/J8TnQgjfVsrBozZZUKVNLpt/oDZ913W+O9NTTISeqX5T37B9zAKw+8Wf3 47OvikDb5jGmonFgU4f+D2l6onvDirHFRRtCkyhLpOhac9FWmW+egfUD1HreUMASPbZt ArMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=pKWPsy6mmoPtYTTh5dk7m+bzljmJqMD/312eYbn5Y/Y=; b=jAiPts0Ydb5B6gNZYEfeDs7Rsu8UHPWmxJWp8Mn4xreiymy0h099sqZ1D5dpN/E1kc KbRmIR+6aOaYi3D3sU4OH7b9jLghd50dUpXStxORDlIuI70zRpuwtW8e34iZJCcbjjiT VpZYmLXRKXBjceUhamYoH5s1dEl1P3GxI0gxnf8jhF9FCWQI+IyxratFlaitn/o+vSi0 ZfKgyJ0b+DVfV7I0Q0MQy/teiezBob9I6Oj68XaCfd8aQurmELn9610rZSvs47QL3XQI rCTwiTTVdjzpZ3C0met80GpXNiVyxY7AmZkCfPHcgGCfOxhMpEvB0GdNiY2CyGFGrpeD OGWg== X-Gm-Message-State: AOAM533vkUCQ09bRUn5wyMWajFKUjrawRQapU/drSeAYHLnAd2gMlalR G3PJBFmwkMJjaPQIbN0xl8jnIfpVg/M= X-Google-Smtp-Source: ABdhPJzMeBO4AYCN3uZtNMAua2POrzY0kCHp307EaGsIv+xX11AL6o6PLBjSKvmCVQ6f/FOKFgUKfg== X-Received: by 2002:a17:907:c24:b0:6f4:d6f2:9f6c with SMTP id ga36-20020a1709070c2400b006f4d6f29f6cmr3318900ejc.539.1652954112793; Thu, 19 May 2022 02:55:12 -0700 (PDT) Received: from able.fritz.box (p57b0bdaa.dip0.t-ipconnect.de. [87.176.189.170]) by smtp.gmail.com with ESMTPSA id y6-20020a170906518600b006fe9c65ffb8sm388267ejk.92.2022.05.19.02.55.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 May 2022 02:55:12 -0700 (PDT) From: " =?utf-8?q?Christian_K=C3=B6nig?= " X-Google-Original-From: =?utf-8?q?Christian_K=C3=B6nig?= To: intel-gfx@lists.freedesktop.org Subject: [PATCH 02/11] drm/nouveau: switch over to ttm_bo_init_reserved Date: Thu, 19 May 2022 11:54:59 +0200 Message-Id: <20220519095508.115203-3-christian.koenig@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220519095508.115203-1-christian.koenig@amd.com> References: <20220519095508.115203-1-christian.koenig@amd.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: matthew.william.auld@gmail.com, =?utf-8?q?Christian_K=C3=B6nig?= , dri-devel@lists.freedesktop.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Use the new interface instead. Signed-off-by: Christian König --- drivers/gpu/drm/nouveau/nouveau_bo.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c index 05076e530e7d..858b9382036c 100644 --- a/drivers/gpu/drm/nouveau/nouveau_bo.c +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c @@ -302,19 +302,23 @@ nouveau_bo_init(struct nouveau_bo *nvbo, u64 size, int align, u32 domain, struct sg_table *sg, struct dma_resv *robj) { int type = sg ? ttm_bo_type_sg : ttm_bo_type_device; + struct ttm_operation_ctx ctx = { false, false }; int ret; nouveau_bo_placement_set(nvbo, domain, 0); INIT_LIST_HEAD(&nvbo->io_reserve_lru); - ret = ttm_bo_init(nvbo->bo.bdev, &nvbo->bo, size, type, - &nvbo->placement, align >> PAGE_SHIFT, false, sg, - robj, nouveau_bo_del_ttm); + ret = ttm_bo_init_reserved(nvbo->bo.bdev, &nvbo->bo, size, type, + &nvbo->placement, align >> PAGE_SHIFT, &ctx, + sg, robj, nouveau_bo_del_ttm); if (ret) { /* ttm will call nouveau_bo_del_ttm if it fails.. */ return ret; } + if (!robj) + ttm_bo_unreserve(&nvbo->bo); + return 0; } From patchwork Thu May 19 09:55:00 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Christian_K=C3=B6nig?= X-Patchwork-Id: 12854741 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 87E70C433EF for ; Thu, 19 May 2022 09:56:02 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 6BD0611B33E; Thu, 19 May 2022 09:55:56 +0000 (UTC) Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com [IPv6:2a00:1450:4864:20::532]) by gabe.freedesktop.org (Postfix) with ESMTPS id 32E4511B32A; Thu, 19 May 2022 09:55:15 +0000 (UTC) Received: by mail-ed1-x532.google.com with SMTP id c10so6358541edr.2; Thu, 19 May 2022 02:55:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=IB7d24hbSCy3UNTFAJGBnnzly76CJzsYCB4qu4XP4Tc=; b=MGb/YcG4zrRDRdKpdsAHAjwwoUOWj/k2ujH5lQ9W/ufOee3vAswJPvEZYv0iO3iDKS rGblyFcndgR5nf9X20gts3gilkFzX9jcxva8opb3ifgB3/Uq2lSOXz++6kFT2W9Olvsx 7+wjTy7EfMJHxazu/uiqA+4GS7a7JlgModnBjtokqbgc0lNQ0O/HeCHQ08pKGzghrMdd JT3YVkz0hKSTEeJtFiz7TAKhUOF8k4AP8I/7rG3iYxlxmu6AY5PGkP3bgaMBo+rq9lam /SpESHH1pylsEHL1h5oh1GgTjNawV70UYmyec0gV4o54AwpW/FJi6JsLWno0L4jH5m6X gviw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=IB7d24hbSCy3UNTFAJGBnnzly76CJzsYCB4qu4XP4Tc=; b=5rom4YcpxRN6D/l+4hSbVbZOV3W7bPdoJXycPALGDOYhEoOaX02y/XK5GEIV9DMTxr A3Qi2a30tNJrtxt+RIcb0YP9e55aNmGKdfHb/GONKxPM6uKxWa2h9RrMArFpbMD9XsXt 6hoMn9qfiILbx2E9tkUqssfa/1maknuhKAFOZC+onAQ67DUsb4hk/OAB/KI4EuSAO86G Ue3/kzhA3dabX9vv2Z6AibKdsjcV/Gqr/wr/Kr1VmLXt+0tKk1OOL+EJiUOXTFNvK5Yw GkSXEIefNOyxcgMubDox908W98P+WKjrTYsmd+dKcKOm8+ssV71j9uZ9+ZgNVNsCb9Hd Ll5A== X-Gm-Message-State: AOAM533IzBGM0RFGxz5RBMDfHiVDj9eEM44F4p+s04XKTPrkPO4RamXU Z+5LmqjG4mW/3HD3a+0rvtUm5LnoIQo= X-Google-Smtp-Source: ABdhPJzvj0hrRLgWewqcnZ8VfEvjMVNtyfXXoJmWvGbz0EQU7dzzkkokrjaWPdD2vkSMA+rqSRFG4w== X-Received: by 2002:a05:6402:363:b0:42a:aa92:c302 with SMTP id s3-20020a056402036300b0042aaa92c302mr4466546edw.386.1652954113680; Thu, 19 May 2022 02:55:13 -0700 (PDT) Received: from able.fritz.box (p57b0bdaa.dip0.t-ipconnect.de. [87.176.189.170]) by smtp.gmail.com with ESMTPSA id y6-20020a170906518600b006fe9c65ffb8sm388267ejk.92.2022.05.19.02.55.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 May 2022 02:55:13 -0700 (PDT) From: " =?utf-8?q?Christian_K=C3=B6nig?= " X-Google-Original-From: =?utf-8?q?Christian_K=C3=B6nig?= To: intel-gfx@lists.freedesktop.org Subject: [PATCH 03/11] drm/vram-helper: switch over to ttm_bo_init_reserved Date: Thu, 19 May 2022 11:55:00 +0200 Message-Id: <20220519095508.115203-4-christian.koenig@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220519095508.115203-1-christian.koenig@amd.com> References: <20220519095508.115203-1-christian.koenig@amd.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: matthew.william.auld@gmail.com, =?utf-8?q?Christian_K=C3=B6nig?= , dri-devel@lists.freedesktop.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Use the new interface instead. Signed-off-by: Christian König --- drivers/gpu/drm/drm_gem_vram_helper.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/drm_gem_vram_helper.c b/drivers/gpu/drm/drm_gem_vram_helper.c index 123045b58fec..7449cbc2f925 100644 --- a/drivers/gpu/drm/drm_gem_vram_helper.c +++ b/drivers/gpu/drm/drm_gem_vram_helper.c @@ -186,6 +186,7 @@ struct drm_gem_vram_object *drm_gem_vram_create(struct drm_device *dev, size_t size, unsigned long pg_align) { + struct ttm_operation_ctx ctx = { false, false }; struct drm_gem_vram_object *gbo; struct drm_gem_object *gem; struct drm_vram_mm *vmm = dev->vram_mm; @@ -225,12 +226,13 @@ struct drm_gem_vram_object *drm_gem_vram_create(struct drm_device *dev, * A failing ttm_bo_init will call ttm_buffer_object_destroy * to release gbo->bo.base and kfree gbo. */ - ret = ttm_bo_init(bdev, &gbo->bo, size, ttm_bo_type_device, - &gbo->placement, pg_align, false, NULL, NULL, - ttm_buffer_object_destroy); - if (ret) + ret = ttm_bo_init_reserved(bdev, &gbo->bo, size, ttm_bo_type_device, + &gbo->placement, pg_align, &ctx, NULL, NULL, + ttm_buffer_object_destroy); + if (ret) return ERR_PTR(ret); + ttm_bo_unreserve(&gbo->bo); return gbo; } EXPORT_SYMBOL(drm_gem_vram_create); From patchwork Thu May 19 09:55:01 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Christian_K=C3=B6nig?= X-Patchwork-Id: 12854733 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 1B772C433F5 for ; Thu, 19 May 2022 09:55:28 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 07C8A11B321; Thu, 19 May 2022 09:55:27 +0000 (UTC) Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com [IPv6:2a00:1450:4864:20::634]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1CE2F11B330; Thu, 19 May 2022 09:55:15 +0000 (UTC) Received: by mail-ej1-x634.google.com with SMTP id gi33so397580ejc.3; Thu, 19 May 2022 02:55:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=QRTohIh/SLP7A2b6PbdykDkDugeXiT078coAsmgcAFE=; b=VizyEkSp0aHl8tiiASc7hW3lQFDVEbNgbI/uV4bTHzxu/Haqt6WVA41p6cUYbt89ao Gdujg3gqABKy91Qz1tXUwC3mZXMz7NDwVWEpPUOg9PhovAZ9lscw3+fyPw1SRt5X9wNz qg3aN5R6p8fNsGP6Pidwip5MMe1CFPdNXpy6r0R8Kdg8vdF215/12DZYEAZbgBZaldO5 bR4walEpDmhjy9Yu11Xsf2woP91Y/zeTuuJAQjD4iaLn2JRtpFAJO/CPnvvmyT3A0ZRg IBB/V8TACmSHNMECccTCbhTIlR7VUU4CTShoA1m4SkNuSvuR6dCen24NxhYczupsDQdq takw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=QRTohIh/SLP7A2b6PbdykDkDugeXiT078coAsmgcAFE=; b=8Mf7+ivYe6R1TehF9A+kV7CmdzUow/g9w7oCtoqG9Z1g3NaRHHOxyvxO3zY4cYExSX ckgtgt5VRZ8a7Vz5tGEO6G1ARVdf3Qp8XQH+RGpen+n5GIxqYxevQJsJjut/6ieTVnyD RoYKy+aOLfGnysJuM/MYa8pMO+bYSVhPcsxEiJwwLoAlKjm8rvtotdp7CMyoWriTUACm p5iFs8c55kg2AAlv4z+KuT+7tzGlx1Vp77M0AxNDT9SuJ75wFKlToVvEmt5iz9xHUqD+ Vcyehh5Fe+YSnHvZ56r6nlu0EkZ9yle7azi3xmE9K1E/gxBkuajOfF6kqy7TIv0jptCg fY+g== X-Gm-Message-State: AOAM533GRBoJ2cQ/3b0BPOxQd/9vs9cKYWAoKrfUfHyOJ5u5eD0c2v5U h4XUqHvBsDos1fLHYaqPb5P9Na6Orw0= X-Google-Smtp-Source: ABdhPJzYvm1Jt4ugctUxBNvBvaisZp0OjdQPbo+Sw84lIZ/Agf1JP2QTFDlRe2Zr615q5oN6jXnj7g== X-Received: by 2002:a17:907:7dab:b0:6f4:6650:395d with SMTP id oz43-20020a1709077dab00b006f46650395dmr3396918ejc.82.1652954114733; Thu, 19 May 2022 02:55:14 -0700 (PDT) Received: from able.fritz.box (p57b0bdaa.dip0.t-ipconnect.de. [87.176.189.170]) by smtp.gmail.com with ESMTPSA id y6-20020a170906518600b006fe9c65ffb8sm388267ejk.92.2022.05.19.02.55.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 May 2022 02:55:14 -0700 (PDT) From: " =?utf-8?q?Christian_K=C3=B6nig?= " X-Google-Original-From: =?utf-8?q?Christian_K=C3=B6nig?= To: intel-gfx@lists.freedesktop.org Subject: [PATCH 04/11] drm/ttm: move default BO destructor into VMWGFX Date: Thu, 19 May 2022 11:55:01 +0200 Message-Id: <20220519095508.115203-5-christian.koenig@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220519095508.115203-1-christian.koenig@amd.com> References: <20220519095508.115203-1-christian.koenig@amd.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: matthew.william.auld@gmail.com, =?utf-8?q?Christian_K=C3=B6nig?= , dri-devel@lists.freedesktop.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" It's the only driver using this. Signed-off-by: Christian König --- drivers/gpu/drm/vmwgfx/vmwgfx_bo.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_bo.c b/drivers/gpu/drm/vmwgfx/vmwgfx_bo.c index 85a66014c2b6..c4f376d5e1d0 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_bo.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_bo.c @@ -462,6 +462,9 @@ int vmw_bo_create(struct vmw_private *vmw, return -ENOMEM; } + if (!bo_free) + bo_free = vmw_bo_default_destroy; + ret = vmw_bo_init(vmw, *p_bo, size, placement, interruptible, pin, bo_free); From patchwork Thu May 19 09:55:02 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Christian_K=C3=B6nig?= X-Patchwork-Id: 12854734 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 148BDC433F5 for ; Thu, 19 May 2022 09:55:30 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id BF15D11B334; Thu, 19 May 2022 09:55:27 +0000 (UTC) Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com [IPv6:2a00:1450:4864:20::530]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2B1D411B32E; Thu, 19 May 2022 09:55:17 +0000 (UTC) Received: by mail-ed1-x530.google.com with SMTP id i40so6317663eda.7; Thu, 19 May 2022 02:55:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=r7VxVBvOC94cVM2gquLnP1BAr+qI3xEHGhn2yzw1qu8=; b=qnhrNYAAuw+tLbxFLnmBSlAaFMW/7kcHttQ4UAlijZlPcW25yuav2SLuxBHE+QCimQ 3NTWhX7swi2U4EBvrmmkueTSorVjbLBP0WtN366YDJXlbIPGk+D2/H8C0Ib7t55S7APk qSgj6j5WCMvo2LAihXO8Vm0UtSITm0571JsFzxXak4nQJR8ftjxh5r8DHDTpQz8PIBfh /7eoXlhMFnZLfxGi1dr8Eghs2x2rHasuj3sQCE5xB+m412l8qC/c5uiqATAe22sK8lJV ACG9w+T4XRXi6FBh+gW+09DS8dBfytGRL8nTQSC3ffVOGYPUuGwdnjkWkiV4Pe9s79Mh BhWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=r7VxVBvOC94cVM2gquLnP1BAr+qI3xEHGhn2yzw1qu8=; b=bA7MOK6mRKsrB+Q5Z0iG23ylfFyfa9V9s9TAfBipm5ScKV/YIuTUUV74t2kxMOXwap /WNxlEGboCpW7bWdzF6/O/Oq62MEt0Y9KJPXgl9QX5wjktU+kD8+hjAU6dE699DeRJ6r 9cRGuUd+qZVNpjl1sXs8zuyE/QlvdzPletxSGF9YUJaBijubw5068K+9TupfSJo1PCy8 3pUKSsR1G+PGHe1MFh9cEJjKez7vtG+GmSxYMTG+0mOUFfbBkteoRO08BL3lm+xKW3Y8 T/XbSjC8BDIuQrD97PMizKJ6nzp3mar87wLph4wVAk7ImX2chw4wzHFo/k+41qhFiA2g M3Ug== X-Gm-Message-State: AOAM533w/fkfzkzW3Q0ycJGaqcH/ngrV9IX7uGFdfNSVWa55OHhof0xN d5iBH3tqZBn2JBAx6TazJGijlvc0wdU= X-Google-Smtp-Source: ABdhPJxQso22PBTYmRRkA892GOrnHiK2opNPh8eqRGcpRuQSAYt91ZDQMub073PbVP9Aikcy1Cutzw== X-Received: by 2002:a05:6402:f09:b0:42a:be2f:ceeb with SMTP id i9-20020a0564020f0900b0042abe2fceebmr4436820eda.110.1652954115682; Thu, 19 May 2022 02:55:15 -0700 (PDT) Received: from able.fritz.box (p57b0bdaa.dip0.t-ipconnect.de. [87.176.189.170]) by smtp.gmail.com with ESMTPSA id y6-20020a170906518600b006fe9c65ffb8sm388267ejk.92.2022.05.19.02.55.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 May 2022 02:55:15 -0700 (PDT) From: " =?utf-8?q?Christian_K=C3=B6nig?= " X-Google-Original-From: =?utf-8?q?Christian_K=C3=B6nig?= To: intel-gfx@lists.freedesktop.org Subject: [PATCH 05/11] drm/ttm: drop ttm_bo_init Date: Thu, 19 May 2022 11:55:02 +0200 Message-Id: <20220519095508.115203-6-christian.koenig@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220519095508.115203-1-christian.koenig@amd.com> References: <20220519095508.115203-1-christian.koenig@amd.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: matthew.william.auld@gmail.com, =?utf-8?q?Christian_K=C3=B6nig?= , dri-devel@lists.freedesktop.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Not used any more. Signed-off-by: Christian König --- drivers/gpu/drm/ttm/ttm_bo.c | 26 --------------------- include/drm/ttm/ttm_bo_api.h | 44 ------------------------------------ 2 files changed, 70 deletions(-) diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c index 296af2b89951..e652055b5175 100644 --- a/drivers/gpu/drm/ttm/ttm_bo.c +++ b/drivers/gpu/drm/ttm/ttm_bo.c @@ -985,32 +985,6 @@ int ttm_bo_init_reserved(struct ttm_device *bdev, } EXPORT_SYMBOL(ttm_bo_init_reserved); -int ttm_bo_init(struct ttm_device *bdev, - struct ttm_buffer_object *bo, - size_t size, - enum ttm_bo_type type, - struct ttm_placement *placement, - uint32_t page_alignment, - bool interruptible, - struct sg_table *sg, - struct dma_resv *resv, - void (*destroy) (struct ttm_buffer_object *)) -{ - struct ttm_operation_ctx ctx = { interruptible, false }; - int ret; - - ret = ttm_bo_init_reserved(bdev, bo, size, type, placement, - page_alignment, &ctx, sg, resv, destroy); - if (ret) - return ret; - - if (!resv) - ttm_bo_unreserve(bo); - - return 0; -} -EXPORT_SYMBOL(ttm_bo_init); - /* * buffer object vm functions. */ diff --git a/include/drm/ttm/ttm_bo_api.h b/include/drm/ttm/ttm_bo_api.h index 2d524f8b0802..29384e2cb704 100644 --- a/include/drm/ttm/ttm_bo_api.h +++ b/include/drm/ttm/ttm_bo_api.h @@ -361,50 +361,6 @@ int ttm_bo_init_reserved(struct ttm_device *bdev, struct sg_table *sg, struct dma_resv *resv, void (*destroy) (struct ttm_buffer_object *)); -/** - * ttm_bo_init - * - * @bdev: Pointer to a ttm_device struct. - * @bo: Pointer to a ttm_buffer_object to be initialized. - * @size: Requested size of buffer object. - * @type: Requested type of buffer object. - * @placement: Initial placement for buffer object. - * @page_alignment: Data alignment in pages. - * @interruptible: If needing to sleep to wait for GPU resources, - * sleep interruptible. - * pinned in physical memory. If this behaviour is not desired, this member - * holds a pointer to a persistent shmem object. Typically, this would - * point to the shmem object backing a GEM object if TTM is used to back a - * GEM user interface. - * @sg: Scatter-gather table. - * @resv: Pointer to a dma_resv, or NULL to let ttm allocate one. - * @destroy: Destroy function. Use NULL for kfree(). - * - * This function initializes a pre-allocated struct ttm_buffer_object. - * As this object may be part of a larger structure, this function, - * together with the @destroy function, - * enables driver-specific objects derived from a ttm_buffer_object. - * - * On successful return, the caller owns an object kref to @bo. The kref and - * list_kref are usually set to 1, but note that in some situations, other - * tasks may already be holding references to @bo as well. - * - * If a failure occurs, the function will call the @destroy function, or - * kfree() if @destroy is NULL. Thus, after a failure, dereferencing @bo is - * illegal and will likely cause memory corruption. - * - * Returns - * -ENOMEM: Out of memory. - * -EINVAL: Invalid placement flags. - * -ERESTARTSYS: Interrupted by signal while sleeping waiting for resources. - */ -int ttm_bo_init(struct ttm_device *bdev, struct ttm_buffer_object *bo, - size_t size, enum ttm_bo_type type, - struct ttm_placement *placement, - uint32_t page_alignment, bool interrubtible, - struct sg_table *sg, struct dma_resv *resv, - void (*destroy) (struct ttm_buffer_object *)); - /** * ttm_kmap_obj_virtual * From patchwork Thu May 19 09:55:03 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Christian_K=C3=B6nig?= X-Patchwork-Id: 12854742 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 3F61AC433F5 for ; Thu, 19 May 2022 09:56:04 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 8508711B340; Thu, 19 May 2022 09:55:56 +0000 (UTC) Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com [IPv6:2a00:1450:4864:20::532]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3724911B32A; Thu, 19 May 2022 09:55:18 +0000 (UTC) Received: by mail-ed1-x532.google.com with SMTP id j28so6289086eda.13; Thu, 19 May 2022 02:55:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=pSN27u2uzQrArnpRHxL1xkGGgziU9r/OPLPrSvwLzvQ=; b=cX3q7VqC2Ri8cPAw0N5aWTOxy/gwlfSYXESDXJ1F3BIK12dUmKqVTZQfOdxmBrTaeK 0/NnvkovYmP2t541ZNzUIJc4TscF47xyOaheUrRH8qRCGDFzoUt1/ijeubFo0I1Qejwn 5/IvVy2UymeunGCaAw35auPwVG8oIVO/4o2hD9c9mzpwBYjK1lgBnz9ikNCvVIb4m9qa R3M183AkRVp/JIWhdPUG97TWij0HTHgAJSaXFUV8XngLRYlqgwRZ5RQuQgWKYCK7nwyO 8MhdZyewCu9bYjfdgoqjawKTyplGg3Wfkha2g57VjrF5Wl7Xt4GSOg/Y+OtiHnf9CFUm pmLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=pSN27u2uzQrArnpRHxL1xkGGgziU9r/OPLPrSvwLzvQ=; b=0Wr+jhXrawwPIxQdbU+GUGj1fN82eVynfNXibqIM1zykKTXINUYxlHasOqbzyNJzVT 3F+z56VZB7H68uNIJIvIFbQaVSO1f/gcAvPbXbIfaUVUnJzHwv+tNfafp+dnHlG7goIe GRgN7J1MYmNoj43Mg0kM5JqEjWWuBgoM54E64NJO5aWNAMQ0YW6nq1oJqOSfJw5W2Fnu WAvdjL5eppylcwsWC1BSL85vDAGNmr9lSbfTGFNa9UN9HrfDCJL7jgXHYaqTvbmLqhjG ukoqI2vb8aAQHe484p7x4ISxmTXJnAjVpSYW3JkWUgiDFVbdISRGbMpoYpOsvaIj6RDb TQ/w== X-Gm-Message-State: AOAM530xMJYcj78SROg5Hpj/JcWx+9UlNaxd9zofn2HnDteAmWrjtH7k 94pfVzJBKOcBfDojx6eGLj4XFEjLi2o= X-Google-Smtp-Source: ABdhPJzTjlsp123TxgSc4wnLmUc25dizc2OOD1ualVOkT4nsMSQd4M+F2w+aCkbt0Gbl1KUys72eBg== X-Received: by 2002:aa7:c417:0:b0:42a:c3dd:4148 with SMTP id j23-20020aa7c417000000b0042ac3dd4148mr4334987edq.379.1652954116696; Thu, 19 May 2022 02:55:16 -0700 (PDT) Received: from able.fritz.box (p57b0bdaa.dip0.t-ipconnect.de. [87.176.189.170]) by smtp.gmail.com with ESMTPSA id y6-20020a170906518600b006fe9c65ffb8sm388267ejk.92.2022.05.19.02.55.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 May 2022 02:55:16 -0700 (PDT) From: " =?utf-8?q?Christian_K=C3=B6nig?= " X-Google-Original-From: =?utf-8?q?Christian_K=C3=B6nig?= To: intel-gfx@lists.freedesktop.org Subject: [PATCH 06/11] drm/ttm: rename and cleanup ttm_bo_init_reserved Date: Thu, 19 May 2022 11:55:03 +0200 Message-Id: <20220519095508.115203-7-christian.koenig@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220519095508.115203-1-christian.koenig@amd.com> References: <20220519095508.115203-1-christian.koenig@amd.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: matthew.william.auld@gmail.com, =?utf-8?q?Christian_K=C3=B6nig?= , dri-devel@lists.freedesktop.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Rename ttm_bo_init_reserved to ttm_bo_init_validate since that better matches what the function is actually doing. Remove the unused size parameter, move the function's kerneldoc to the implementation and cleanup the whole error handling. Signed-off-by: Christian König --- drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 2 +- drivers/gpu/drm/drm_gem_vram_helper.c | 2 +- drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 5 +- drivers/gpu/drm/nouveau/nouveau_bo.c | 2 +- drivers/gpu/drm/qxl/qxl_object.c | 2 +- drivers/gpu/drm/radeon/radeon_object.c | 2 +- drivers/gpu/drm/ttm/ttm_bo.c | 92 ++++++++++++++-------- drivers/gpu/drm/vmwgfx/vmwgfx_bo.c | 12 ++- include/drm/ttm/ttm_bo_api.h | 44 +---------- 9 files changed, 75 insertions(+), 88 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c index 5444515c1476..116c8d31e646 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c @@ -590,7 +590,7 @@ int amdgpu_bo_create(struct amdgpu_device *adev, if (!bp->destroy) bp->destroy = &amdgpu_bo_destroy; - r = ttm_bo_init_reserved(&adev->mman.bdev, &bo->tbo, size, bp->type, + r = ttm_bo_init_validate(&adev->mman.bdev, &bo->tbo, bp->type, &bo->placement, page_align, &ctx, NULL, bp->resv, bp->destroy); if (unlikely(r != 0)) diff --git a/drivers/gpu/drm/drm_gem_vram_helper.c b/drivers/gpu/drm/drm_gem_vram_helper.c index 7449cbc2f925..73e91baccea0 100644 --- a/drivers/gpu/drm/drm_gem_vram_helper.c +++ b/drivers/gpu/drm/drm_gem_vram_helper.c @@ -226,7 +226,7 @@ struct drm_gem_vram_object *drm_gem_vram_create(struct drm_device *dev, * A failing ttm_bo_init will call ttm_buffer_object_destroy * to release gbo->bo.base and kfree gbo. */ - ret = ttm_bo_init_reserved(bdev, &gbo->bo, size, ttm_bo_type_device, + ret = ttm_bo_init_validate(bdev, &gbo->bo, ttm_bo_type_device, &gbo->placement, pg_align, &ctx, NULL, NULL, ttm_buffer_object_destroy); if (ret) diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c index 4c25d9b2f138..253188da91eb 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c @@ -1229,9 +1229,8 @@ int __i915_gem_ttm_object_init(struct intel_memory_region *mem, * Similarly, in delayed_destroy, we can't call ttm_bo_put() * until successful initialization. */ - ret = ttm_bo_init_reserved(&i915->bdev, i915_gem_to_ttm(obj), size, - bo_type, &i915_sys_placement, - page_size >> PAGE_SHIFT, + ret = ttm_bo_init_validate(&i915->bdev, i915_gem_to_ttm(obj), bo_type, + &i915_sys_placement, page_size >> PAGE_SHIFT, &ctx, NULL, NULL, i915_ttm_bo_destroy); if (ret) return i915_ttm_err_to_gem(ret); diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c index 858b9382036c..666941804297 100644 --- a/drivers/gpu/drm/nouveau/nouveau_bo.c +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c @@ -308,7 +308,7 @@ nouveau_bo_init(struct nouveau_bo *nvbo, u64 size, int align, u32 domain, nouveau_bo_placement_set(nvbo, domain, 0); INIT_LIST_HEAD(&nvbo->io_reserve_lru); - ret = ttm_bo_init_reserved(nvbo->bo.bdev, &nvbo->bo, size, type, + ret = ttm_bo_init_validate(nvbo->bo.bdev, &nvbo->bo, type, &nvbo->placement, align >> PAGE_SHIFT, &ctx, sg, robj, nouveau_bo_del_ttm); if (ret) { diff --git a/drivers/gpu/drm/qxl/qxl_object.c b/drivers/gpu/drm/qxl/qxl_object.c index b42a657e4c2f..da3f76f508ea 100644 --- a/drivers/gpu/drm/qxl/qxl_object.c +++ b/drivers/gpu/drm/qxl/qxl_object.c @@ -141,7 +141,7 @@ int qxl_bo_create(struct qxl_device *qdev, unsigned long size, qxl_ttm_placement_from_domain(bo, domain); bo->tbo.priority = priority; - r = ttm_bo_init_reserved(&qdev->mman.bdev, &bo->tbo, size, type, + r = ttm_bo_init_validate(&qdev->mman.bdev, &bo->tbo, type, &bo->placement, 0, &ctx, NULL, NULL, &qxl_ttm_bo_destroy); if (unlikely(r != 0)) { diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c index 1d414ff4ab0c..550ca056b3ac 100644 --- a/drivers/gpu/drm/radeon/radeon_object.c +++ b/drivers/gpu/drm/radeon/radeon_object.c @@ -204,7 +204,7 @@ int radeon_bo_create(struct radeon_device *rdev, radeon_ttm_placement_from_domain(bo, domain); down_read(&rdev->pm.mclk_lock); - r = ttm_bo_init_reserved(&rdev->mman.bdev, &bo->tbo, size, type, + r = ttm_bo_init_validate(&rdev->mman.bdev, &bo->tbo, type, &bo->placement, page_align, &ctx, sg, resv, &radeon_ttm_bo_destroy); if (!r) diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c index e652055b5175..2b01cb30694a 100644 --- a/drivers/gpu/drm/ttm/ttm_bo.c +++ b/drivers/gpu/drm/ttm/ttm_bo.c @@ -915,36 +915,61 @@ int ttm_bo_validate(struct ttm_buffer_object *bo, } EXPORT_SYMBOL(ttm_bo_validate); -int ttm_bo_init_reserved(struct ttm_device *bdev, - struct ttm_buffer_object *bo, - size_t size, - enum ttm_bo_type type, - struct ttm_placement *placement, - uint32_t page_alignment, - struct ttm_operation_ctx *ctx, - struct sg_table *sg, - struct dma_resv *resv, +/** + * ttm_bo_init_validate + * + * @bdev: Pointer to a ttm_device struct. + * @bo: Pointer to a ttm_buffer_object to be initialized. + * @type: Requested type of buffer object. + * @placement: Initial placement for buffer object. + * @alignment: Data alignment in pages. + * @ctx: TTM operation context for memory allocation. + * @sg: Scatter-gather table. + * @resv: Pointer to a dma_resv, or NULL to let ttm allocate one. + * @destroy: Destroy function. Use NULL for kfree(). + * + * This function initializes a pre-allocated struct ttm_buffer_object. + * As this object may be part of a larger structure, this function, + * together with the @destroy function, enables driver-specific objects + * derived from a ttm_buffer_object. + * + * On successful return, the caller owns an object kref to @bo. The kref and + * list_kref are usually set to 1, but note that in some situations, other + * tasks may already be holding references to @bo as well. + * Furthermore, if resv == NULL, the buffer's reservation lock will be held, + * and it is the caller's responsibility to call ttm_bo_unreserve. + * + * If a failure occurs, the function will call the @destroy function. Thus, + * after a failure, dereferencing @bo is illegal and will likely cause memory + * corruption. + * + * Returns + * -ENOMEM: Out of memory. + * -EINVAL: Invalid placement flags. + * -ERESTARTSYS: Interrupted by signal while sleeping waiting for resources. + */ +int ttm_bo_init_validate(struct ttm_device *bdev, struct ttm_buffer_object *bo, + enum ttm_bo_type type, struct ttm_placement *placement, + uint32_t alignment, struct ttm_operation_ctx *ctx, + struct sg_table *sg, struct dma_resv *resv, void (*destroy) (struct ttm_buffer_object *)) { static const struct ttm_place sys_mem = { .mem_type = TTM_PL_SYSTEM }; - bool locked; int ret; - bo->destroy = destroy; kref_init(&bo->kref); INIT_LIST_HEAD(&bo->ddestroy); bo->bdev = bdev; bo->type = type; - bo->page_alignment = page_alignment; + bo->page_alignment = alignment; + bo->destroy = destroy; bo->pin_count = 0; bo->sg = sg; bo->bulk_move = NULL; - if (resv) { + if (resv) bo->base.resv = resv; - dma_resv_assert_held(bo->base.resv); - } else { + else bo->base.resv = &bo->base._resv; - } atomic_inc(&ttm_glob.bo_count); ret = ttm_resource_alloc(bo, &sys_mem, &bo->resource); @@ -957,33 +982,36 @@ int ttm_bo_init_reserved(struct ttm_device *bdev, * For ttm_bo_type_device buffers, allocate * address space from the device. */ - if (bo->type == ttm_bo_type_device || - bo->type == ttm_bo_type_sg) + if (bo->type == ttm_bo_type_device || bo->type == ttm_bo_type_sg) { ret = drm_vma_offset_add(bdev->vma_manager, &bo->base.vma_node, - bo->resource->num_pages); + PFN_UP(bo->base.size)); + if (ret) + goto err_put; + } /* passed reservation objects should already be locked, * since otherwise lockdep will be angered in radeon. */ - if (!resv) { - locked = dma_resv_trylock(bo->base.resv); - WARN_ON(!locked); - } + if (!resv) + WARN_ON(!dma_resv_trylock(bo->base.resv)); + else + dma_resv_assert_held(resv); - if (likely(!ret)) - ret = ttm_bo_validate(bo, placement, ctx); + ret = ttm_bo_validate(bo, placement, ctx); + if (unlikely(ret)) + goto err_unlock; - if (unlikely(ret)) { - if (!resv) - ttm_bo_unreserve(bo); + return 0; - ttm_bo_put(bo); - return ret; - } +err_unlock: + if (!resv) + dma_resv_unlock(bo->base.resv); +err_put: + ttm_bo_put(bo); return ret; } -EXPORT_SYMBOL(ttm_bo_init_reserved); +EXPORT_SYMBOL(ttm_bo_init_validate); /* * buffer object vm functions. diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_bo.c b/drivers/gpu/drm/vmwgfx/vmwgfx_bo.c index c4f376d5e1d0..2bda298e51f0 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_bo.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_bo.c @@ -429,9 +429,9 @@ int vmw_bo_create_kernel(struct vmw_private *dev_priv, unsigned long size, drm_gem_private_object_init(vdev, &bo->base, size); - ret = ttm_bo_init_reserved(&dev_priv->bdev, bo, size, - ttm_bo_type_kernel, placement, 0, - &ctx, NULL, NULL, vmw_bo_default_destroy); + ret = ttm_bo_init_validate(&dev_priv->bdev, bo, ttm_bo_type_kernel, + placement, 0, &ctx, NULL, NULL, + vmw_bo_default_destroy); if (unlikely(ret)) goto error_free; @@ -515,10 +515,8 @@ int vmw_bo_init(struct vmw_private *dev_priv, size = ALIGN(size, PAGE_SIZE); drm_gem_private_object_init(vdev, &vmw_bo->base.base, size); - ret = ttm_bo_init_reserved(bdev, &vmw_bo->base, size, - ttm_bo_type_device, - placement, - 0, &ctx, NULL, NULL, bo_free); + ret = ttm_bo_init_validate(bdev, &vmw_bo->base, ttm_bo_type_device, + placement, 0, &ctx, NULL, NULL, bo_free); if (unlikely(ret)) { return ret; } diff --git a/include/drm/ttm/ttm_bo_api.h b/include/drm/ttm/ttm_bo_api.h index 29384e2cb704..d3821a130d74 100644 --- a/include/drm/ttm/ttm_bo_api.h +++ b/include/drm/ttm/ttm_bo_api.h @@ -317,47 +317,9 @@ void ttm_bo_unlock_delayed_workqueue(struct ttm_device *bdev, int resched); bool ttm_bo_eviction_valuable(struct ttm_buffer_object *bo, const struct ttm_place *place); -/** - * ttm_bo_init_reserved - * - * @bdev: Pointer to a ttm_device struct. - * @bo: Pointer to a ttm_buffer_object to be initialized. - * @size: Requested size of buffer object. - * @type: Requested type of buffer object. - * @placement: Initial placement for buffer object. - * @page_alignment: Data alignment in pages. - * @ctx: TTM operation context for memory allocation. - * @sg: Scatter-gather table. - * @resv: Pointer to a dma_resv, or NULL to let ttm allocate one. - * @destroy: Destroy function. Use NULL for kfree(). - * - * This function initializes a pre-allocated struct ttm_buffer_object. - * As this object may be part of a larger structure, this function, - * together with the @destroy function, - * enables driver-specific objects derived from a ttm_buffer_object. - * - * On successful return, the caller owns an object kref to @bo. The kref and - * list_kref are usually set to 1, but note that in some situations, other - * tasks may already be holding references to @bo as well. - * Furthermore, if resv == NULL, the buffer's reservation lock will be held, - * and it is the caller's responsibility to call ttm_bo_unreserve. - * - * If a failure occurs, the function will call the @destroy function, or - * kfree() if @destroy is NULL. Thus, after a failure, dereferencing @bo is - * illegal and will likely cause memory corruption. - * - * Returns - * -ENOMEM: Out of memory. - * -EINVAL: Invalid placement flags. - * -ERESTARTSYS: Interrupted by signal while sleeping waiting for resources. - */ - -int ttm_bo_init_reserved(struct ttm_device *bdev, - struct ttm_buffer_object *bo, - size_t size, enum ttm_bo_type type, - struct ttm_placement *placement, - uint32_t page_alignment, - struct ttm_operation_ctx *ctx, +int ttm_bo_init_validate(struct ttm_device *bdev, struct ttm_buffer_object *bo, + enum ttm_bo_type type, struct ttm_placement *placement, + uint32_t alignment, struct ttm_operation_ctx *ctx, struct sg_table *sg, struct dma_resv *resv, void (*destroy) (struct ttm_buffer_object *)); From patchwork Thu May 19 09:55:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Christian_K=C3=B6nig?= X-Patchwork-Id: 12854739 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 0AA6CC433F5 for ; Thu, 19 May 2022 09:56:00 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 7F10311B33F; Thu, 19 May 2022 09:55:56 +0000 (UTC) Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com [IPv6:2a00:1450:4864:20::534]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1895E11B32E; Thu, 19 May 2022 09:55:19 +0000 (UTC) Received: by mail-ed1-x534.google.com with SMTP id g12so6335684edq.4; Thu, 19 May 2022 02:55:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=9obn04yJj9rZ0fYrM+R/7zzmeeRej2X5M8LMjJ0gWi0=; b=n/tVsgsWcmyradZac6/uzeqFkNT/4lCETBxjeYmM9zsE3NBJ/Nhx2CcSSNxSrmz/LS 2QgpjgqsdXQM2zF2yfmtFQAuRfbt7gUeGGoVNR5gH4Bs2MmCF+hR+RPyTR46feE7O2r0 QY+gryIucZyaAoWaOgc21KnGSEvNCTN/MhZMe2MLgCoPwgT6fugXFCIBnl5I2Nww2jSG nvhunGNUPmmtTewywm99F6huJkNMNs3aJHYKPeCGfHo+CL1JRoSqnynYBHMShOAYDuS+ hOO2QqH90vJI3a7w1LmJGVNu/Bk1Kl4ZPsNFYd/sJ5lwrUfBu8igbgwi+DknBrGSEBjd PBcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=9obn04yJj9rZ0fYrM+R/7zzmeeRej2X5M8LMjJ0gWi0=; b=hwpK55TMmzN22MPHtwskQFwaiXwBv6vjOI44vQwIn3SKYakGuGRHf/Wxl9U4bk4HcW q0c/JKvbgb6WnUh+6hCY6uC+cpuTDKaSClj2oXUk3564breVOI77azvcmL9hK56nVKx1 AKiKDbErunRsxeEEPjA293gRIVkf3h+Sv2aRU8JtT2ix9LcJk+ISLrN1XVFh37fQ4Nsw 2K3Z0URFA6ITbl8xmOoK828T4FteIvFmurJhiAw9az9vkIMuS046wYzK6LY7rjIxpo6u 6JtPUM/nnj6wvbvOarXgbschhWEsiE+vflUtRI9XnpXTDWHE+7b9p57QoQXUisj6EBDK VzuA== X-Gm-Message-State: AOAM533zYB+09GML+G/0QghOgKCIWwQJdoy3xGQ7PdTHHMEUPlMMB1PM 4tdk21fBUDDWRarFcd6QBm/sunN888s= X-Google-Smtp-Source: ABdhPJyk8YouP1AgPJiXFa1vnw+e6DXzEY0GNjUbDy4XIJ97jM7U0EzhiUkK5QRiKI6VzNIzpdJ/yA== X-Received: by 2002:aa7:c952:0:b0:42a:f08f:4d4c with SMTP id h18-20020aa7c952000000b0042af08f4d4cmr4407784edt.26.1652954117693; Thu, 19 May 2022 02:55:17 -0700 (PDT) Received: from able.fritz.box (p57b0bdaa.dip0.t-ipconnect.de. [87.176.189.170]) by smtp.gmail.com with ESMTPSA id y6-20020a170906518600b006fe9c65ffb8sm388267ejk.92.2022.05.19.02.55.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 May 2022 02:55:17 -0700 (PDT) From: " =?utf-8?q?Christian_K=C3=B6nig?= " X-Google-Original-From: =?utf-8?q?Christian_K=C3=B6nig?= To: intel-gfx@lists.freedesktop.org Subject: [PATCH 07/11] drm/amdgpu: audit bo->resource usage Date: Thu, 19 May 2022 11:55:04 +0200 Message-Id: <20220519095508.115203-8-christian.koenig@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220519095508.115203-1-christian.koenig@amd.com> References: <20220519095508.115203-1-christian.koenig@amd.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: matthew.william.auld@gmail.com, =?utf-8?q?Christian_K=C3=B6nig?= , dri-devel@lists.freedesktop.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Make sure we can at least move and release BOs without backing store. Signed-off-by: Christian König --- drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c index 116c8d31e646..5cf3a58bc925 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c @@ -1302,7 +1302,7 @@ void amdgpu_bo_release_notify(struct ttm_buffer_object *bo) if (bo->base.resv == &bo->base._resv) amdgpu_amdkfd_remove_fence_on_pt_pd_bos(abo); - if (bo->resource->mem_type != TTM_PL_VRAM || + if (!bo->resource || bo->resource->mem_type != TTM_PL_VRAM || !(abo->flags & AMDGPU_GEM_CREATE_VRAM_WIPE_ON_RELEASE) || adev->in_suspend || adev->shutdown) return; diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c index ec26edd4f4d8..b79c93812342 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c @@ -471,7 +471,8 @@ static int amdgpu_bo_move(struct ttm_buffer_object *bo, bool evict, adev = amdgpu_ttm_adev(bo->bdev); - if (old_mem->mem_type == TTM_PL_SYSTEM && bo->ttm == NULL) { + if (!old_mem || (old_mem->mem_type == TTM_PL_SYSTEM && + bo->ttm == NULL)) { ttm_bo_move_null(bo, new_mem); goto out; } From patchwork Thu May 19 09:55:05 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Christian_K=C3=B6nig?= X-Patchwork-Id: 12854736 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 4E50BC433F5 for ; Thu, 19 May 2022 09:55:33 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id B3F1511B333; Thu, 19 May 2022 09:55:29 +0000 (UTC) Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com [IPv6:2a00:1450:4864:20::629]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1647411B2C0; Thu, 19 May 2022 09:55:20 +0000 (UTC) Received: by mail-ej1-x629.google.com with SMTP id i19so8835391eja.11; Thu, 19 May 2022 02:55:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=9P3zYs6bGaCRflL6U752X074Zpse7jskvqxYho/Uxf4=; b=Ji4m6iZL7jEjPG3qV/oPU/CK80RybvPGrqPUv3Q7H9WzhNa9qKEqxknaBzBym5dBIU KkTS07KQK+qiC5vIurVt1vaDQvTjcvokm83loDPuSgPyBmgr3No51cl0krr0vYGu9FQc NAb2XeXpsinHRn5FM+5ChYfqtbYoycKN+ZLmomaZzpEJ3VM9tVdLsBAXYklx4nsU8jXw lRfkzj47qGRJEQ8iTNrt6q5st7QNuqraieLgBzC0xyj5vJA6JeBH+qtNEdKrO0fEpfJc XvYl2BHp4rGMZLI1P/FsA8caHuzWVHO694J4K69DBqK2ERi+DZIqIvOs9V1Q3vnqO8ML MN1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=9P3zYs6bGaCRflL6U752X074Zpse7jskvqxYho/Uxf4=; b=HRzG8mmsa0RsuOwx/UunlTGzZ4lCU5RtjpbVqENmVfs1HkQCETzh7/ZN9qWiJcnlM8 GHS1qJ78lBkJAo2pYQqaTgzCDzdQJ7eVbpkeeqFyWFIft2mbjRgeDYHU5amCoI0eGLTC tLOCwUzddQgz8nWcqTn+sQtw6tVh/xDlYWZEaI4G0RttLS0FWnNIEDTuYRyomfOsPFkd pHNhiW5JNvt/K+1nQ1EcIj/7NFjBURmoYhhtK43ljCfX6Vp0Ka+guhFNPqkcwuFBrARO sTMhnlLqQa4BMW9mJVYAkXxxqJhBsefI+AI3SJI/UUMWNKI6kyy1SDGW7dzcM2kFmeWF 6rgg== X-Gm-Message-State: AOAM5306uev2qpyNSz2oLd5yl48jlDn+xI1avc51Td7U4F+zEBa37Gt0 +g9N6TED0kFi8GAEdJccW4iMIgJjWvY= X-Google-Smtp-Source: ABdhPJw9dt14VMpNJ6IhJWdyzU8dWD6QTLEfRk8OJhfj+Xz8S+Y8AwOVHwkkvStJTco3lLCgGbWH5Q== X-Received: by 2002:a17:906:8301:b0:6e4:896d:59b1 with SMTP id j1-20020a170906830100b006e4896d59b1mr3377239ejx.396.1652954118681; Thu, 19 May 2022 02:55:18 -0700 (PDT) Received: from able.fritz.box (p57b0bdaa.dip0.t-ipconnect.de. [87.176.189.170]) by smtp.gmail.com with ESMTPSA id y6-20020a170906518600b006fe9c65ffb8sm388267ejk.92.2022.05.19.02.55.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 May 2022 02:55:18 -0700 (PDT) From: " =?utf-8?q?Christian_K=C3=B6nig?= " X-Google-Original-From: =?utf-8?q?Christian_K=C3=B6nig?= To: intel-gfx@lists.freedesktop.org Subject: [PATCH 08/11] drm/nouveau: audit bo->resource usage Date: Thu, 19 May 2022 11:55:05 +0200 Message-Id: <20220519095508.115203-9-christian.koenig@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220519095508.115203-1-christian.koenig@amd.com> References: <20220519095508.115203-1-christian.koenig@amd.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: matthew.william.auld@gmail.com, =?utf-8?q?Christian_K=C3=B6nig?= , dri-devel@lists.freedesktop.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Make sure we can at least move and release BOs without backing store. Signed-off-by: Christian König --- drivers/gpu/drm/nouveau/nouveau_bo.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c index 666941804297..fb903c62d322 100644 --- a/drivers/gpu/drm/nouveau/nouveau_bo.c +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c @@ -1010,7 +1010,8 @@ nouveau_bo_move(struct ttm_buffer_object *bo, bool evict, } /* Fake bo copy. */ - if (old_reg->mem_type == TTM_PL_SYSTEM && !bo->ttm) { + if (!old_reg || (old_reg->mem_type == TTM_PL_SYSTEM && + !bo->ttm)) { ttm_bo_move_null(bo, new_reg); goto out; } From patchwork Thu May 19 09:55:06 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Christian_K=C3=B6nig?= X-Patchwork-Id: 12854738 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 76D18C433F5 for ; Thu, 19 May 2022 09:55:57 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 12C0811B33D; Thu, 19 May 2022 09:55:56 +0000 (UTC) Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com [IPv6:2a00:1450:4864:20::535]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4167E11B32D; Thu, 19 May 2022 09:55:21 +0000 (UTC) Received: by mail-ed1-x535.google.com with SMTP id n23so6399275edy.0; Thu, 19 May 2022 02:55:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Z82DEt/MpKknW8qHYlosJQTAdFztO/fEKh/wJV8RWKs=; b=AeLktnJ/D27ap0dS1jHVWwd5eFx00SkFo+YfoAiGUygADdUV4Gy1AGNF50X2vi7vEI 0igQxieDuDCOE26rGt/x7erfuH1OJNcFzygmXFg+VAV7HsbxFH+Qoihlt/xrSAOBQ5h0 Y86PZArWkTqOejVmJCI1hxUfW+OHGyww9UBbZXaVES9tfK/p9JmXQQSHwrF0PSIZsQQx 4YDunpsM/XAZKWqmeEZsTYQEgNFK3D+JBmljrayZSyKk6+PZIS87//WIZOb4qqnJaTIp 4Xh3i2Qi5PovJgEujIBSlkSEsawMu9PkZonY+mKx6jqfdFxYgVyMB9oU569MEP+TIXxY PutQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Z82DEt/MpKknW8qHYlosJQTAdFztO/fEKh/wJV8RWKs=; b=gC5ZYUfeLaqvMpnzXNsOMQBTEyvReQWV8xr1wFTYLcwXry879BG+kHq+KNRANfpots oknbEW2tZPMXDJDsmOOvfTHjKyogk0M5IkVRlAQCvuKbokwRVRQC3d77b6FvWEJYj06i +GxSwrHvMPwGgt+YURIAUNCvmlMtan62n7QaEqBIU+XI1nEHrkZ9sYu1cT0u1mGctKy8 ZQr2pnGw8YX8O1PJwCPM918C60/y91S/XBlwJ9yVq4euAg9bSW9Ja587g8L4m1lWOze6 IAGfChwgASsJH/bMap6EpSPRHfC+d3lTWTs2aPDUeUgqnasMUUX1UOSyzB7mR0ol5cQT MG1A== X-Gm-Message-State: AOAM5329j7mDs7e4vd5iXz1oU8/7rMfHJbSltu/uQN5jgWyVRmV8QkKo hBDNZRIVCfdUIVAal/pCNRyvK0OiLLA= X-Google-Smtp-Source: ABdhPJxjXrdr1K6dc9aEHO6AOBQUkMZ7WtYmbxM+pbL/9TxERjoWh8Ar43ASv8OM+AQuD4VydomK9Q== X-Received: by 2002:aa7:db10:0:b0:42a:a983:a5d6 with SMTP id t16-20020aa7db10000000b0042aa983a5d6mr4389284eds.312.1652954119827; Thu, 19 May 2022 02:55:19 -0700 (PDT) Received: from able.fritz.box (p57b0bdaa.dip0.t-ipconnect.de. [87.176.189.170]) by smtp.gmail.com with ESMTPSA id y6-20020a170906518600b006fe9c65ffb8sm388267ejk.92.2022.05.19.02.55.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 May 2022 02:55:19 -0700 (PDT) From: " =?utf-8?q?Christian_K=C3=B6nig?= " X-Google-Original-From: =?utf-8?q?Christian_K=C3=B6nig?= To: intel-gfx@lists.freedesktop.org Subject: [PATCH 09/11] drm/ttm: audit bo->resource usage Date: Thu, 19 May 2022 11:55:06 +0200 Message-Id: <20220519095508.115203-10-christian.koenig@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220519095508.115203-1-christian.koenig@amd.com> References: <20220519095508.115203-1-christian.koenig@amd.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: matthew.william.auld@gmail.com, =?utf-8?q?Christian_K=C3=B6nig?= , dri-devel@lists.freedesktop.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Allow BOs to exist without backing store. Signed-off-by: Christian König --- drivers/gpu/drm/ttm/ttm_bo.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c index 2b01cb30694a..a55564c8b57c 100644 --- a/drivers/gpu/drm/ttm/ttm_bo.c +++ b/drivers/gpu/drm/ttm/ttm_bo.c @@ -117,12 +117,13 @@ static int ttm_bo_handle_move_mem(struct ttm_buffer_object *bo, struct ttm_operation_ctx *ctx, struct ttm_place *hop) { - struct ttm_resource_manager *old_man, *new_man; struct ttm_device *bdev = bo->bdev; + bool old_use_tt, new_use_tt; int ret; - old_man = ttm_manager_type(bdev, bo->resource->mem_type); - new_man = ttm_manager_type(bdev, mem->mem_type); + old_use_tt = bo->resource && + ttm_manager_type(bdev, bo->resource->mem_type)->use_tt; + new_use_tt = ttm_manager_type(bdev, mem->mem_type)->use_tt; ttm_bo_unmap_virtual(bo); @@ -130,11 +131,11 @@ static int ttm_bo_handle_move_mem(struct ttm_buffer_object *bo, * Create and bind a ttm if required. */ - if (new_man->use_tt) { + if (new_use_tt) { /* Zero init the new TTM structure if the old location should * have used one as well. */ - ret = ttm_tt_create(bo, old_man->use_tt); + ret = ttm_tt_create(bo, old_use_tt); if (ret) goto out_err; @@ -160,8 +161,7 @@ static int ttm_bo_handle_move_mem(struct ttm_buffer_object *bo, return 0; out_err: - new_man = ttm_manager_type(bdev, bo->resource->mem_type); - if (!new_man->use_tt) + if (!old_use_tt) ttm_bo_tt_destroy(bo); return ret; @@ -898,7 +898,7 @@ int ttm_bo_validate(struct ttm_buffer_object *bo, /* * Check whether we need to move buffer. */ - if (!ttm_resource_compat(bo->resource, placement)) { + if (!bo->resource || !ttm_resource_compat(bo->resource, placement)) { ret = ttm_bo_move_buffer(bo, placement, ctx); if (ret) return ret; From patchwork Thu May 19 09:55:07 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Christian_K=C3=B6nig?= X-Patchwork-Id: 12854737 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 2454BC433F5 for ; Thu, 19 May 2022 09:55:35 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id CADF311B316; Thu, 19 May 2022 09:55:31 +0000 (UTC) Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com [IPv6:2a00:1450:4864:20::530]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2FB1911B2C0; Thu, 19 May 2022 09:55:21 +0000 (UTC) Received: by mail-ed1-x530.google.com with SMTP id i40so6317663eda.7; Thu, 19 May 2022 02:55:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=iu5ZtZSiudnSHHsipnlZuPhys4LP3RVmLZVqXqUXCIM=; b=etxwIHT96iEvA5w0Mx8iFljE2YXhKkBwmQiacBysP19BfEiKlpPqhuwcqxT2WdT9yd t9zp08HJ6uA2f3GeXj5wVd/B7BXX/YhFADDwIUJxu5J5ek3HhM7IhV8ptHpsk8VVGOWk nLlUVim5YSIyKwIzWyU3VsWKIt3I4/P/x/fFkDq9P1xWkGyfXAZweHoooIQVJzAc3+Ct bePlMRYXRa+eapd34Ml+ibiYKMsi1tPU0tN1vLcVV7HUNaBvjrqGjRrrkac94SLs74Uz jSf3GElMrIpqJ195SllNcYSUARWfkYc2JHXecxN5UNufgHHylJvAZAF/o4ylx9I1LT9H R7pA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=iu5ZtZSiudnSHHsipnlZuPhys4LP3RVmLZVqXqUXCIM=; b=Tn8xTUvf8EkMZXDmlFobPXq823ou/kzuwN+Xn1Gj8QtIZVmGVaKk4pVbbsoOGshD32 x/x/hA10t5YPaoin8etXjqydAlzH0tkK8MZR5xk7BI5dszHs/ai4pK/1aPVpY0uuStX6 6js/stCJYZaI5flUWJFKg2Ndy5IgkrOHJSAQx9iXuMHiB7Ql51hvmafkaD4UI33YuLy+ ezH8AgVaBEj/2BSQEPrCJxq74GUUqaUUl7cJ+SU0nVENFCdZ5DDH3xshsthbK52xldR1 AKcQb7kbLxkndPqRZM3vzUlyvQTiDMnYUdnFPMYMWTQ0/mTOky0P4SAkZFDcoul7cnYh ZgSw== X-Gm-Message-State: AOAM533uvh+DGUqKtOJKI0DfXztTXY4vj743nuVXhk2caWie5MXlLB8y iAKROlWecgS21tVNxCSRG4ZgLYGOkXc= X-Google-Smtp-Source: ABdhPJzI+Ks7FuXtYPU3DWrzc0p7UyaSmqGgkfU+Vc5xMocGknoeY8aoCO3Y3UimQbYTPwCKCg/55g== X-Received: by 2002:a50:9344:0:b0:428:635f:b335 with SMTP id n4-20020a509344000000b00428635fb335mr4310315eda.300.1652954120807; Thu, 19 May 2022 02:55:20 -0700 (PDT) Received: from able.fritz.box (p57b0bdaa.dip0.t-ipconnect.de. [87.176.189.170]) by smtp.gmail.com with ESMTPSA id y6-20020a170906518600b006fe9c65ffb8sm388267ejk.92.2022.05.19.02.55.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 May 2022 02:55:20 -0700 (PDT) From: " =?utf-8?q?Christian_K=C3=B6nig?= " X-Google-Original-From: =?utf-8?q?Christian_K=C3=B6nig?= To: intel-gfx@lists.freedesktop.org Subject: [PATCH 10/11] drm/ttm: stop allocating dummy resources during BO creation Date: Thu, 19 May 2022 11:55:07 +0200 Message-Id: <20220519095508.115203-11-christian.koenig@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220519095508.115203-1-christian.koenig@amd.com> References: <20220519095508.115203-1-christian.koenig@amd.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: matthew.william.auld@gmail.com, =?utf-8?q?Christian_K=C3=B6nig?= , dri-devel@lists.freedesktop.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" That should not be necessary any more when drivers should at least be able to handle the move without a resource. Signed-off-by: Christian König Reported-by: kernel test robot --- drivers/gpu/drm/ttm/ttm_bo.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c index a55564c8b57c..31aa4b040d1e 100644 --- a/drivers/gpu/drm/ttm/ttm_bo.c +++ b/drivers/gpu/drm/ttm/ttm_bo.c @@ -954,7 +954,6 @@ int ttm_bo_init_validate(struct ttm_device *bdev, struct ttm_buffer_object *bo, struct sg_table *sg, struct dma_resv *resv, void (*destroy) (struct ttm_buffer_object *)) { - static const struct ttm_place sys_mem = { .mem_type = TTM_PL_SYSTEM }; int ret; kref_init(&bo->kref); @@ -972,12 +971,6 @@ int ttm_bo_init_validate(struct ttm_device *bdev, struct ttm_buffer_object *bo, bo->base.resv = &bo->base._resv; atomic_inc(&ttm_glob.bo_count); - ret = ttm_resource_alloc(bo, &sys_mem, &bo->resource); - if (unlikely(ret)) { - ttm_bo_put(bo); - return ret; - } - /* * For ttm_bo_type_device buffers, allocate * address space from the device. From patchwork Thu May 19 09:55:08 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Christian_K=C3=B6nig?= X-Patchwork-Id: 12854735 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 365BEC433EF for ; Thu, 19 May 2022 09:55:31 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 889C411B332; Thu, 19 May 2022 09:55:27 +0000 (UTC) Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com [IPv6:2a00:1450:4864:20::629]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3F77E11B2C0; Thu, 19 May 2022 09:55:23 +0000 (UTC) Received: by mail-ej1-x629.google.com with SMTP id n10so8893436ejk.5; Thu, 19 May 2022 02:55:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=vMtJyoOWGkplINQgN2LXJLNYL8JAFOQc7afECfFknhc=; b=EbmF8HUOYLGK2WRdlUVpNwi6ZlH5uS5IUKxuYEZDxtgcYAD7G8vvVHowdBeITlLebX jkmscZRb9aLMTiOxn8uGKsDCe268+wC0A7etNu2WEwS75LKwfvh5nTuMD+sZQW/Vy+T9 ZehrvjgYIJCkWWZCe4ah7ExJSbrI9/1Vo7IOdjiTig/w+3/WRO0lM6f1Q5sgLCuMCh7M IDvIDZOFJHxefc9KViAHqd4FQ+w4P7Is5BFX4iD97xOGZx4du9M/I/6TTCKZf0gAqFbG f0jFjEBKb0w6pd0406iC9/0QJ80kpmp/JyNb9SXGD1v0fQW4eGlzSM9CNFP7seyKEgh6 IpIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=vMtJyoOWGkplINQgN2LXJLNYL8JAFOQc7afECfFknhc=; b=GOOfQeMgTqcbR8xu5b7Rz9OT2UdF0oEzCpUgueIq2T2gjj60gacKW6S691NCubRm8E svUthakhy+BhucgtNrwigjvMBPQEAKa5XvOPS1N/EhnBiChwaBg4i2F5gmz/6eNFGuHB YT7ZG1Z+OmwHpfqQeHPGp0SUYvpMgHox/mTJ+/X0y2tzkXpllEjmhBiTwFDz1pLiiP0J imu026Dci3VQS6EpbVINgG7Wx3j5kTAoJlfcLmpTWbZZze+q/fVRFRSZ1zXzndhTN0SX lstzICccLwsvQiGvcm9QlnlwoweNdWUh90kNY5skfzODC+Rq3xfzaaPUiVavHcLzAtHS zuxw== X-Gm-Message-State: AOAM531GQUFNme8vI6VPzk6ZLcMAr5P5QvuTXAsbVbJZz/al0uKBdMZ4 v/Jb5KX6m5f6+zg1ANjgTLgsDmLYo30= X-Google-Smtp-Source: ABdhPJzhK6jKL27pHcBMxYMONuY/kY1703konpUhiCeSR1vb6ANXDzsRHrl9grT6xlG5RYNO0SAzAg== X-Received: by 2002:a17:907:3f0a:b0:6fe:34a2:1368 with SMTP id hq10-20020a1709073f0a00b006fe34a21368mr3505874ejc.130.1652954121802; Thu, 19 May 2022 02:55:21 -0700 (PDT) Received: from able.fritz.box (p57b0bdaa.dip0.t-ipconnect.de. [87.176.189.170]) by smtp.gmail.com with ESMTPSA id y6-20020a170906518600b006fe9c65ffb8sm388267ejk.92.2022.05.19.02.55.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 May 2022 02:55:21 -0700 (PDT) From: " =?utf-8?q?Christian_K=C3=B6nig?= " X-Google-Original-From: =?utf-8?q?Christian_K=C3=B6nig?= To: intel-gfx@lists.freedesktop.org Subject: [PATCH 11/11] drm/ttm: stop allocating a dummy resource for pipelined gutting Date: Thu, 19 May 2022 11:55:08 +0200 Message-Id: <20220519095508.115203-12-christian.koenig@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220519095508.115203-1-christian.koenig@amd.com> References: <20220519095508.115203-1-christian.koenig@amd.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: matthew.william.auld@gmail.com, =?utf-8?q?Christian_K=C3=B6nig?= , dri-devel@lists.freedesktop.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" That should not be necessary any more when drivers should at least be able to handle a move without a resource. Signed-off-by: Christian König --- drivers/gpu/drm/ttm/ttm_bo_util.c | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c b/drivers/gpu/drm/ttm/ttm_bo_util.c index 1cbfb00c1d65..585fc529cc75 100644 --- a/drivers/gpu/drm/ttm/ttm_bo_util.c +++ b/drivers/gpu/drm/ttm/ttm_bo_util.c @@ -600,16 +600,10 @@ EXPORT_SYMBOL(ttm_bo_move_sync_cleanup); */ int ttm_bo_pipeline_gutting(struct ttm_buffer_object *bo) { - static const struct ttm_place sys_mem = { .mem_type = TTM_PL_SYSTEM }; struct ttm_buffer_object *ghost; - struct ttm_resource *sys_res; struct ttm_tt *ttm; int ret; - ret = ttm_resource_alloc(bo, &sys_mem, &sys_res); - if (ret) - return ret; - /* If already idle, no need for ghost object dance. */ ret = ttm_bo_wait(bo, false, true); if (ret != -EBUSY) { @@ -617,14 +611,13 @@ int ttm_bo_pipeline_gutting(struct ttm_buffer_object *bo) /* See comment below about clearing. */ ret = ttm_tt_create(bo, true); if (ret) - goto error_free_sys_mem; + return ret; } else { ttm_tt_unpopulate(bo->bdev, bo->ttm); if (bo->type == ttm_bo_type_device) ttm_tt_mark_for_clear(bo->ttm); } ttm_resource_free(bo, &bo->resource); - ttm_bo_assign_mem(bo, sys_res); return 0; } @@ -641,7 +634,7 @@ int ttm_bo_pipeline_gutting(struct ttm_buffer_object *bo) ret = ttm_tt_create(bo, true); swap(bo->ttm, ttm); if (ret) - goto error_free_sys_mem; + return ret; ret = ttm_buffer_object_transfer(bo, &ghost); if (ret) @@ -655,13 +648,9 @@ int ttm_bo_pipeline_gutting(struct ttm_buffer_object *bo) dma_resv_unlock(&ghost->base._resv); ttm_bo_put(ghost); bo->ttm = ttm; - ttm_bo_assign_mem(bo, sys_res); return 0; error_destroy_tt: ttm_tt_destroy(bo->bdev, ttm); - -error_free_sys_mem: - ttm_resource_free(bo, &sys_res); return ret; }