Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp540609yba; Mon, 1 Apr 2019 11:23:13 -0700 (PDT) X-Google-Smtp-Source: APXvYqzFLeTmOQrtGfHV/Km8I8PSKNN1khtgiCJVgG4pqvwUhEXRERGh9v6G207qEDpIkqN1xOU8 X-Received: by 2002:a63:fd06:: with SMTP id d6mr40294847pgh.183.1554142993790; Mon, 01 Apr 2019 11:23:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554142993; cv=none; d=google.com; s=arc-20160816; b=d6bXgNt+rNTND86uCpSJ6Fase2wt/f3LnCyW2BWvFL+42N6fP3dUH9J7flIasRWUOf IN6tK/xe8E2TfYL0XfykW45maHCv9CNCikPNAlQib8GeYcE2B7VhpHsKrytsxkFvvaak QTazHOqEbm4Hxy1FvCQsERP0sz+9TB71MDA6syRa/w+V7gXFj9X8ZIo+b/Mhx6VImB6P 0Y6Iq9iU+mTM2qEVPEIbqUToZ/FLkAUTSz9ppMxbA6RphxP9WsaF8p09sLkIZU0LorSj LN/kqdJXWuofRVE/+IltvaqEAg67GUYDoxPiIB4+DjLDXp1M/KrUZXu0pipyMxonaH+G mhcg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:message-id:date:user-agent :references:in-reply-to:subject:cc:to:from; bh=7bSXJTbuMdm9f0OQQ7Fq1pG31rMtcTFTe9Sg6NCxooc=; b=mqNsH468p9iJT8NNRPVsgjTnpv+4gmZ/by0gi1aLtwQuKHjsMqP3MTptFZ+2k/jUdz lrP44xvNaUK0+qXR9ZKIgNY2jYYJC62YvVNFA5Tay6bwGEeMy/oX7ArR9dyanKSVxX4z DkTYZqIXO7V8trLr18vkSWCnFSZdk3Jzw6Wch5VDFt6EiZNNoJMmusVEyEyDC3yCBipO 1fSPGcu9NFHmXaRTT32twkYtOVKpjSUFS0Ozoa+tHFV3QteHqlVq+zUo00vJXLFDcW79 YjHoNCXMF/HL4C/sf7TMjtKDmIbAQOMhdYneFUVB5YF3hHZBOnyBl8xSVgQ3lcLVbxCb FU7w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 1si9608383plw.242.2019.04.01.11.22.58; Mon, 01 Apr 2019 11:23:13 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728998AbfDASWT (ORCPT + 99 others); Mon, 1 Apr 2019 14:22:19 -0400 Received: from anholt.net ([50.246.234.109]:47258 "EHLO anholt.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728676AbfDASWS (ORCPT ); Mon, 1 Apr 2019 14:22:18 -0400 Received: from localhost (localhost [127.0.0.1]) by anholt.net (Postfix) with ESMTP id E893610A0220; Mon, 1 Apr 2019 11:22:17 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at anholt.net Received: from anholt.net ([127.0.0.1]) by localhost (kingsolver.anholt.net [127.0.0.1]) (amavisd-new, port 10024) with LMTP id wRZ8IiiYAfYF; Mon, 1 Apr 2019 11:22:15 -0700 (PDT) Received: from eliezer.anholt.net (localhost [127.0.0.1]) by anholt.net (Postfix) with ESMTP id 90DCD10A278C; Mon, 1 Apr 2019 11:22:15 -0700 (PDT) Received: by eliezer.anholt.net (Postfix, from userid 1000) id 2DDF02FE33BA; Mon, 1 Apr 2019 11:22:15 -0700 (PDT) From: Eric Anholt To: Rob Herring , Daniel Vetter Cc: dri-devel , Linux Kernel Mailing List , Linux ARM , Will Deacon , Robin Murphy , Joerg Roedel , "list\@263.net\:IOMMU DRIVERS \\, Joerg Roedel \\," , Maarten Lankhorst , Maxime Ripard , Sean Paul , David Airlie , Alyssa Rosenzweig , Lyude Paul , Neil Armstrong Subject: Re: [PATCH v2 2/3] drm: Add a drm_gem_objects_lookup helper In-Reply-To: References: <20190401074730.12241-1-robh@kernel.org> <20190401074730.12241-3-robh@kernel.org> User-Agent: Notmuch/0.22.2+1~gb0bcfaa (http://notmuchmail.org) Emacs/25.2.2 (x86_64-pc-linux-gnu) Date: Mon, 01 Apr 2019 11:22:14 -0700 Message-ID: <87sgv14mcp.fsf@anholt.net> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --=-=-= Content-Type: text/plain Rob Herring writes: > On Mon, Apr 1, 2019 at 8:07 AM Daniel Vetter wrote: >> >> On Mon, Apr 1, 2019 at 9:47 AM Rob Herring wrote: >> > >> > Similar to the single handle drm_gem_object_lookup(), >> > drm_gem_objects_lookup() takes an array of handles and returns an array >> > of GEM objects. >> > >> > Cc: Maarten Lankhorst >> > Cc: Maxime Ripard >> > Cc: Sean Paul >> > Cc: David Airlie >> > Cc: Daniel Vetter >> > Signed-off-by: Rob Herring >> > --- >> > drivers/gpu/drm/drm_gem.c | 46 +++++++++++++++++++++++++++++++-------- >> > include/drm/drm_gem.h | 2 ++ >> > 2 files changed, 39 insertions(+), 9 deletions(-) >> > >> > diff --git a/drivers/gpu/drm/drm_gem.c b/drivers/gpu/drm/drm_gem.c >> > index 388b3742e562..5c9bff45e5e1 100644 >> > --- a/drivers/gpu/drm/drm_gem.c >> > +++ b/drivers/gpu/drm/drm_gem.c >> > @@ -663,6 +663,42 @@ void drm_gem_put_pages(struct drm_gem_object *obj, struct page **pages, >> > } >> > EXPORT_SYMBOL(drm_gem_put_pages); >> > >> > +/** >> > + * drm_gem_objects_lookup - look up GEM objects from an array of handles >> > + * @filp: DRM file private date >> > + * @handle: pointer to array of userspace handle >> > + * @count: size of handle array >> > + * @objs: pointer to array of drm_gem_object pointers >> > + * >> > + * Returns: >> > + * >> > + * @objs filled in with GEM object pointers. -ENOENT is returned on a lookup >> > + * failure. 0 is returned on success. >> >> Bonus points for adding references between the array and normal lookup >> functions to guide people around. Also a comment that the buffers need >> to be released with drm_gem_object_put(). >> >> > + */ >> > +int drm_gem_objects_lookup(struct drm_file *filp, u32 *handle, int count, >> > + struct drm_gem_object **objs) >> >> With a pointer to a pointer I'd expect this function to do the >> allocation, but it doesn't. Normal pointer is enough to pass an array. >> Also maybe make the handle pointer >> const, so it's clear that it's an input parameter. > > I thought about doing the allocation here, but then I couldn't > implement the single drm_gem_object_lookup() using this function. > Maybe I can refactor in 3 functions making this one a static function. FWIW, I was thinking for v3d that I'd probably add a helper that took in the user's pointer to handles :) --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEE/JuuFDWp9/ZkuCBXtdYpNtH8nugFAlyiVtYACgkQtdYpNtH8 nuiMBg//VvQsbg5XwF+KRXj9otwDpkUrrGoK72c+wmoCBIWMPgV9fHi17iVul/8Y uoIq7rGWoNnPjMMoj50AecbF/Z3848xgsXtwzCSiCSqyEzt9GWHZotNCjUKk+Usu fvSCW2kMlow9LPPG9XcVqxT7+79fWse7d5bL6nh44rkFYynMtbyV4zYFdPgh2UyP 8IXYtK8W265MCJiLWvMlTxzdoryX7xygVqDnbcqX/bS53zpAVseNar7cxV4I4CK8 xoOv09Np3SmAVN0OGcJe0JjHV4iRUHHldtHqvddYl1WMAGBPH21fir4Qfdid9DAb atb6QzY/OcS3AZ8hRYm4Lm//WPHfbza6AclnCK9QmsierhFxVRECZED5rUieK0kA KUYCfNhgB8dxks3lKuYpMOtRXGEbnpiKQsJE1WGiKkWhZvuilb1JCQISZXf7BV93 32zupQg60EXYs+qNFCa2m9w7tCTqia2F0A52/zDB2nXjDMV0umnMzsoPfaqYCywX nKjqknOC7apeMgEl/WvEXDulLTF8Uo2ZN5Nr6cjoZf3aR2YFsMlhDUJ/z/KYIYeK JpTowKxpwO3Je7WIQhhDuf7PyiIhUZEy3rxegXKaiDUySuE4mK2p7Nu3F3uAeu2K 8Ou5n5U5sv5PQMdzpVRE2KjxLdti7fd8osmkupb4J/1MYdsmyms= =q8QO -----END PGP SIGNATURE----- --=-=-=--