From nobody Mon Dec 29 18:29:12 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4AE8DC61DF4 for ; Fri, 24 Nov 2023 23:38:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231915AbjKXXh2 (ORCPT ); Fri, 24 Nov 2023 18:37:28 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58478 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231710AbjKXXhO (ORCPT ); Fri, 24 Nov 2023 18:37:14 -0500 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D0FAC19B3 for ; Fri, 24 Nov 2023 15:37:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1700869037; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=RTwNQN1v75eY2Dvgc8MjegaphCjYwXgyBTZJw1w/hwE=; b=O/1aQjmy3x+k8NcA1IflLpUo4yFA70IFCd8Y4gMHZ71EvCD7xWafrKARfFJVX2gXdkEQTh haZQ4dui1R8B6eQeekZkRaL5gbNkTMF6zSs7JCZYS9zk5lL6C+GoSMUG173XEy+d7rvBn6 VNvyYadqrl9qY+94CXMYAA+Ovn9XqlE= Received: from mail-ej1-f70.google.com (mail-ej1-f70.google.com [209.85.218.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-307-bk6nVHGbMJiKAKoIckRkww-1; Fri, 24 Nov 2023 18:37:16 -0500 X-MC-Unique: bk6nVHGbMJiKAKoIckRkww-1 Received: by mail-ej1-f70.google.com with SMTP id a640c23a62f3a-a01a0032b19so156364066b.2 for ; Fri, 24 Nov 2023 15:37:16 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700869035; x=1701473835; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=RTwNQN1v75eY2Dvgc8MjegaphCjYwXgyBTZJw1w/hwE=; b=l7qbkH1JQ7IQok1nUbDav+uwsmaB9v/glC6rn3YBqR93K5PrhFPGRYvQ4CPeWz5Mce 49XIWtagmYjBvrsFEXtNPcps5suU2O4c8kZcuHGYvqT/PV3j6CPp9CStwWkLdYsZsAXg hXs+B6lObpJGgMqYOPql43RwCyn1KFG9TsGGdiHGghB5OPL8ylACzCJOCKDnGWEua24h JxiPoPrIt8XebqEjPk9H6CU1iMhhlvppFBVHihmAc7sPEuCTyC3UXPR1U55U3iHe0vi1 pEe8Ek6R3nonmmEF0IrL/3NBZm4/SVkGtJrkMNA+h/JPEqCPmWUgke4jelyjU9ubzXQN 5dpQ== X-Gm-Message-State: AOJu0YypZze9+sDReiUs+5TneD3alBpL0/RiaHHEwESC7SR4Kj1o2kcX wiM0Q0TjqcenAP54owGIldP7RNyAoTTRevC0WophrJrxdXDAS9OsWqaEOUecnf/+UV9rMxk3adQ unCzI0vZpL9/14GtcMft4zIK8 X-Received: by 2002:a17:906:74ca:b0:9dd:87ec:9455 with SMTP id z10-20020a17090674ca00b009dd87ec9455mr3754020ejl.48.1700869035414; Fri, 24 Nov 2023 15:37:15 -0800 (PST) X-Google-Smtp-Source: AGHT+IGPpFhYhbOjtcDOebmW6OKpEMEhuiIuahmko3GKgrpRAjDGHm36lGmiO0pqGG9IYw4PVtIdjw== X-Received: by 2002:a17:906:74ca:b0:9dd:87ec:9455 with SMTP id z10-20020a17090674ca00b009dd87ec9455mr3754014ejl.48.1700869035224; Fri, 24 Nov 2023 15:37:15 -0800 (PST) Received: from pollux.. ([2a02:810d:4b3f:de9c:abf:b8ff:feee:998b]) by smtp.gmail.com with ESMTPSA id w24-20020a170906481800b009920e9a3a73sm2651101ejq.115.2023.11.24.15.37.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 24 Nov 2023 15:37:14 -0800 (PST) From: Danilo Krummrich To: mripard@kernel.org, airlied@gmail.com, daniel@ffwll.ch, frank.binns@imgtec.com, donald.robson@imgtec.com, matt.coster@imgtec.com, sarah.walker@imgtec.com Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Danilo Krummrich Subject: [PATCH drm-misc-next 5/5] drm/imagination: vm: make use of GPUVM's drm_exec helper Date: Sat, 25 Nov 2023 00:36:40 +0100 Message-ID: <20231124233650.152653-6-dakr@redhat.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231124233650.152653-1-dakr@redhat.com> References: <20231124233650.152653-1-dakr@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Make use of GPUVM's drm_exec helper functions preventing direct access to GPUVM internal data structures, such as the external object list. This is especially important to ensure following the locking rules around the GPUVM external object list. Fixes: ff5f643de0bf ("drm/imagination: Add GEM and VM related code") Signed-off-by: Danilo Krummrich --- drivers/gpu/drm/imagination/pvr_vm.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/drivers/gpu/drm/imagination/pvr_vm.c b/drivers/gpu/drm/imagina= tion/pvr_vm.c index e0d74d9a6190..3f7888f5cc53 100644 --- a/drivers/gpu/drm/imagination/pvr_vm.c +++ b/drivers/gpu/drm/imagination/pvr_vm.c @@ -337,27 +337,21 @@ static int pvr_vm_bind_op_lock_resvs(struct drm_exec *exec, struct pvr_vm_bind_op *bi= nd_op) { drm_exec_until_all_locked(exec) { - struct drm_gem_object *r_obj =3D &bind_op->vm_ctx->dummy_gem; struct drm_gpuvm *gpuvm =3D &bind_op->vm_ctx->gpuvm_mgr; struct pvr_gem_object *pvr_obj =3D bind_op->pvr_obj; - struct drm_gpuvm_bo *gpuvm_bo; =20 /* Acquire lock on the vm_context's reserve object. */ - int err =3D drm_exec_lock_obj(exec, r_obj); + int err =3D drm_gpuvm_prepare_vm(gpuvm, exec, 0); =20 drm_exec_retry_on_contention(exec); if (err) return err; =20 /* Acquire lock on all BOs in the context. */ - list_for_each_entry(gpuvm_bo, &gpuvm->extobj.list, - list.entry.extobj) { - err =3D drm_exec_lock_obj(exec, gpuvm_bo->obj); - - drm_exec_retry_on_contention(exec); - if (err) - return err; - } + err =3D drm_gpuvm_prepare_objects(gpuvm, exec, 0); + drm_exec_retry_on_contention(exec); + if (err) + return err; =20 /* Unmap operations don't have an object to lock. */ if (!pvr_obj) --=20 2.42.0