From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751342AbdJEDhm (ORCPT ); Wed, 4 Oct 2017 23:37:42 -0400 Received: from mail-lf0-f66.google.com ([209.85.215.66]:53356 "EHLO mail-lf0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751223AbdJEDhl (ORCPT ); Wed, 4 Oct 2017 23:37:41 -0400 X-Google-Smtp-Source: AOwi7QBjh6erxbx6a8mYeIaLRlpr87o+7ONoYvneR8jfZjb/0xnsqxM/KevfxokuZtr4sD73uGikNlnRtCKvd+j4vSQ= MIME-Version: 1.0 In-Reply-To: References: <20170705222406.28124-1-keithp@keithp.com> <20170705222406.28124-7-keithp@keithp.com> From: Dave Airlie Date: Thu, 5 Oct 2017 13:37:39 +1000 Message-ID: Subject: Re: [PATCH 6/6] drm: Add four ioctls for managing drm mode object leases [v3] To: Keith Packard Cc: LKML , Dave Airlie , Daniel Vetter , dri-devel Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 5 October 2017 at 13:24, Dave Airlie wrote: > On 5 October 2017 at 13:17, Dave Airlie wrote: >>> --- >>> drivers/gpu/drm/drm_ioctl.c | 4 + >>> drivers/gpu/drm/drm_lease.c | 270 ++++++++++++++++++++++++++++++++++++++++++++ >>> include/drm/drm_lease.h | 12 ++ >>> include/uapi/drm/drm.h | 5 + >>> include/uapi/drm/drm_mode.h | 64 +++++++++++ >>> 5 files changed, 355 insertions(+) >>> >>> diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c >>> index a5a259964c7d..0a43e82d3f06 100644 >>> --- a/drivers/gpu/drm/drm_ioctl.c >>> +++ b/drivers/gpu/drm/drm_ioctl.c >>> @@ -657,6 +657,10 @@ static const struct drm_ioctl_desc drm_ioctls[] = { >>> DRM_UNLOCKED|DRM_RENDER_ALLOW), >>> DRM_IOCTL_DEF(DRM_IOCTL_SYNCOBJ_FD_TO_HANDLE, drm_syncobj_fd_to_handle_ioctl, >>> DRM_UNLOCKED|DRM_RENDER_ALLOW), >>> + DRM_IOCTL_DEF(DRM_IOCTL_MODE_CREATE_LEASE, drm_mode_create_lease_ioctl, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED), >>> + DRM_IOCTL_DEF(DRM_IOCTL_MODE_LIST_LESSEES, drm_mode_list_lessees_ioctl, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED), >>> + DRM_IOCTL_DEF(DRM_IOCTL_MODE_GET_LEASE, drm_mode_get_lease_ioctl, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED), >>> + DRM_IOCTL_DEF(DRM_IOCTL_MODE_REVOKE_LEASE, drm_mode_revoke_lease_ioctl, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED), >>> }; >>> >>> #define DRM_CORE_IOCTL_COUNT ARRAY_SIZE( drm_ioctls ) >>> diff --git a/drivers/gpu/drm/drm_lease.c b/drivers/gpu/drm/drm_lease.c >>> index a8bd4bdd2977..f233d8b488f2 100644 >>> --- a/drivers/gpu/drm/drm_lease.c >>> +++ b/drivers/gpu/drm/drm_lease.c >>> @@ -23,6 +23,8 @@ >>> #define drm_for_each_lessee(lessee, lessor) \ >>> list_for_each_entry((lessee), &(lessor)->lessees, lessee_list) >>> >>> +static uint64_t drm_lease_idr_object; >> >> What is this for? ^^ >> >>> + ret = idr_alloc(&leases, &drm_lease_idr_object , object_id, object_id + 1, GFP_KERNEL); >> >> You can just pass NULL here. >> > > Just read the comment, this smells a bit of black magic, I'll spend > some time staring at it :-) I think a comment in here is definitely warranted with what you expect from the idr interface here. You seem to be storing the object ids in it from the user, and failing if you get a duplicate, then later dequeuing the idr. I'm not sure this an intended use of idr :-), my brain is saying a bitmap would work just as well, or even why we want/need deduplication here. If userspace does something stupid does it matter? Because otherwise you could just memdup_user the array of ids, and pass that in without the idr stuff. Dave. From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Airlie Subject: Re: [PATCH 6/6] drm: Add four ioctls for managing drm mode object leases [v3] Date: Thu, 5 Oct 2017 13:37:39 +1000 Message-ID: References: <20170705222406.28124-1-keithp@keithp.com> <20170705222406.28124-7-keithp@keithp.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-lf0-x241.google.com (mail-lf0-x241.google.com [IPv6:2a00:1450:4010:c07::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 74CCE899F2 for ; Thu, 5 Oct 2017 03:37:41 +0000 (UTC) Received: by mail-lf0-x241.google.com with SMTP id n140so13219335lfn.4 for ; Wed, 04 Oct 2017 20:37:41 -0700 (PDT) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Keith Packard Cc: Dave Airlie , dri-devel , LKML List-Id: dri-devel@lists.freedesktop.org T24gNSBPY3RvYmVyIDIwMTcgYXQgMTM6MjQsIERhdmUgQWlybGllIDxhaXJsaWVkQGdtYWlsLmNv bT4gd3JvdGU6Cj4gT24gNSBPY3RvYmVyIDIwMTcgYXQgMTM6MTcsIERhdmUgQWlybGllIDxhaXJs aWVkQGdtYWlsLmNvbT4gd3JvdGU6Cj4+PiAtLS0KPj4+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2lv Y3RsLmMgfCAgIDQgKwo+Pj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fbGVhc2UuYyB8IDI3MCArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+Pj4gIGluY2x1ZGUvZHJt L2RybV9sZWFzZS5oICAgICB8ICAxMiArKwo+Pj4gIGluY2x1ZGUvdWFwaS9kcm0vZHJtLmggICAg ICB8ICAgNSArCj4+PiAgaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oIHwgIDY0ICsrKysrKysr KysrCj4+PiAgNSBmaWxlcyBjaGFuZ2VkLCAzNTUgaW5zZXJ0aW9ucygrKQo+Pj4KPj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJt X2lvY3RsLmMKPj4+IGluZGV4IGE1YTI1OTk2NGM3ZC4uMGE0M2U4MmQzZjA2IDEwMDY0NAo+Pj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0vZHJtX2lvY3RsLmMKPj4+IEBAIC02NTcsNiArNjU3LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgZHJtX2lvY3RsX2Rlc2MgZHJtX2lvY3Rsc1tdID0gewo+Pj4gICAgICAgICAgICAgICAgICAg ICAgIERSTV9VTkxPQ0tFRHxEUk1fUkVOREVSX0FMTE9XKSwKPj4+ICAgICAgICAgRFJNX0lPQ1RM X0RFRihEUk1fSU9DVExfU1lOQ09CSl9GRF9UT19IQU5ETEUsIGRybV9zeW5jb2JqX2ZkX3RvX2hh bmRsZV9pb2N0bCwKPj4+ICAgICAgICAgICAgICAgICAgICAgICBEUk1fVU5MT0NLRUR8RFJNX1JF TkRFUl9BTExPVyksCj4+PiArICAgICAgIERSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfQ1JF QVRFX0xFQVNFLCBkcm1fbW9kZV9jcmVhdGVfbGVhc2VfaW9jdGwsIERSTV9NQVNURVJ8RFJNX0NP TlRST0xfQUxMT1d8RFJNX1VOTE9DS0VEKSwKPj4+ICsgICAgICAgRFJNX0lPQ1RMX0RFRihEUk1f SU9DVExfTU9ERV9MSVNUX0xFU1NFRVMsIGRybV9tb2RlX2xpc3RfbGVzc2Vlc19pb2N0bCwgRFJN X01BU1RFUnxEUk1fQ09OVFJPTF9BTExPV3xEUk1fVU5MT0NLRUQpLAo+Pj4gKyAgICAgICBEUk1f SU9DVExfREVGKERSTV9JT0NUTF9NT0RFX0dFVF9MRUFTRSwgZHJtX21vZGVfZ2V0X2xlYXNlX2lv Y3RsLCBEUk1fTUFTVEVSfERSTV9DT05UUk9MX0FMTE9XfERSTV9VTkxPQ0tFRCksCj4+PiArICAg ICAgIERSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfUkVWT0tFX0xFQVNFLCBkcm1fbW9kZV9y ZXZva2VfbGVhc2VfaW9jdGwsIERSTV9NQVNURVJ8RFJNX0NPTlRST0xfQUxMT1d8RFJNX1VOTE9D S0VEKSwKPj4+ICB9Owo+Pj4KPj4+ICAjZGVmaW5lIERSTV9DT1JFX0lPQ1RMX0NPVU5UICAgQVJS QVlfU0laRSggZHJtX2lvY3RscyApCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9sZWFzZS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9sZWFzZS5jCj4+PiBpbmRleCBhOGJkNGJk ZDI5NzcuLmYyMzNkOGI0ODhmMiAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f bGVhc2UuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9sZWFzZS5jCj4+PiBAQCAtMjMs NiArMjMsOCBAQAo+Pj4gICNkZWZpbmUgZHJtX2Zvcl9lYWNoX2xlc3NlZShsZXNzZWUsIGxlc3Nv cikgXAo+Pj4gICAgICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KChsZXNzZWUpLCAmKGxlc3Nvcikt Pmxlc3NlZXMsIGxlc3NlZV9saXN0KQo+Pj4KPj4+ICtzdGF0aWMgdWludDY0X3QgZHJtX2xlYXNl X2lkcl9vYmplY3Q7Cj4+Cj4+IFdoYXQgaXMgdGhpcyBmb3I/IF5eCj4+Cj4+PiArICAgICAgICAg ICAgICAgcmV0ID0gaWRyX2FsbG9jKCZsZWFzZXMsICZkcm1fbGVhc2VfaWRyX29iamVjdCAsIG9i amVjdF9pZCwgb2JqZWN0X2lkICsgMSwgR0ZQX0tFUk5FTCk7Cj4+Cj4+IFlvdSBjYW4ganVzdCBw YXNzIE5VTEwgaGVyZS4KPj4KPgo+IEp1c3QgcmVhZCB0aGUgY29tbWVudCwgdGhpcyBzbWVsbHMg YSBiaXQgb2YgYmxhY2sgbWFnaWMsIEknbGwgc3BlbmQKPiBzb21lIHRpbWUgc3RhcmluZyBhdCBp dCA6LSkKCkkgdGhpbmsgYSBjb21tZW50IGluIGhlcmUgaXMgZGVmaW5pdGVseSB3YXJyYW50ZWQg d2l0aCB3aGF0IHlvdSBleHBlY3QKZnJvbSB0aGUgaWRyIGludGVyZmFjZSBoZXJlLgoKWW91IHNl ZW0gdG8gYmUgc3RvcmluZyB0aGUgb2JqZWN0IGlkcyBpbiBpdCBmcm9tIHRoZSB1c2VyLCBhbmQg ZmFpbGluZwppZiB5b3UgZ2V0IGEgZHVwbGljYXRlLCB0aGVuIGxhdGVyIGRlcXVldWluZyB0aGUg aWRyLgoKSSdtIG5vdCBzdXJlIHRoaXMgYW4gaW50ZW5kZWQgdXNlIG9mIGlkciA6LSksIG15IGJy YWluIGlzIHNheWluZyBhCmJpdG1hcCB3b3VsZCB3b3JrIGp1c3QgYXMgd2VsbCwgb3IgZXZlbiB3 aHkgd2Ugd2FudC9uZWVkCmRlZHVwbGljYXRpb24gaGVyZS4gSWYgdXNlcnNwYWNlIGRvZXMgc29t ZXRoaW5nIHN0dXBpZCBkb2VzIGl0IG1hdHRlcj8KCkJlY2F1c2Ugb3RoZXJ3aXNlIHlvdSBjb3Vs ZCBqdXN0IG1lbWR1cF91c2VyIHRoZSBhcnJheSBvZiBpZHMsIGFuZApwYXNzIHRoYXQgaW4gd2l0 aG91dCB0aGUgaWRyIHN0dWZmLgoKRGF2ZS4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vZHJpLWRldmVsCg==