From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.1 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A8F85C433E0 for ; Mon, 1 Mar 2021 10:25:23 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 469A364E10 for ; Mon, 1 Mar 2021 10:25:23 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 469A364E10 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=amd-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id BA2226E591; Mon, 1 Mar 2021 10:25:22 +0000 (UTC) Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com [IPv6:2a00:1450:4864:20::52c]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5F4A76E588; Mon, 1 Mar 2021 10:25:21 +0000 (UTC) Received: by mail-ed1-x52c.google.com with SMTP id bd6so6699310edb.10; Mon, 01 Mar 2021 02:25:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=DRlEv2sys9QkiKbmliPCTT/sTHahG9YuX/0Rbkd9Jtg=; b=Fzr910IKkf6RXg76Bo40pbPs0WIy/7nQmkXVNhYUD8ZZHH2M+3/4exnt5xEzNrERCH 1IZ5iCFmXS6fsm1RngkenJDraJKAYGPwGQM+4BivpAnmWiWcnNVT6S+JpXutH4gzb2QP q4jkVWFvnwkZEWgGTVDctF+AhCL7bxcnIKSNOkNvlebKZGWqlrNk83vb0dQBP0+/4aL+ HxarGmejC8CgfYePHNVrTNW2vyOZ7rE88sMwP4hqOVwB8xnDqVjsKF6G+y90wIH0TDM1 fpi6rHyDpzvMwWsSX80VtLRlERHutL83mxwxB0enPgN86d/PXD1ilVMASgvrbiu3RqYQ 456Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=DRlEv2sys9QkiKbmliPCTT/sTHahG9YuX/0Rbkd9Jtg=; b=moOKlGcM/iG3Myx6sceeijTxoVAHx6gtE0sgJJmzdw6Wswsfttrh3bWUQ8Cx1MUrJm mVpGh2k+nPk92btIfV2I+NwFgPT2vAyR9jdpySG21DDOrpdy+lm6DNuWCJAy5+5aeCA0 50j57Muk26XKTqu1OydH/kNO6KhxD7+ge/Y9tXWM+/OkTJ/u0Ydq0wjTtyGQgLMXR/BA /v4jh29PtyqwVd9fnHsN0qUaUMmSpkaaX/zsU3uAnXFDJDELkl9n114bpA/Cz9HRgCcX ryMuYT0J6qk/iEd57Qm+FLEh8f7jOf5hw7K0kpMn6rojwPvusWSnavDQYZ+ZVx8J0dkJ dQTg== X-Gm-Message-State: AOAM530qoOcAVD3o0bWQk0v49olJEuoLdG8XYEyJUZuJSyDCNDDEDUwW yf0V3a74jyOFKs8OtRvOy3k= X-Google-Smtp-Source: ABdhPJxMWyLYY6IrUVRxFic8f9aV04MXckwDeUGJXYFcDONSoK2XkaRckFSI50HypIfo35b/Go6s+g== X-Received: by 2002:aa7:dcc9:: with SMTP id w9mr15873855edu.353.1614594319851; Mon, 01 Mar 2021 02:25:19 -0800 (PST) Received: from ?IPv6:2a02:908:1252:fb60:a93a:2306:54f2:28c4? ([2a02:908:1252:fb60:a93a:2306:54f2:28c4]) by smtp.gmail.com with ESMTPSA id a7sm14414096edr.29.2021.03.01.02.25.18 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 01 Mar 2021 02:25:18 -0800 (PST) Subject: Re: [PATCH] drm/gem: add checks of drm_gem_object->funcs To: Daniel Vetter , Thomas Zimmermann , Gerd Hoffmann References: <20210228161022.53468-1-ledoian@kam.mff.cuni.cz> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: <5bd3c672-3277-69b5-27ca-898c8cb79f9e@gmail.com> Date: Mon, 1 Mar 2021 11:25:17 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "amd-gfx@lists.freedesktop.org" , Dave Airlie , dri-devel , =?UTF-8?Q?Pavel_Turinsk=c3=bd?= , stable , Alexander Deucher , =?UTF-8?Q?Christian_K=c3=b6nig?= Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" CgpBbSAwMS4wMy4yMSB1bSAxMTowNCBzY2hyaWViIERhbmllbCBWZXR0ZXI6Cj4gT24gTW9uLCBN YXIgMSwgMjAyMSBhdCAxMDo1NiBBTSBUaG9tYXMgWmltbWVybWFubiA8dHppbW1lcm1hbm5Ac3Vz ZS5kZT4gd3JvdGU6Cj4+IChjYydpbmcgYW1kIGRldnMpCj4+Cj4+IEhpCj4+Cj4+IEFtIDI4LjAy LjIxIHVtIDE3OjEwIHNjaHJpZWIgUGF2ZWwgVHVyaW5za8O9Ogo+Pj4gVGhlIGNoZWNrcyB3ZXJl IHJlbW92ZWQgaW4gY29tbWl0IGQ2OTNkZWY0ZmQxYyAoImRybTogUmVtb3ZlIG9ic29sZXRlIEdF TQo+Pj4gYW5kIFBSSU1FIGNhbGxiYWNrcyBmcm9tIHN0cnVjdCBkcm1fZHJpdmVyIikgYW5kIGNh biBsZWFkIHRvIGZvbGxvd2luZwo+Pj4ga2VybmVsIG9vcHM6Cj4+IFRoYW5rcyBmb3IgcmVwb3J0 aW5nLiBBbGwgZHJpdmVycyBhcmUgc3VwcG9zZWQgdG8gc2V0IHRoZSBmdW5jcyBwb2ludGVyCj4+ IGluIHRoZWlyIEdFTSBvYmplY3RzLiBUaGlzIGxvb2tzIGxpa2UgYSByYWRlb24gYnVnLiBBZGRp bmcgdGhlIEFNRCBkZXZzLgo+IExvb2tzIGxpa2Ugd2UncmUgc2V0dGluZyBvYmotPmZ1bmNzIG9u bHkgaW4gcmFkZW9uX2dlbV9vYmplY3RfY3JlYXRlLAo+IGJ1dCBzaG91bGQgc2V0IGl0IGluIHJh ZGVvbl9ib19jcmVhdGUgaW5zdGVhZCBzbyBpdCBjYXRjaGVzIGludGVybmFsCj4gZnVuY3Rpb25z IHRvby4gSSB0aGluayB0aGlzIHdhcyBtaXNzZWQgaW4KPgo+IGNvbW1pdCBjZTc3MDM4ZmRhZTM4 NWY5NDc3NTdhMzc1NzNkOTBmMmU4M2YwMjcxCj4gQXV0aG9yOiBHZXJkIEhvZmZtYW5uIDxrcmF4 ZWxAcmVkaGF0LmNvbT4KPiBEYXRlOiAgIE1vbiBBdWcgNSAxNjowMTowNiAyMDE5ICswMjAwCj4K PiAgICAgZHJtL3JhZGVvbjogdXNlIGVtYmVkZGVkIGdlbSBvYmplY3QKCk1heWJlIHRoZSBzYW1l IHByb2JsZW0gd2UgaGFkIGZvciBhbWRncHUgdGhhdCB0aGUgZnVuY3Rpb24gcG9pbnRlciAKd2Fz bid0IHNldCBmb3IgaW1wb3J0ZWQgRE1BLWJ1ZnM/CgpSZWdhcmRzLApDaHJpc3RpYW4uCgo+Cj4g QWRkaW5nIEdlcmQuCj4gLURhbmllbAo+Cj4+IEJlc3QgcmVnYXJkcwo+PiBUaG9tYXMKPj4KPj4+ IFsgIDEzOS40NDkwOThdIEJVRzoga2VybmVsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSwgYWRk cmVzczogMDAwMDAwMDAwMDAwMDAwOAo+Pj4gWyAgMTM5LjQ0OTExMF0gI1BGOiBzdXBlcnZpc29y IHJlYWQgYWNjZXNzIGluIGtlcm5lbCBtb2RlCj4+PiBbICAxMzkuNDQ5MTEzXSAjUEY6IGVycm9y X2NvZGUoMHgwMDAwKSAtIG5vdC1wcmVzZW50IHBhZ2UKPj4+IFsgIDEzOS40NDkxMTZdIFBHRCAw IFA0RCAwCj4+PiBbICAxMzkuNDQ5MTIxXSBPb3BzOiAwMDAwIFsjMV0gUFJFRU1QVCBTTVAgUFRJ Cj4+PiBbICAxMzkuNDQ5MTI2XSBDUFU6IDQgUElEOiAxMTgxIENvbW06IFhvcmcgTm90IHRhaW50 ZWQgNS4xMS4yTEVkb2lhbiAjMgo+Pj4gWyAgMTM5LjQ0OTEzMF0gSGFyZHdhcmUgbmFtZTogR2ln YWJ5dGUgVGVjaG5vbG9neSBDby4sIEx0ZC4gVG8gYmUgZmlsbGVkIGJ5IE8uRS5NLi9aNzctRFMz SCwgQklPUyBGNCAwNC8yNS8yMDEyCj4+PiBbICAxMzkuNDQ5MTMzXSBSSVA6IDAwMTA6ZHJtX2dl bV9oYW5kbGVfY3JlYXRlX3RhaWwrMHhjYi8weDE5MCBbZHJtXQo+Pj4gWyAgMTM5LjQ0OTE4NV0g Q29kZTogMDAgNDggODkgZWYgZTggMDYgYjQgNDkgZjcgNDUgODUgZTQgNzggNzcgNDggOGQgNmIg MTggNGMgODkgZWUgNDggODkgZWYgZTggYzIgZjUgMDAgMDAgODkgYzIgODUgYzAgNzUgM2UgNDgg OGIgODMgNDAgMDEgMDAgMDAgPDQ4PiA4YiA0MCAwCj4+PiA4IDQ4IDg1IGMwIDc0IDBmIDRjIDg5 IGVlIDQ4IDg5IGRmIGU4IDcxIDVkIDg3IGY3IDg1IGMwCj4+PiBbICAxMzkuNDQ5MTkwXSBSU1A6 IDAwMTg6ZmZmZmJlMjFjMTk0YmQyOCBFRkxBR1M6IDAwMDEwMjQ2Cj4+PiBbICAxMzkuNDQ5MTk0 XSBSQVg6IDAwMDAwMDAwMDAwMDAwMDAgUkJYOiBmZmZmOWRhOWIzY2FmMDc4IFJDWDogMDAwMDAw MDAwMDAwMDAwMAo+Pj4gWyAgMTM5LjQ0OTE5N10gUkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJTSTog ZmZmZmZmZmZjMDM5Yjg5MyBSREk6IDAwMDAwMDAwMDAwMDAwMDAKPj4+IFsgIDEzOS40NDkxOTld IFJCUDogZmZmZjlkYTliM2NhZjA5MCBSMDg6IDAwMDAwMDAwMDAwMDAwNDAgUjA5OiBmZmZmOWRh OTgzYjkxMWMwCj4+PiBbICAxMzkuNDQ5MjAyXSBSMTA6IGZmZmY5ZGE5ODQ3NDllMDAgUjExOiBm ZmZmOWRhOTg1OWJmYzM4IFIxMjogMDAwMDAwMDAwMDAwMDAwNwo+Pj4gWyAgMTM5LjQ0OTIwNF0g UjEzOiBmZmZmOWRhOTg1OWJmYzAwIFIxNDogZmZmZjlkYTk4NTliZmM1MCBSMTU6IGZmZmY5ZGE5 ODU5YmZjMzgKPj4+IFsgIDEzOS40NDkyMDddIEZTOiAgMDAwMDdmNjMzMmE1NjkwMCgwMDAwKSBH UzpmZmZmOWRhZWE3YjAwMDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKPj4+IFsgIDEz OS40NDkyMTFdIENTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAw MzMKPj4+IFsgIDEzOS40NDkyMTRdIENSMjogMDAwMDAwMDAwMDAwMDAwOCBDUjM6IDAwMDAwMDAx MzE5YjgwMDUgQ1I0OiAwMDAwMDAwMDAwMTcwNmUwCj4+PiBbICAxMzkuNDQ5MjE3XSBDYWxsIFRy YWNlOgo+Pj4gWyAgMTM5LjQ0OTIyNF0gIGRybV9nZW1fcHJpbWVfZmRfdG9faGFuZGxlKzB4ZmYv MHgxZDAgW2RybV0KPj4+IFsgIDEzOS40NDkyNzRdICA/IGRybV9wcmltZV9kZXN0cm95X2ZpbGVf cHJpdmF0ZSsweDIwLzB4MjAgW2RybV0KPj4+IFsgIDEzOS40NDkzMjNdICBkcm1faW9jdGxfa2Vy bmVsKzB4YWMvMHhmMCBbZHJtXQo+Pj4gWyAgMTM5LjQ0OTM2M10gIGRybV9pb2N0bCsweDIwZi8w eDNiMCBbZHJtXQo+Pj4gWyAgMTM5LjQ0OTQwM10gID8gZHJtX3ByaW1lX2Rlc3Ryb3lfZmlsZV9w cml2YXRlKzB4MjAvMHgyMCBbZHJtXQo+Pj4gWyAgMTM5LjQ0OTQ1NF0gIHJhZGVvbl9kcm1faW9j dGwrMHg0OS8weDgwIFtyYWRlb25dCj4+PiBbICAxMzkuNDQ5NTAwXSAgX194NjRfc3lzX2lvY3Rs KzB4ODQvMHhjMAo+Pj4gWyAgMTM5LjQ0OTUwN10gIGRvX3N5c2NhbGxfNjQrMHgzMy8weDQwCj4+ PiBbICAxMzkuNDQ5NTE0XSAgZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDQvMHhh OQo+Pj4gWyAgMTM5LjQ0OTUyMl0gUklQOiAwMDMzOjB4N2Y2MzMzMGZiZTZiCj4+PiBbICAxMzku NDQ5NTI2XSBDb2RlOiBmZiBmZiBmZiA4NSBjMCA3OSA4YiA0OSBjNyBjNCBmZiBmZiBmZiBmZiA1 YiA1ZCA0YyA4OSBlMCA0MSA1YyBjMyA2NiAwZiAxZiA4NCAwMCAwMCAwMCAwMCAwMCBmMyAwZiAx ZSBmYSBiOCAxMCAwMCAwMCAwMCAwZiAwNSA8NDg+IDNkIDAxIGYKPj4+IDAgZmYgZmYgNzMgMDEg YzMgNDggOGIgMGQgZDUgYWYgMGMgMDAgZjcgZDggNjQgODkgMDEgNDgKPj4+IFsgIDEzOS40NDk1 MjldIFJTUDogMDAyYjowMDAwN2ZmZjFlOWM0NDM4IEVGTEFHUzogMDAwMDAyNDYgT1JJR19SQVg6 IDAwMDAwMDAwMDAwMDAwMTAKPj4+IFsgIDEzOS40NDk1MzRdIFJBWDogZmZmZmZmZmZmZmZmZmZk YSBSQlg6IDAwMDA3ZmZmMWU5YzQ0N2MgUkNYOiAwMDAwN2Y2MzMzMGZiZTZiCj4+PiBbICAxMzku NDQ5NTM3XSBSRFg6IDAwMDA3ZmZmMWU5YzQ0N2MgUlNJOiAwMDAwMDAwMGMwMGM2NDJlIFJESTog MDAwMDAwMDAwMDAwMDAxMgo+Pj4gWyAgMTM5LjQ0OTUzOV0gUkJQOiAwMDAwMDAwMGMwMGM2NDJl IFIwODogMDAwMDdmZmYxZTljNDUyMCBSMDk6IDAwMDA3ZjYzMzMxYzdhNjAKPj4+IFsgIDEzOS40 NDk1NDJdIFIxMDogMDAwMDdmNjMyOWZiOWFiMCBSMTE6IDAwMDAwMDAwMDAwMDAyNDYgUjEyOiAw MDAwNTVmNjk4MTBhZDQwCj4+PiBbICAxMzkuNDQ5NTQ0XSBSMTM6IDAwMDAwMDAwMDAwMDAwMTIg UjE0OiAwMDAwMDAwMDAwMTAwMDAwIFIxNTogMDAwMDdmZmYxZTljNGMyMAo+Pj4gWyAgMTM5LjQ0 OTU0OV0gTW9kdWxlcyBsaW5rZWQgaW46IDgwMjFxIGdhcnAgbXJwIGJyaWRnZSBzdHAgbGxjIG5s c19pc284ODU5XzEgdmZhdCBmYXQgZnVzZSBidHJmcyBibGFrZTJiX2dlbmVyaWMgeG9yIHJhaWQ2 X3BxIGxpYmNyYzMyYyBjcnlwdG9fdXNlciB0dW4gaTJjX2RlCj4+PiB2IGl0ODcgaHdtb25fdmlk IHNuZF9zZXEgc25kX2hkYV9jb2RlY19yZWFsdGVrIHNuZF9oZGFfY29kZWNfZ2VuZXJpYyBsZWR0 cmlnX2F1ZGlvIHNnIHNuZF9oZGFfY29kZWNfaGRtaSB2aXJ0aW9fYmFsbG9vbiBzbmRfaGRhX2lu dGVsIHZpcnRpb19jb25zb2xlIHNuZF9pbnRlbF8KPj4+IGRzcGNmZyBzb3VuZHdpcmVfaW50ZWwg dmlydGlvX3BjaSBzb3VuZHdpcmVfZ2VuZXJpY19hbGxvY2F0aW9uIHNvdW5kd2lyZV9jYWRlbmNl IHZpcnRpb19ibGsgc25kX2hkYV9jb2RlYyBpbnRlbF9yYXBsX21zciBidHVzYiBpbnRlbF9yYXBs X2NvbW1vbiB2aXJ0aW9fbmV0IGJ0cgo+Pj4gdGwgbmV0X2ZhaWxvdmVyIHV2Y3ZpZGVvIHNuZF91 c2JfYXVkaW8gc25kX2hkYV9jb3JlIGJ0YmNtIHg4Nl9wa2dfdGVtcF90aGVybWFsIGZhaWxvdmVy IHNvdW5kd2lyZV9idXMgYnRpbnRlbCBpbnRlbF9wb3dlcmNsYW1wIHNuZF9zb2NfY29yZSBjb3Jl dGVtcCBzbmRfdXNibWlkCj4+PiBpX2xpYiBpVENPX3dkdCB2aWRlb2J1ZjJfdm1hbGxvYyBibHVl dG9vdGggaW50ZWxfcG1jX2J4dCBzbmRfaHdkZXAga3ZtX2ludGVsIHZpZGVvYnVmMl9tZW1vcHMg c25kX3Jhd21pZGkgc25kX2NvbXByZXNzIHZpZGVvYnVmMl92NGwyIGFjOTdfYnVzIHNuZF9wY21f ZG1hZW5naW4KPj4+IGUgaVRDT192ZW5kb3Jfc3VwcG9ydCBjcmN0MTBkaWZfcGNsbXVsIGF0MjQg Y3JjMzJfcGNsbXVsIHZpZGVvYnVmMl9jb21tb24gc25kX3NlcV9kZXZpY2UgbWVpX2hkY3Agc25k X3BjbSBnaGFzaF9jbG11bG5pX2ludGVsIGt2bSB2aWRlb2RldiBhZXNuaV9pbnRlbCBjcnlwdG9f cwo+Pj4gaW1kIHNuZF90aW1lciBzbmQgY3J5cHRkIG1jIGVjZGhfZ2VuZXJpYwo+Pj4gWyAgMTM5 LjQ0OTY0Ml0gIGdsdWVfaGVscGVyIHJma2lsbCBzb3VuZGNvcmUgam95ZGV2IG1vdXNlZGV2IHJh cGwgZWNjIGludGVsX2NzdGF0ZSByODE2OSBpMmNfaTgwMSBpbnRlbF91bmNvcmUgYXRsMWMgcmVh bHRlayBpcnFieXBhc3MgbWRpb19kZXZyZXMgbWVpX21lIGxpYnBoCj4+PiB5IGkyY19zbWJ1cyBt ZWkgbWFjX2hpZCBscGNfaWNoIGV4dDQgY3JjMzJjX2dlbmVyaWMgY3JjMTYgbWJjYWNoZSBqYmQy IGRtX21vZCBhdGFfZ2VuZXJpYyBwYXRhX2FjcGkgdWFzIHVzYl9zdG9yYWdlIHNyX21vZCBjcmMz MmNfaW50ZWwgc2VyaW9fcmF3IGNkcm9tIHhoY2lfcGMKPj4+IGkgcGF0YV9qbWljcm9uIHhoY2lf cGNpX3JlbmVzYXMgcmFkZW9uIHVzYmhpZCBpOTE1IGludGVsX2d0dCBub3V2ZWF1IG14bV93bWkg d21pIHZpZGVvIGkyY19hbGdvX2JpdCBkcm1fdHRtX2hlbHBlciB0dG0gZHJtX2ttc19oZWxwZXIg c3lzY29weWFyZWEgc3lzZmlsbHJlY3Qgcwo+Pj4geXNpbWdibHQgZmJfc3lzX2ZvcHMgY2VjIGRy bSBhZ3BnYXJ0Cj4+PiBbICAxMzkuNDQ5NzA3XSBDUjI6IDAwMDAwMDAwMDAwMDAwMDgKPj4+IFsg IDEzOS40NDk3MTBdIC0tLVsgZW5kIHRyYWNlIGY1Y2U1Nzc0NDk4ZDE4ZTEgXS0tLQo+Pj4KPj4+ IFNpZ25lZC1vZmYtYnk6IFBhdmVsIFR1cmluc2vDvSA8bGVkb2lhbkBrYW0ubWZmLmN1bmkuY3o+ Cj4+PiBGaXhlczogZDY5M2RlZjRmZDFjICgiZHJtOiBSZW1vdmUgb2Jzb2xldGUgR0VNIGFuZCBQ UklNRSBjYWxsYmFja3MgZnJvbSBzdHJ1Y3QgZHJtX2RyaXZlciIpCj4+PiBDYzogc3RhYmxlQHZn ZXIua2VybmVsLm9yZwo+Pj4gLS0tCj4+Pgo+Pj4gVGhpcyBpcyBhIHZlcnkgc3ltcHRvbWF0aWMg cGF0Y2ggYXJvdW5kIGlzc3VlIEkgcmFuIGludG8uIEkgZG8gbm90IGtub3cgaWYgdGhlCj4+PiBm dW5jcyBwcm9wZXJ0eSBzaG91bGQgZXZlciBiZSBOVUxMLiBJIGJhc2ljYWxseSByZXN0b3JlZCBh bGwgdGhlIGNoZWNrcyB0aGF0Cj4+PiB3ZXJlIHJlbW92ZWQgaW4gdGhlIG1lbnRpb25lZCBjb21t aXQuIFVuZm9ydHVuYXRlbHksIEkgZG8gbm90IHVuZGVyc3RhbmQgZHJtCj4+PiBub3Igd2lsbCBJ IGhhdmUgdGltZSB0byBkZWx2ZSBpbnRvIGl0IGluIGZvcnNlZWFibGUgZnV0dXJlLgo+Pj4KPj4+ ICAgIGRyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtLmMgICB8IDIwICsrKysrKysrKystLS0tLS0tLS0t Cj4+PiAgICBkcml2ZXJzL2dwdS9kcm0vZHJtX3ByaW1lLmMgfCAgMiArLQo+Pj4gICAgMiBmaWxl cyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKPj4+Cj4+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f Z2VtLmMKPj4+IGluZGV4IDkyZjg5Y2VlMjEzZS4uNDUxZjI5MGM3MzdjIDEwMDY0NAo+Pj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2RybV9nZW0uYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9nZW0uYwo+Pj4gQEAgLTI0OSw3ICsyNDksNyBAQCBkcm1fZ2VtX29iamVjdF9yZWxlYXNlX2hh bmRsZShpbnQgaWQsIHZvaWQgKnB0ciwgdm9pZCAqZGF0YSkKPj4+ICAgICAgICBzdHJ1Y3QgZHJt X2ZpbGUgKmZpbGVfcHJpdiA9IGRhdGE7Cj4+PiAgICAgICAgc3RydWN0IGRybV9nZW1fb2JqZWN0 ICpvYmogPSBwdHI7Cj4+Pgo+Pj4gLSAgICAgaWYgKG9iai0+ZnVuY3MtPmNsb3NlKQo+Pj4gKyAg ICAgaWYgKG9iai0+ZnVuY3MgJiYgb2JqLT5mdW5jcy0+Y2xvc2UpCj4+PiAgICAgICAgICAgICAg ICBvYmotPmZ1bmNzLT5jbG9zZShvYmosIGZpbGVfcHJpdik7Cj4+Pgo+Pj4gICAgICAgIGRybV9n ZW1fcmVtb3ZlX3ByaW1lX2hhbmRsZXMob2JqLCBmaWxlX3ByaXYpOwo+Pj4gQEAgLTQwMSw3ICs0 MDEsNyBAQCBkcm1fZ2VtX2hhbmRsZV9jcmVhdGVfdGFpbChzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVf cHJpdiwKPj4+ICAgICAgICBpZiAocmV0KQo+Pj4gICAgICAgICAgICAgICAgZ290byBlcnJfcmVt b3ZlOwo+Pj4KPj4+IC0gICAgIGlmIChvYmotPmZ1bmNzLT5vcGVuKSB7Cj4+PiArICAgICBpZiAo b2JqLT5mdW5jcyAmJiBvYmotPmZ1bmNzLT5vcGVuKSB7Cj4+PiAgICAgICAgICAgICAgICByZXQg PSBvYmotPmZ1bmNzLT5vcGVuKG9iaiwgZmlsZV9wcml2KTsKPj4+ICAgICAgICAgICAgICAgIGlm IChyZXQpCj4+PiAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyX3Jldm9rZTsKPj4+IEBA IC05NzcsNyArOTc3LDcgQEAgZHJtX2dlbV9vYmplY3RfZnJlZShzdHJ1Y3Qga3JlZiAqa3JlZikK Pj4+ICAgICAgICBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiA9Cj4+PiAgICAgICAgICAgICAg ICBjb250YWluZXJfb2Yoa3JlZiwgc3RydWN0IGRybV9nZW1fb2JqZWN0LCByZWZjb3VudCk7Cj4+ Pgo+Pj4gLSAgICAgaWYgKFdBUk5fT04oIW9iai0+ZnVuY3MtPmZyZWUpKQo+Pj4gKyAgICAgaWYg KCFvYmotPmZ1bmNzIHx8IFdBUk5fT04oIW9iai0+ZnVuY3MtPmZyZWUpKQo+Pj4gICAgICAgICAg ICAgICAgcmV0dXJuOwo+Pj4KPj4+ICAgICAgICBvYmotPmZ1bmNzLT5mcmVlKG9iaik7Cj4+PiBA QCAtMTA3OSw3ICsxMDc5LDcgQEAgaW50IGRybV9nZW1fbW1hcF9vYmooc3RydWN0IGRybV9nZW1f b2JqZWN0ICpvYmosIHVuc2lnbmVkIGxvbmcgb2JqX3NpemUsCj4+Pgo+Pj4gICAgICAgIHZtYS0+ dm1fcHJpdmF0ZV9kYXRhID0gb2JqOwo+Pj4KPj4+IC0gICAgIGlmIChvYmotPmZ1bmNzLT5tbWFw KSB7Cj4+PiArICAgICBpZiAob2JqLT5mdW5jcyAmJiBvYmotPmZ1bmNzLT5tbWFwKSB7Cj4+PiAg ICAgICAgICAgICAgICByZXQgPSBvYmotPmZ1bmNzLT5tbWFwKG9iaiwgdm1hKTsKPj4+ICAgICAg ICAgICAgICAgIGlmIChyZXQpIHsKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgZHJtX2dlbV9v YmplY3RfcHV0KG9iaik7Cj4+PiBAQCAtMTA4Nyw3ICsxMDg3LDcgQEAgaW50IGRybV9nZW1fbW1h cF9vYmooc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHVuc2lnbmVkIGxvbmcgb2JqX3NpemUs Cj4+PiAgICAgICAgICAgICAgICB9Cj4+PiAgICAgICAgICAgICAgICBXQVJOX09OKCEodm1hLT52 bV9mbGFncyAmIFZNX0RPTlRFWFBBTkQpKTsKPj4+ICAgICAgICB9IGVsc2Ugewo+Pj4gLSAgICAg ICAgICAgICBpZiAob2JqLT5mdW5jcy0+dm1fb3BzKQo+Pj4gKyAgICAgICAgICAgICBpZiAob2Jq LT5mdW5jcyAmJiBvYmotPmZ1bmNzLT52bV9vcHMpCj4+PiAgICAgICAgICAgICAgICAgICAgICAg IHZtYS0+dm1fb3BzID0gb2JqLT5mdW5jcy0+dm1fb3BzOwo+Pj4gICAgICAgICAgICAgICAgZWxz ZSB7Cj4+PiAgICAgICAgICAgICAgICAgICAgICAgIGRybV9nZW1fb2JqZWN0X3B1dChvYmopOwo+ Pj4gQEAgLTExODgsMTMgKzExODgsMTMgQEAgdm9pZCBkcm1fZ2VtX3ByaW50X2luZm8oc3RydWN0 IGRybV9wcmludGVyICpwLCB1bnNpZ25lZCBpbnQgaW5kZW50LAo+Pj4gICAgICAgIGRybV9wcmlu dGZfaW5kZW50KHAsIGluZGVudCwgImltcG9ydGVkPSVzXG4iLAo+Pj4gICAgICAgICAgICAgICAg ICAgICAgICAgIG9iai0+aW1wb3J0X2F0dGFjaCA/ICJ5ZXMiIDogIm5vIik7Cj4+Pgo+Pj4gLSAg ICAgaWYgKG9iai0+ZnVuY3MtPnByaW50X2luZm8pCj4+PiArICAgICBpZiAob2JqLT5mdW5jcyAm JiBvYmotPmZ1bmNzLT5wcmludF9pbmZvKQo+Pj4gICAgICAgICAgICAgICAgb2JqLT5mdW5jcy0+ cHJpbnRfaW5mbyhwLCBpbmRlbnQsIG9iaik7Cj4+PiAgICB9Cj4+Pgo+Pj4gICAgaW50IGRybV9n ZW1fcGluKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQo+Pj4gICAgewo+Pj4gLSAgICAgaWYg KG9iai0+ZnVuY3MtPnBpbikKPj4+ICsgICAgIGlmIChvYmotPmZ1bmNzICYmIG9iai0+ZnVuY3Mt PnBpbikKPj4+ICAgICAgICAgICAgICAgIHJldHVybiBvYmotPmZ1bmNzLT5waW4ob2JqKTsKPj4+ ICAgICAgICBlbHNlCj4+PiAgICAgICAgICAgICAgICByZXR1cm4gMDsKPj4+IEBAIC0xMjAyLDcg KzEyMDIsNyBAQCBpbnQgZHJtX2dlbV9waW4oc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCj4+ Pgo+Pj4gICAgdm9pZCBkcm1fZ2VtX3VucGluKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQo+ Pj4gICAgewo+Pj4gLSAgICAgaWYgKG9iai0+ZnVuY3MtPnVucGluKQo+Pj4gKyAgICAgaWYgKG9i ai0+ZnVuY3MgJiYgb2JqLT5mdW5jcy0+dW5waW4pCj4+PiAgICAgICAgICAgICAgICBvYmotPmZ1 bmNzLT51bnBpbihvYmopOwo+Pj4gICAgfQo+Pj4KPj4+IEBAIC0xMjEwLDcgKzEyMTAsNyBAQCBp bnQgZHJtX2dlbV92bWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCBzdHJ1Y3QgZG1hX2J1 Zl9tYXAgKm1hcCkKPj4+ICAgIHsKPj4+ICAgICAgICBpbnQgcmV0Owo+Pj4KPj4+IC0gICAgIGlm ICghb2JqLT5mdW5jcy0+dm1hcCkKPj4+ICsgICAgIGlmICghb2JqLT5mdW5jcyB8fCAhb2JqLT5m dW5jcy0+dm1hcCkKPj4+ICAgICAgICAgICAgICAgIHJldHVybiAtRU9QTk9UU1VQUDsKPj4+Cj4+ PiAgICAgICAgcmV0ID0gb2JqLT5mdW5jcy0+dm1hcChvYmosIG1hcCk7Cj4+PiBAQCAtMTIyNyw3 ICsxMjI3LDcgQEAgdm9pZCBkcm1fZ2VtX3Z1bm1hcChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9i aiwgc3RydWN0IGRtYV9idWZfbWFwICptYXApCj4+PiAgICAgICAgaWYgKGRtYV9idWZfbWFwX2lz X251bGwobWFwKSkKPj4+ICAgICAgICAgICAgICAgIHJldHVybjsKPj4+Cj4+PiAtICAgICBpZiAo b2JqLT5mdW5jcy0+dnVubWFwKQo+Pj4gKyAgICAgaWYgKG9iai0+ZnVuY3MgJiYgb2JqLT5mdW5j cy0+dnVubWFwKQo+Pj4gICAgICAgICAgICAgICAgb2JqLT5mdW5jcy0+dnVubWFwKG9iaiwgbWFw KTsKPj4+Cj4+PiAgICAgICAgLyogQWx3YXlzIHNldCB0aGUgbWFwcGluZyB0byBOVUxMLiBDYWxs ZXJzIG1heSByZWx5IG9uIHRoaXMuICovCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2RybV9wcmltZS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wcmltZS5jCj4+PiBpbmRleCA3ZGI1 NWZjZTM1ZDguLjE1NjZkY2Y0MTdlMiAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9k cm1fcHJpbWUuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wcmltZS5jCj4+PiBAQCAt NjIwLDcgKzYyMCw3IEBAIHN0cnVjdCBzZ190YWJsZSAqZHJtX2dlbV9tYXBfZG1hX2J1ZihzdHJ1 Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gsCj4+PiAgICAgICAgaWYgKFdBUk5fT04oZGly ID09IERNQV9OT05FKSkKPj4+ICAgICAgICAgICAgICAgIHJldHVybiBFUlJfUFRSKC1FSU5WQUwp Owo+Pj4KPj4+IC0gICAgIGlmIChXQVJOX09OKCFvYmotPmZ1bmNzLT5nZXRfc2dfdGFibGUpKQo+ Pj4gKyAgICAgaWYgKCFvYmotPmZ1bmNzIHx8IFdBUk5fT04oIW9iai0+ZnVuY3MtPmdldF9zZ190 YWJsZSkpCj4+PiAgICAgICAgICAgICAgICByZXR1cm4gRVJSX1BUUigtRU5PU1lTKTsKPj4+Cj4+ PiAgICAgICAgc2d0ID0gb2JqLT5mdW5jcy0+Z2V0X3NnX3RhYmxlKG9iaik7Cj4+Pgo+PiAtLQo+ PiBUaG9tYXMgWmltbWVybWFubgo+PiBHcmFwaGljcyBEcml2ZXIgRGV2ZWxvcGVyCj4+IFNVU0Ug U29mdHdhcmUgU29sdXRpb25zIEdlcm1hbnkgR21iSAo+PiBNYXhmZWxkc3RyLiA1LCA5MDQwOSBO w7xybmJlcmcsIEdlcm1hbnkKPj4gKEhSQiAzNjgwOSwgQUcgTsO8cm5iZXJnKQo+PiBHZXNjaMOk ZnRzZsO8aHJlcjogRmVsaXggSW1lbmTDtnJmZmVyCj4+Cj4KCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vYW1kLWdmeAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.1 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9396AC433E6 for ; Mon, 1 Mar 2021 10:25:24 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 309A064E10 for ; Mon, 1 Mar 2021 10:25:24 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 309A064E10 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id A01E16E58E; Mon, 1 Mar 2021 10:25:22 +0000 (UTC) Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com [IPv6:2a00:1450:4864:20::52c]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5F4A76E588; Mon, 1 Mar 2021 10:25:21 +0000 (UTC) Received: by mail-ed1-x52c.google.com with SMTP id bd6so6699310edb.10; Mon, 01 Mar 2021 02:25:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=DRlEv2sys9QkiKbmliPCTT/sTHahG9YuX/0Rbkd9Jtg=; b=Fzr910IKkf6RXg76Bo40pbPs0WIy/7nQmkXVNhYUD8ZZHH2M+3/4exnt5xEzNrERCH 1IZ5iCFmXS6fsm1RngkenJDraJKAYGPwGQM+4BivpAnmWiWcnNVT6S+JpXutH4gzb2QP q4jkVWFvnwkZEWgGTVDctF+AhCL7bxcnIKSNOkNvlebKZGWqlrNk83vb0dQBP0+/4aL+ HxarGmejC8CgfYePHNVrTNW2vyOZ7rE88sMwP4hqOVwB8xnDqVjsKF6G+y90wIH0TDM1 fpi6rHyDpzvMwWsSX80VtLRlERHutL83mxwxB0enPgN86d/PXD1ilVMASgvrbiu3RqYQ 456Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=DRlEv2sys9QkiKbmliPCTT/sTHahG9YuX/0Rbkd9Jtg=; b=moOKlGcM/iG3Myx6sceeijTxoVAHx6gtE0sgJJmzdw6Wswsfttrh3bWUQ8Cx1MUrJm mVpGh2k+nPk92btIfV2I+NwFgPT2vAyR9jdpySG21DDOrpdy+lm6DNuWCJAy5+5aeCA0 50j57Muk26XKTqu1OydH/kNO6KhxD7+ge/Y9tXWM+/OkTJ/u0Ydq0wjTtyGQgLMXR/BA /v4jh29PtyqwVd9fnHsN0qUaUMmSpkaaX/zsU3uAnXFDJDELkl9n114bpA/Cz9HRgCcX ryMuYT0J6qk/iEd57Qm+FLEh8f7jOf5hw7K0kpMn6rojwPvusWSnavDQYZ+ZVx8J0dkJ dQTg== X-Gm-Message-State: AOAM530qoOcAVD3o0bWQk0v49olJEuoLdG8XYEyJUZuJSyDCNDDEDUwW yf0V3a74jyOFKs8OtRvOy3k= X-Google-Smtp-Source: ABdhPJxMWyLYY6IrUVRxFic8f9aV04MXckwDeUGJXYFcDONSoK2XkaRckFSI50HypIfo35b/Go6s+g== X-Received: by 2002:aa7:dcc9:: with SMTP id w9mr15873855edu.353.1614594319851; Mon, 01 Mar 2021 02:25:19 -0800 (PST) Received: from ?IPv6:2a02:908:1252:fb60:a93a:2306:54f2:28c4? ([2a02:908:1252:fb60:a93a:2306:54f2:28c4]) by smtp.gmail.com with ESMTPSA id a7sm14414096edr.29.2021.03.01.02.25.18 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 01 Mar 2021 02:25:18 -0800 (PST) Subject: Re: [PATCH] drm/gem: add checks of drm_gem_object->funcs To: Daniel Vetter , Thomas Zimmermann , Gerd Hoffmann References: <20210228161022.53468-1-ledoian@kam.mff.cuni.cz> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: <5bd3c672-3277-69b5-27ca-898c8cb79f9e@gmail.com> Date: Mon, 1 Mar 2021 11:25:17 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US 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: "amd-gfx@lists.freedesktop.org" , Dave Airlie , dri-devel , =?UTF-8?Q?Pavel_Turinsk=c3=bd?= , stable , Alexander Deucher , =?UTF-8?Q?Christian_K=c3=b6nig?= Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" CgpBbSAwMS4wMy4yMSB1bSAxMTowNCBzY2hyaWViIERhbmllbCBWZXR0ZXI6Cj4gT24gTW9uLCBN YXIgMSwgMjAyMSBhdCAxMDo1NiBBTSBUaG9tYXMgWmltbWVybWFubiA8dHppbW1lcm1hbm5Ac3Vz ZS5kZT4gd3JvdGU6Cj4+IChjYydpbmcgYW1kIGRldnMpCj4+Cj4+IEhpCj4+Cj4+IEFtIDI4LjAy LjIxIHVtIDE3OjEwIHNjaHJpZWIgUGF2ZWwgVHVyaW5za8O9Ogo+Pj4gVGhlIGNoZWNrcyB3ZXJl IHJlbW92ZWQgaW4gY29tbWl0IGQ2OTNkZWY0ZmQxYyAoImRybTogUmVtb3ZlIG9ic29sZXRlIEdF TQo+Pj4gYW5kIFBSSU1FIGNhbGxiYWNrcyBmcm9tIHN0cnVjdCBkcm1fZHJpdmVyIikgYW5kIGNh biBsZWFkIHRvIGZvbGxvd2luZwo+Pj4ga2VybmVsIG9vcHM6Cj4+IFRoYW5rcyBmb3IgcmVwb3J0 aW5nLiBBbGwgZHJpdmVycyBhcmUgc3VwcG9zZWQgdG8gc2V0IHRoZSBmdW5jcyBwb2ludGVyCj4+ IGluIHRoZWlyIEdFTSBvYmplY3RzLiBUaGlzIGxvb2tzIGxpa2UgYSByYWRlb24gYnVnLiBBZGRp bmcgdGhlIEFNRCBkZXZzLgo+IExvb2tzIGxpa2Ugd2UncmUgc2V0dGluZyBvYmotPmZ1bmNzIG9u bHkgaW4gcmFkZW9uX2dlbV9vYmplY3RfY3JlYXRlLAo+IGJ1dCBzaG91bGQgc2V0IGl0IGluIHJh ZGVvbl9ib19jcmVhdGUgaW5zdGVhZCBzbyBpdCBjYXRjaGVzIGludGVybmFsCj4gZnVuY3Rpb25z IHRvby4gSSB0aGluayB0aGlzIHdhcyBtaXNzZWQgaW4KPgo+IGNvbW1pdCBjZTc3MDM4ZmRhZTM4 NWY5NDc3NTdhMzc1NzNkOTBmMmU4M2YwMjcxCj4gQXV0aG9yOiBHZXJkIEhvZmZtYW5uIDxrcmF4 ZWxAcmVkaGF0LmNvbT4KPiBEYXRlOiAgIE1vbiBBdWcgNSAxNjowMTowNiAyMDE5ICswMjAwCj4K PiAgICAgZHJtL3JhZGVvbjogdXNlIGVtYmVkZGVkIGdlbSBvYmplY3QKCk1heWJlIHRoZSBzYW1l IHByb2JsZW0gd2UgaGFkIGZvciBhbWRncHUgdGhhdCB0aGUgZnVuY3Rpb24gcG9pbnRlciAKd2Fz bid0IHNldCBmb3IgaW1wb3J0ZWQgRE1BLWJ1ZnM/CgpSZWdhcmRzLApDaHJpc3RpYW4uCgo+Cj4g QWRkaW5nIEdlcmQuCj4gLURhbmllbAo+Cj4+IEJlc3QgcmVnYXJkcwo+PiBUaG9tYXMKPj4KPj4+ IFsgIDEzOS40NDkwOThdIEJVRzoga2VybmVsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSwgYWRk cmVzczogMDAwMDAwMDAwMDAwMDAwOAo+Pj4gWyAgMTM5LjQ0OTExMF0gI1BGOiBzdXBlcnZpc29y IHJlYWQgYWNjZXNzIGluIGtlcm5lbCBtb2RlCj4+PiBbICAxMzkuNDQ5MTEzXSAjUEY6IGVycm9y X2NvZGUoMHgwMDAwKSAtIG5vdC1wcmVzZW50IHBhZ2UKPj4+IFsgIDEzOS40NDkxMTZdIFBHRCAw IFA0RCAwCj4+PiBbICAxMzkuNDQ5MTIxXSBPb3BzOiAwMDAwIFsjMV0gUFJFRU1QVCBTTVAgUFRJ Cj4+PiBbICAxMzkuNDQ5MTI2XSBDUFU6IDQgUElEOiAxMTgxIENvbW06IFhvcmcgTm90IHRhaW50 ZWQgNS4xMS4yTEVkb2lhbiAjMgo+Pj4gWyAgMTM5LjQ0OTEzMF0gSGFyZHdhcmUgbmFtZTogR2ln YWJ5dGUgVGVjaG5vbG9neSBDby4sIEx0ZC4gVG8gYmUgZmlsbGVkIGJ5IE8uRS5NLi9aNzctRFMz SCwgQklPUyBGNCAwNC8yNS8yMDEyCj4+PiBbICAxMzkuNDQ5MTMzXSBSSVA6IDAwMTA6ZHJtX2dl bV9oYW5kbGVfY3JlYXRlX3RhaWwrMHhjYi8weDE5MCBbZHJtXQo+Pj4gWyAgMTM5LjQ0OTE4NV0g Q29kZTogMDAgNDggODkgZWYgZTggMDYgYjQgNDkgZjcgNDUgODUgZTQgNzggNzcgNDggOGQgNmIg MTggNGMgODkgZWUgNDggODkgZWYgZTggYzIgZjUgMDAgMDAgODkgYzIgODUgYzAgNzUgM2UgNDgg OGIgODMgNDAgMDEgMDAgMDAgPDQ4PiA4YiA0MCAwCj4+PiA4IDQ4IDg1IGMwIDc0IDBmIDRjIDg5 IGVlIDQ4IDg5IGRmIGU4IDcxIDVkIDg3IGY3IDg1IGMwCj4+PiBbICAxMzkuNDQ5MTkwXSBSU1A6 IDAwMTg6ZmZmZmJlMjFjMTk0YmQyOCBFRkxBR1M6IDAwMDEwMjQ2Cj4+PiBbICAxMzkuNDQ5MTk0 XSBSQVg6IDAwMDAwMDAwMDAwMDAwMDAgUkJYOiBmZmZmOWRhOWIzY2FmMDc4IFJDWDogMDAwMDAw MDAwMDAwMDAwMAo+Pj4gWyAgMTM5LjQ0OTE5N10gUkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJTSTog ZmZmZmZmZmZjMDM5Yjg5MyBSREk6IDAwMDAwMDAwMDAwMDAwMDAKPj4+IFsgIDEzOS40NDkxOTld IFJCUDogZmZmZjlkYTliM2NhZjA5MCBSMDg6IDAwMDAwMDAwMDAwMDAwNDAgUjA5OiBmZmZmOWRh OTgzYjkxMWMwCj4+PiBbICAxMzkuNDQ5MjAyXSBSMTA6IGZmZmY5ZGE5ODQ3NDllMDAgUjExOiBm ZmZmOWRhOTg1OWJmYzM4IFIxMjogMDAwMDAwMDAwMDAwMDAwNwo+Pj4gWyAgMTM5LjQ0OTIwNF0g UjEzOiBmZmZmOWRhOTg1OWJmYzAwIFIxNDogZmZmZjlkYTk4NTliZmM1MCBSMTU6IGZmZmY5ZGE5 ODU5YmZjMzgKPj4+IFsgIDEzOS40NDkyMDddIEZTOiAgMDAwMDdmNjMzMmE1NjkwMCgwMDAwKSBH UzpmZmZmOWRhZWE3YjAwMDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKPj4+IFsgIDEz OS40NDkyMTFdIENTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAw MzMKPj4+IFsgIDEzOS40NDkyMTRdIENSMjogMDAwMDAwMDAwMDAwMDAwOCBDUjM6IDAwMDAwMDAx MzE5YjgwMDUgQ1I0OiAwMDAwMDAwMDAwMTcwNmUwCj4+PiBbICAxMzkuNDQ5MjE3XSBDYWxsIFRy YWNlOgo+Pj4gWyAgMTM5LjQ0OTIyNF0gIGRybV9nZW1fcHJpbWVfZmRfdG9faGFuZGxlKzB4ZmYv MHgxZDAgW2RybV0KPj4+IFsgIDEzOS40NDkyNzRdICA/IGRybV9wcmltZV9kZXN0cm95X2ZpbGVf cHJpdmF0ZSsweDIwLzB4MjAgW2RybV0KPj4+IFsgIDEzOS40NDkzMjNdICBkcm1faW9jdGxfa2Vy bmVsKzB4YWMvMHhmMCBbZHJtXQo+Pj4gWyAgMTM5LjQ0OTM2M10gIGRybV9pb2N0bCsweDIwZi8w eDNiMCBbZHJtXQo+Pj4gWyAgMTM5LjQ0OTQwM10gID8gZHJtX3ByaW1lX2Rlc3Ryb3lfZmlsZV9w cml2YXRlKzB4MjAvMHgyMCBbZHJtXQo+Pj4gWyAgMTM5LjQ0OTQ1NF0gIHJhZGVvbl9kcm1faW9j dGwrMHg0OS8weDgwIFtyYWRlb25dCj4+PiBbICAxMzkuNDQ5NTAwXSAgX194NjRfc3lzX2lvY3Rs KzB4ODQvMHhjMAo+Pj4gWyAgMTM5LjQ0OTUwN10gIGRvX3N5c2NhbGxfNjQrMHgzMy8weDQwCj4+ PiBbICAxMzkuNDQ5NTE0XSAgZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDQvMHhh OQo+Pj4gWyAgMTM5LjQ0OTUyMl0gUklQOiAwMDMzOjB4N2Y2MzMzMGZiZTZiCj4+PiBbICAxMzku NDQ5NTI2XSBDb2RlOiBmZiBmZiBmZiA4NSBjMCA3OSA4YiA0OSBjNyBjNCBmZiBmZiBmZiBmZiA1 YiA1ZCA0YyA4OSBlMCA0MSA1YyBjMyA2NiAwZiAxZiA4NCAwMCAwMCAwMCAwMCAwMCBmMyAwZiAx ZSBmYSBiOCAxMCAwMCAwMCAwMCAwZiAwNSA8NDg+IDNkIDAxIGYKPj4+IDAgZmYgZmYgNzMgMDEg YzMgNDggOGIgMGQgZDUgYWYgMGMgMDAgZjcgZDggNjQgODkgMDEgNDgKPj4+IFsgIDEzOS40NDk1 MjldIFJTUDogMDAyYjowMDAwN2ZmZjFlOWM0NDM4IEVGTEFHUzogMDAwMDAyNDYgT1JJR19SQVg6 IDAwMDAwMDAwMDAwMDAwMTAKPj4+IFsgIDEzOS40NDk1MzRdIFJBWDogZmZmZmZmZmZmZmZmZmZk YSBSQlg6IDAwMDA3ZmZmMWU5YzQ0N2MgUkNYOiAwMDAwN2Y2MzMzMGZiZTZiCj4+PiBbICAxMzku NDQ5NTM3XSBSRFg6IDAwMDA3ZmZmMWU5YzQ0N2MgUlNJOiAwMDAwMDAwMGMwMGM2NDJlIFJESTog MDAwMDAwMDAwMDAwMDAxMgo+Pj4gWyAgMTM5LjQ0OTUzOV0gUkJQOiAwMDAwMDAwMGMwMGM2NDJl IFIwODogMDAwMDdmZmYxZTljNDUyMCBSMDk6IDAwMDA3ZjYzMzMxYzdhNjAKPj4+IFsgIDEzOS40 NDk1NDJdIFIxMDogMDAwMDdmNjMyOWZiOWFiMCBSMTE6IDAwMDAwMDAwMDAwMDAyNDYgUjEyOiAw MDAwNTVmNjk4MTBhZDQwCj4+PiBbICAxMzkuNDQ5NTQ0XSBSMTM6IDAwMDAwMDAwMDAwMDAwMTIg UjE0OiAwMDAwMDAwMDAwMTAwMDAwIFIxNTogMDAwMDdmZmYxZTljNGMyMAo+Pj4gWyAgMTM5LjQ0 OTU0OV0gTW9kdWxlcyBsaW5rZWQgaW46IDgwMjFxIGdhcnAgbXJwIGJyaWRnZSBzdHAgbGxjIG5s c19pc284ODU5XzEgdmZhdCBmYXQgZnVzZSBidHJmcyBibGFrZTJiX2dlbmVyaWMgeG9yIHJhaWQ2 X3BxIGxpYmNyYzMyYyBjcnlwdG9fdXNlciB0dW4gaTJjX2RlCj4+PiB2IGl0ODcgaHdtb25fdmlk IHNuZF9zZXEgc25kX2hkYV9jb2RlY19yZWFsdGVrIHNuZF9oZGFfY29kZWNfZ2VuZXJpYyBsZWR0 cmlnX2F1ZGlvIHNnIHNuZF9oZGFfY29kZWNfaGRtaSB2aXJ0aW9fYmFsbG9vbiBzbmRfaGRhX2lu dGVsIHZpcnRpb19jb25zb2xlIHNuZF9pbnRlbF8KPj4+IGRzcGNmZyBzb3VuZHdpcmVfaW50ZWwg dmlydGlvX3BjaSBzb3VuZHdpcmVfZ2VuZXJpY19hbGxvY2F0aW9uIHNvdW5kd2lyZV9jYWRlbmNl IHZpcnRpb19ibGsgc25kX2hkYV9jb2RlYyBpbnRlbF9yYXBsX21zciBidHVzYiBpbnRlbF9yYXBs X2NvbW1vbiB2aXJ0aW9fbmV0IGJ0cgo+Pj4gdGwgbmV0X2ZhaWxvdmVyIHV2Y3ZpZGVvIHNuZF91 c2JfYXVkaW8gc25kX2hkYV9jb3JlIGJ0YmNtIHg4Nl9wa2dfdGVtcF90aGVybWFsIGZhaWxvdmVy IHNvdW5kd2lyZV9idXMgYnRpbnRlbCBpbnRlbF9wb3dlcmNsYW1wIHNuZF9zb2NfY29yZSBjb3Jl dGVtcCBzbmRfdXNibWlkCj4+PiBpX2xpYiBpVENPX3dkdCB2aWRlb2J1ZjJfdm1hbGxvYyBibHVl dG9vdGggaW50ZWxfcG1jX2J4dCBzbmRfaHdkZXAga3ZtX2ludGVsIHZpZGVvYnVmMl9tZW1vcHMg c25kX3Jhd21pZGkgc25kX2NvbXByZXNzIHZpZGVvYnVmMl92NGwyIGFjOTdfYnVzIHNuZF9wY21f ZG1hZW5naW4KPj4+IGUgaVRDT192ZW5kb3Jfc3VwcG9ydCBjcmN0MTBkaWZfcGNsbXVsIGF0MjQg Y3JjMzJfcGNsbXVsIHZpZGVvYnVmMl9jb21tb24gc25kX3NlcV9kZXZpY2UgbWVpX2hkY3Agc25k X3BjbSBnaGFzaF9jbG11bG5pX2ludGVsIGt2bSB2aWRlb2RldiBhZXNuaV9pbnRlbCBjcnlwdG9f cwo+Pj4gaW1kIHNuZF90aW1lciBzbmQgY3J5cHRkIG1jIGVjZGhfZ2VuZXJpYwo+Pj4gWyAgMTM5 LjQ0OTY0Ml0gIGdsdWVfaGVscGVyIHJma2lsbCBzb3VuZGNvcmUgam95ZGV2IG1vdXNlZGV2IHJh cGwgZWNjIGludGVsX2NzdGF0ZSByODE2OSBpMmNfaTgwMSBpbnRlbF91bmNvcmUgYXRsMWMgcmVh bHRlayBpcnFieXBhc3MgbWRpb19kZXZyZXMgbWVpX21lIGxpYnBoCj4+PiB5IGkyY19zbWJ1cyBt ZWkgbWFjX2hpZCBscGNfaWNoIGV4dDQgY3JjMzJjX2dlbmVyaWMgY3JjMTYgbWJjYWNoZSBqYmQy IGRtX21vZCBhdGFfZ2VuZXJpYyBwYXRhX2FjcGkgdWFzIHVzYl9zdG9yYWdlIHNyX21vZCBjcmMz MmNfaW50ZWwgc2VyaW9fcmF3IGNkcm9tIHhoY2lfcGMKPj4+IGkgcGF0YV9qbWljcm9uIHhoY2lf cGNpX3JlbmVzYXMgcmFkZW9uIHVzYmhpZCBpOTE1IGludGVsX2d0dCBub3V2ZWF1IG14bV93bWkg d21pIHZpZGVvIGkyY19hbGdvX2JpdCBkcm1fdHRtX2hlbHBlciB0dG0gZHJtX2ttc19oZWxwZXIg c3lzY29weWFyZWEgc3lzZmlsbHJlY3Qgcwo+Pj4geXNpbWdibHQgZmJfc3lzX2ZvcHMgY2VjIGRy bSBhZ3BnYXJ0Cj4+PiBbICAxMzkuNDQ5NzA3XSBDUjI6IDAwMDAwMDAwMDAwMDAwMDgKPj4+IFsg IDEzOS40NDk3MTBdIC0tLVsgZW5kIHRyYWNlIGY1Y2U1Nzc0NDk4ZDE4ZTEgXS0tLQo+Pj4KPj4+ IFNpZ25lZC1vZmYtYnk6IFBhdmVsIFR1cmluc2vDvSA8bGVkb2lhbkBrYW0ubWZmLmN1bmkuY3o+ Cj4+PiBGaXhlczogZDY5M2RlZjRmZDFjICgiZHJtOiBSZW1vdmUgb2Jzb2xldGUgR0VNIGFuZCBQ UklNRSBjYWxsYmFja3MgZnJvbSBzdHJ1Y3QgZHJtX2RyaXZlciIpCj4+PiBDYzogc3RhYmxlQHZn ZXIua2VybmVsLm9yZwo+Pj4gLS0tCj4+Pgo+Pj4gVGhpcyBpcyBhIHZlcnkgc3ltcHRvbWF0aWMg cGF0Y2ggYXJvdW5kIGlzc3VlIEkgcmFuIGludG8uIEkgZG8gbm90IGtub3cgaWYgdGhlCj4+PiBm dW5jcyBwcm9wZXJ0eSBzaG91bGQgZXZlciBiZSBOVUxMLiBJIGJhc2ljYWxseSByZXN0b3JlZCBh bGwgdGhlIGNoZWNrcyB0aGF0Cj4+PiB3ZXJlIHJlbW92ZWQgaW4gdGhlIG1lbnRpb25lZCBjb21t aXQuIFVuZm9ydHVuYXRlbHksIEkgZG8gbm90IHVuZGVyc3RhbmQgZHJtCj4+PiBub3Igd2lsbCBJ IGhhdmUgdGltZSB0byBkZWx2ZSBpbnRvIGl0IGluIGZvcnNlZWFibGUgZnV0dXJlLgo+Pj4KPj4+ ICAgIGRyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtLmMgICB8IDIwICsrKysrKysrKystLS0tLS0tLS0t Cj4+PiAgICBkcml2ZXJzL2dwdS9kcm0vZHJtX3ByaW1lLmMgfCAgMiArLQo+Pj4gICAgMiBmaWxl cyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKPj4+Cj4+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f Z2VtLmMKPj4+IGluZGV4IDkyZjg5Y2VlMjEzZS4uNDUxZjI5MGM3MzdjIDEwMDY0NAo+Pj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2RybV9nZW0uYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9nZW0uYwo+Pj4gQEAgLTI0OSw3ICsyNDksNyBAQCBkcm1fZ2VtX29iamVjdF9yZWxlYXNlX2hh bmRsZShpbnQgaWQsIHZvaWQgKnB0ciwgdm9pZCAqZGF0YSkKPj4+ICAgICAgICBzdHJ1Y3QgZHJt X2ZpbGUgKmZpbGVfcHJpdiA9IGRhdGE7Cj4+PiAgICAgICAgc3RydWN0IGRybV9nZW1fb2JqZWN0 ICpvYmogPSBwdHI7Cj4+Pgo+Pj4gLSAgICAgaWYgKG9iai0+ZnVuY3MtPmNsb3NlKQo+Pj4gKyAg ICAgaWYgKG9iai0+ZnVuY3MgJiYgb2JqLT5mdW5jcy0+Y2xvc2UpCj4+PiAgICAgICAgICAgICAg ICBvYmotPmZ1bmNzLT5jbG9zZShvYmosIGZpbGVfcHJpdik7Cj4+Pgo+Pj4gICAgICAgIGRybV9n ZW1fcmVtb3ZlX3ByaW1lX2hhbmRsZXMob2JqLCBmaWxlX3ByaXYpOwo+Pj4gQEAgLTQwMSw3ICs0 MDEsNyBAQCBkcm1fZ2VtX2hhbmRsZV9jcmVhdGVfdGFpbChzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVf cHJpdiwKPj4+ICAgICAgICBpZiAocmV0KQo+Pj4gICAgICAgICAgICAgICAgZ290byBlcnJfcmVt b3ZlOwo+Pj4KPj4+IC0gICAgIGlmIChvYmotPmZ1bmNzLT5vcGVuKSB7Cj4+PiArICAgICBpZiAo b2JqLT5mdW5jcyAmJiBvYmotPmZ1bmNzLT5vcGVuKSB7Cj4+PiAgICAgICAgICAgICAgICByZXQg PSBvYmotPmZ1bmNzLT5vcGVuKG9iaiwgZmlsZV9wcml2KTsKPj4+ICAgICAgICAgICAgICAgIGlm IChyZXQpCj4+PiAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyX3Jldm9rZTsKPj4+IEBA IC05NzcsNyArOTc3LDcgQEAgZHJtX2dlbV9vYmplY3RfZnJlZShzdHJ1Y3Qga3JlZiAqa3JlZikK Pj4+ICAgICAgICBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiA9Cj4+PiAgICAgICAgICAgICAg ICBjb250YWluZXJfb2Yoa3JlZiwgc3RydWN0IGRybV9nZW1fb2JqZWN0LCByZWZjb3VudCk7Cj4+ Pgo+Pj4gLSAgICAgaWYgKFdBUk5fT04oIW9iai0+ZnVuY3MtPmZyZWUpKQo+Pj4gKyAgICAgaWYg KCFvYmotPmZ1bmNzIHx8IFdBUk5fT04oIW9iai0+ZnVuY3MtPmZyZWUpKQo+Pj4gICAgICAgICAg ICAgICAgcmV0dXJuOwo+Pj4KPj4+ICAgICAgICBvYmotPmZ1bmNzLT5mcmVlKG9iaik7Cj4+PiBA QCAtMTA3OSw3ICsxMDc5LDcgQEAgaW50IGRybV9nZW1fbW1hcF9vYmooc3RydWN0IGRybV9nZW1f b2JqZWN0ICpvYmosIHVuc2lnbmVkIGxvbmcgb2JqX3NpemUsCj4+Pgo+Pj4gICAgICAgIHZtYS0+ dm1fcHJpdmF0ZV9kYXRhID0gb2JqOwo+Pj4KPj4+IC0gICAgIGlmIChvYmotPmZ1bmNzLT5tbWFw KSB7Cj4+PiArICAgICBpZiAob2JqLT5mdW5jcyAmJiBvYmotPmZ1bmNzLT5tbWFwKSB7Cj4+PiAg ICAgICAgICAgICAgICByZXQgPSBvYmotPmZ1bmNzLT5tbWFwKG9iaiwgdm1hKTsKPj4+ICAgICAg ICAgICAgICAgIGlmIChyZXQpIHsKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgZHJtX2dlbV9v YmplY3RfcHV0KG9iaik7Cj4+PiBAQCAtMTA4Nyw3ICsxMDg3LDcgQEAgaW50IGRybV9nZW1fbW1h cF9vYmooc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHVuc2lnbmVkIGxvbmcgb2JqX3NpemUs Cj4+PiAgICAgICAgICAgICAgICB9Cj4+PiAgICAgICAgICAgICAgICBXQVJOX09OKCEodm1hLT52 bV9mbGFncyAmIFZNX0RPTlRFWFBBTkQpKTsKPj4+ICAgICAgICB9IGVsc2Ugewo+Pj4gLSAgICAg ICAgICAgICBpZiAob2JqLT5mdW5jcy0+dm1fb3BzKQo+Pj4gKyAgICAgICAgICAgICBpZiAob2Jq LT5mdW5jcyAmJiBvYmotPmZ1bmNzLT52bV9vcHMpCj4+PiAgICAgICAgICAgICAgICAgICAgICAg IHZtYS0+dm1fb3BzID0gb2JqLT5mdW5jcy0+dm1fb3BzOwo+Pj4gICAgICAgICAgICAgICAgZWxz ZSB7Cj4+PiAgICAgICAgICAgICAgICAgICAgICAgIGRybV9nZW1fb2JqZWN0X3B1dChvYmopOwo+ Pj4gQEAgLTExODgsMTMgKzExODgsMTMgQEAgdm9pZCBkcm1fZ2VtX3ByaW50X2luZm8oc3RydWN0 IGRybV9wcmludGVyICpwLCB1bnNpZ25lZCBpbnQgaW5kZW50LAo+Pj4gICAgICAgIGRybV9wcmlu dGZfaW5kZW50KHAsIGluZGVudCwgImltcG9ydGVkPSVzXG4iLAo+Pj4gICAgICAgICAgICAgICAg ICAgICAgICAgIG9iai0+aW1wb3J0X2F0dGFjaCA/ICJ5ZXMiIDogIm5vIik7Cj4+Pgo+Pj4gLSAg ICAgaWYgKG9iai0+ZnVuY3MtPnByaW50X2luZm8pCj4+PiArICAgICBpZiAob2JqLT5mdW5jcyAm JiBvYmotPmZ1bmNzLT5wcmludF9pbmZvKQo+Pj4gICAgICAgICAgICAgICAgb2JqLT5mdW5jcy0+ cHJpbnRfaW5mbyhwLCBpbmRlbnQsIG9iaik7Cj4+PiAgICB9Cj4+Pgo+Pj4gICAgaW50IGRybV9n ZW1fcGluKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQo+Pj4gICAgewo+Pj4gLSAgICAgaWYg KG9iai0+ZnVuY3MtPnBpbikKPj4+ICsgICAgIGlmIChvYmotPmZ1bmNzICYmIG9iai0+ZnVuY3Mt PnBpbikKPj4+ICAgICAgICAgICAgICAgIHJldHVybiBvYmotPmZ1bmNzLT5waW4ob2JqKTsKPj4+ ICAgICAgICBlbHNlCj4+PiAgICAgICAgICAgICAgICByZXR1cm4gMDsKPj4+IEBAIC0xMjAyLDcg KzEyMDIsNyBAQCBpbnQgZHJtX2dlbV9waW4oc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCj4+ Pgo+Pj4gICAgdm9pZCBkcm1fZ2VtX3VucGluKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQo+ Pj4gICAgewo+Pj4gLSAgICAgaWYgKG9iai0+ZnVuY3MtPnVucGluKQo+Pj4gKyAgICAgaWYgKG9i ai0+ZnVuY3MgJiYgb2JqLT5mdW5jcy0+dW5waW4pCj4+PiAgICAgICAgICAgICAgICBvYmotPmZ1 bmNzLT51bnBpbihvYmopOwo+Pj4gICAgfQo+Pj4KPj4+IEBAIC0xMjEwLDcgKzEyMTAsNyBAQCBp bnQgZHJtX2dlbV92bWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCBzdHJ1Y3QgZG1hX2J1 Zl9tYXAgKm1hcCkKPj4+ICAgIHsKPj4+ICAgICAgICBpbnQgcmV0Owo+Pj4KPj4+IC0gICAgIGlm ICghb2JqLT5mdW5jcy0+dm1hcCkKPj4+ICsgICAgIGlmICghb2JqLT5mdW5jcyB8fCAhb2JqLT5m dW5jcy0+dm1hcCkKPj4+ICAgICAgICAgICAgICAgIHJldHVybiAtRU9QTk9UU1VQUDsKPj4+Cj4+ PiAgICAgICAgcmV0ID0gb2JqLT5mdW5jcy0+dm1hcChvYmosIG1hcCk7Cj4+PiBAQCAtMTIyNyw3 ICsxMjI3LDcgQEAgdm9pZCBkcm1fZ2VtX3Z1bm1hcChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9i aiwgc3RydWN0IGRtYV9idWZfbWFwICptYXApCj4+PiAgICAgICAgaWYgKGRtYV9idWZfbWFwX2lz X251bGwobWFwKSkKPj4+ICAgICAgICAgICAgICAgIHJldHVybjsKPj4+Cj4+PiAtICAgICBpZiAo b2JqLT5mdW5jcy0+dnVubWFwKQo+Pj4gKyAgICAgaWYgKG9iai0+ZnVuY3MgJiYgb2JqLT5mdW5j cy0+dnVubWFwKQo+Pj4gICAgICAgICAgICAgICAgb2JqLT5mdW5jcy0+dnVubWFwKG9iaiwgbWFw KTsKPj4+Cj4+PiAgICAgICAgLyogQWx3YXlzIHNldCB0aGUgbWFwcGluZyB0byBOVUxMLiBDYWxs ZXJzIG1heSByZWx5IG9uIHRoaXMuICovCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2RybV9wcmltZS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wcmltZS5jCj4+PiBpbmRleCA3ZGI1 NWZjZTM1ZDguLjE1NjZkY2Y0MTdlMiAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9k cm1fcHJpbWUuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wcmltZS5jCj4+PiBAQCAt NjIwLDcgKzYyMCw3IEBAIHN0cnVjdCBzZ190YWJsZSAqZHJtX2dlbV9tYXBfZG1hX2J1ZihzdHJ1 Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gsCj4+PiAgICAgICAgaWYgKFdBUk5fT04oZGly ID09IERNQV9OT05FKSkKPj4+ICAgICAgICAgICAgICAgIHJldHVybiBFUlJfUFRSKC1FSU5WQUwp Owo+Pj4KPj4+IC0gICAgIGlmIChXQVJOX09OKCFvYmotPmZ1bmNzLT5nZXRfc2dfdGFibGUpKQo+ Pj4gKyAgICAgaWYgKCFvYmotPmZ1bmNzIHx8IFdBUk5fT04oIW9iai0+ZnVuY3MtPmdldF9zZ190 YWJsZSkpCj4+PiAgICAgICAgICAgICAgICByZXR1cm4gRVJSX1BUUigtRU5PU1lTKTsKPj4+Cj4+ PiAgICAgICAgc2d0ID0gb2JqLT5mdW5jcy0+Z2V0X3NnX3RhYmxlKG9iaik7Cj4+Pgo+PiAtLQo+ PiBUaG9tYXMgWmltbWVybWFubgo+PiBHcmFwaGljcyBEcml2ZXIgRGV2ZWxvcGVyCj4+IFNVU0Ug U29mdHdhcmUgU29sdXRpb25zIEdlcm1hbnkgR21iSAo+PiBNYXhmZWxkc3RyLiA1LCA5MDQwOSBO w7xybmJlcmcsIEdlcm1hbnkKPj4gKEhSQiAzNjgwOSwgQUcgTsO8cm5iZXJnKQo+PiBHZXNjaMOk ZnRzZsO8aHJlcjogRmVsaXggSW1lbmTDtnJmZmVyCj4+Cj4KCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRl dmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-14.3 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E8522C433E0 for ; Mon, 1 Mar 2021 10:26:37 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9AE8964DBD for ; Mon, 1 Mar 2021 10:26:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234123AbhCAK0Y (ORCPT ); Mon, 1 Mar 2021 05:26:24 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43348 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234172AbhCAK0B (ORCPT ); Mon, 1 Mar 2021 05:26:01 -0500 Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com [IPv6:2a00:1450:4864:20::52d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 20C79C06174A for ; Mon, 1 Mar 2021 02:25:21 -0800 (PST) Received: by mail-ed1-x52d.google.com with SMTP id w21so19936467edc.7 for ; Mon, 01 Mar 2021 02:25:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=DRlEv2sys9QkiKbmliPCTT/sTHahG9YuX/0Rbkd9Jtg=; b=Fzr910IKkf6RXg76Bo40pbPs0WIy/7nQmkXVNhYUD8ZZHH2M+3/4exnt5xEzNrERCH 1IZ5iCFmXS6fsm1RngkenJDraJKAYGPwGQM+4BivpAnmWiWcnNVT6S+JpXutH4gzb2QP q4jkVWFvnwkZEWgGTVDctF+AhCL7bxcnIKSNOkNvlebKZGWqlrNk83vb0dQBP0+/4aL+ HxarGmejC8CgfYePHNVrTNW2vyOZ7rE88sMwP4hqOVwB8xnDqVjsKF6G+y90wIH0TDM1 fpi6rHyDpzvMwWsSX80VtLRlERHutL83mxwxB0enPgN86d/PXD1ilVMASgvrbiu3RqYQ 456Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=DRlEv2sys9QkiKbmliPCTT/sTHahG9YuX/0Rbkd9Jtg=; b=fvewW41vpLqcTp2CyfBkLeWktwL2PIfN51PwrrlJUGbhQvRn4/Imc6SHktqAWsZBU3 AVtdsPdB+zdUzBuSe2HGjCx8n7d4wEKS5hlZUbg/0BZdK9Kx7DzTmL1UzMXaLRa0sVno alqDdNGy/5FaXL/XRAtHeTQ4wS05xHXADttb6gHtVv1xpgzZZjF+KMRnIHg3824V3lhx lZkgL/f7KPyvNCZB4xzhsYEZXr3O/yB+pO3eolTZnLnwcAZKD73NXC+lgtf1ee63AnF+ f71eRDO7alNukJRYz38MLCLLzC6z+KBoVXIRx+q9ppj9pBzQ58KesrzAtona+PDZjHqX H1qg== X-Gm-Message-State: AOAM533E0SI+CUZ4V6KqcJRSWnmERijtgBlz6q7024fgH2hGVrIxWN5+ aw2NlPWPkf2JNozgbm9yHS8= X-Google-Smtp-Source: ABdhPJxMWyLYY6IrUVRxFic8f9aV04MXckwDeUGJXYFcDONSoK2XkaRckFSI50HypIfo35b/Go6s+g== X-Received: by 2002:aa7:dcc9:: with SMTP id w9mr15873855edu.353.1614594319851; Mon, 01 Mar 2021 02:25:19 -0800 (PST) Received: from ?IPv6:2a02:908:1252:fb60:a93a:2306:54f2:28c4? ([2a02:908:1252:fb60:a93a:2306:54f2:28c4]) by smtp.gmail.com with ESMTPSA id a7sm14414096edr.29.2021.03.01.02.25.18 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 01 Mar 2021 02:25:18 -0800 (PST) Subject: Re: [PATCH] drm/gem: add checks of drm_gem_object->funcs To: Daniel Vetter , Thomas Zimmermann , Gerd Hoffmann Cc: "amd-gfx@lists.freedesktop.org" , Dave Airlie , stable , =?UTF-8?Q?Pavel_Turinsk=c3=bd?= , dri-devel , Alexander Deucher , =?UTF-8?Q?Christian_K=c3=b6nig?= References: <20210228161022.53468-1-ledoian@kam.mff.cuni.cz> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: <5bd3c672-3277-69b5-27ca-898c8cb79f9e@gmail.com> Date: Mon, 1 Mar 2021 11:25:17 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org Am 01.03.21 um 11:04 schrieb Daniel Vetter: > On Mon, Mar 1, 2021 at 10:56 AM Thomas Zimmermann wrote: >> (cc'ing amd devs) >> >> Hi >> >> Am 28.02.21 um 17:10 schrieb Pavel Turinský: >>> The checks were removed in commit d693def4fd1c ("drm: Remove obsolete GEM >>> and PRIME callbacks from struct drm_driver") and can lead to following >>> kernel oops: >> Thanks for reporting. All drivers are supposed to set the funcs pointer >> in their GEM objects. This looks like a radeon bug. Adding the AMD devs. > Looks like we're setting obj->funcs only in radeon_gem_object_create, > but should set it in radeon_bo_create instead so it catches internal > functions too. I think this was missed in > > commit ce77038fdae385f947757a37573d90f2e83f0271 > Author: Gerd Hoffmann > Date: Mon Aug 5 16:01:06 2019 +0200 > > drm/radeon: use embedded gem object Maybe the same problem we had for amdgpu that the function pointer wasn't set for imported DMA-bufs? Regards, Christian. > > Adding Gerd. > -Daniel > >> Best regards >> Thomas >> >>> [ 139.449098] BUG: kernel NULL pointer dereference, address: 0000000000000008 >>> [ 139.449110] #PF: supervisor read access in kernel mode >>> [ 139.449113] #PF: error_code(0x0000) - not-present page >>> [ 139.449116] PGD 0 P4D 0 >>> [ 139.449121] Oops: 0000 [#1] PREEMPT SMP PTI >>> [ 139.449126] CPU: 4 PID: 1181 Comm: Xorg Not tainted 5.11.2LEdoian #2 >>> [ 139.449130] Hardware name: Gigabyte Technology Co., Ltd. To be filled by O.E.M./Z77-DS3H, BIOS F4 04/25/2012 >>> [ 139.449133] RIP: 0010:drm_gem_handle_create_tail+0xcb/0x190 [drm] >>> [ 139.449185] Code: 00 48 89 ef e8 06 b4 49 f7 45 85 e4 78 77 48 8d 6b 18 4c 89 ee 48 89 ef e8 c2 f5 00 00 89 c2 85 c0 75 3e 48 8b 83 40 01 00 00 <48> 8b 40 0 >>> 8 48 85 c0 74 0f 4c 89 ee 48 89 df e8 71 5d 87 f7 85 c0 >>> [ 139.449190] RSP: 0018:ffffbe21c194bd28 EFLAGS: 00010246 >>> [ 139.449194] RAX: 0000000000000000 RBX: ffff9da9b3caf078 RCX: 0000000000000000 >>> [ 139.449197] RDX: 0000000000000000 RSI: ffffffffc039b893 RDI: 0000000000000000 >>> [ 139.449199] RBP: ffff9da9b3caf090 R08: 0000000000000040 R09: ffff9da983b911c0 >>> [ 139.449202] R10: ffff9da984749e00 R11: ffff9da9859bfc38 R12: 0000000000000007 >>> [ 139.449204] R13: ffff9da9859bfc00 R14: ffff9da9859bfc50 R15: ffff9da9859bfc38 >>> [ 139.449207] FS: 00007f6332a56900(0000) GS:ffff9daea7b00000(0000) knlGS:0000000000000000 >>> [ 139.449211] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 >>> [ 139.449214] CR2: 0000000000000008 CR3: 00000001319b8005 CR4: 00000000001706e0 >>> [ 139.449217] Call Trace: >>> [ 139.449224] drm_gem_prime_fd_to_handle+0xff/0x1d0 [drm] >>> [ 139.449274] ? drm_prime_destroy_file_private+0x20/0x20 [drm] >>> [ 139.449323] drm_ioctl_kernel+0xac/0xf0 [drm] >>> [ 139.449363] drm_ioctl+0x20f/0x3b0 [drm] >>> [ 139.449403] ? drm_prime_destroy_file_private+0x20/0x20 [drm] >>> [ 139.449454] radeon_drm_ioctl+0x49/0x80 [radeon] >>> [ 139.449500] __x64_sys_ioctl+0x84/0xc0 >>> [ 139.449507] do_syscall_64+0x33/0x40 >>> [ 139.449514] entry_SYSCALL_64_after_hwframe+0x44/0xa9 >>> [ 139.449522] RIP: 0033:0x7f63330fbe6b >>> [ 139.449526] Code: ff ff ff 85 c0 79 8b 49 c7 c4 ff ff ff ff 5b 5d 4c 89 e0 41 5c c3 66 0f 1f 84 00 00 00 00 00 f3 0f 1e fa b8 10 00 00 00 0f 05 <48> 3d 01 f >>> 0 ff ff 73 01 c3 48 8b 0d d5 af 0c 00 f7 d8 64 89 01 48 >>> [ 139.449529] RSP: 002b:00007fff1e9c4438 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 >>> [ 139.449534] RAX: ffffffffffffffda RBX: 00007fff1e9c447c RCX: 00007f63330fbe6b >>> [ 139.449537] RDX: 00007fff1e9c447c RSI: 00000000c00c642e RDI: 0000000000000012 >>> [ 139.449539] RBP: 00000000c00c642e R08: 00007fff1e9c4520 R09: 00007f63331c7a60 >>> [ 139.449542] R10: 00007f6329fb9ab0 R11: 0000000000000246 R12: 000055f69810ad40 >>> [ 139.449544] R13: 0000000000000012 R14: 0000000000100000 R15: 00007fff1e9c4c20 >>> [ 139.449549] Modules linked in: 8021q garp mrp bridge stp llc nls_iso8859_1 vfat fat fuse btrfs blake2b_generic xor raid6_pq libcrc32c crypto_user tun i2c_de >>> v it87 hwmon_vid snd_seq snd_hda_codec_realtek snd_hda_codec_generic ledtrig_audio sg snd_hda_codec_hdmi virtio_balloon snd_hda_intel virtio_console snd_intel_ >>> dspcfg soundwire_intel virtio_pci soundwire_generic_allocation soundwire_cadence virtio_blk snd_hda_codec intel_rapl_msr btusb intel_rapl_common virtio_net btr >>> tl net_failover uvcvideo snd_usb_audio snd_hda_core btbcm x86_pkg_temp_thermal failover soundwire_bus btintel intel_powerclamp snd_soc_core coretemp snd_usbmid >>> i_lib iTCO_wdt videobuf2_vmalloc bluetooth intel_pmc_bxt snd_hwdep kvm_intel videobuf2_memops snd_rawmidi snd_compress videobuf2_v4l2 ac97_bus snd_pcm_dmaengin >>> e iTCO_vendor_support crct10dif_pclmul at24 crc32_pclmul videobuf2_common snd_seq_device mei_hdcp snd_pcm ghash_clmulni_intel kvm videodev aesni_intel crypto_s >>> imd snd_timer snd cryptd mc ecdh_generic >>> [ 139.449642] glue_helper rfkill soundcore joydev mousedev rapl ecc intel_cstate r8169 i2c_i801 intel_uncore atl1c realtek irqbypass mdio_devres mei_me libph >>> y i2c_smbus mei mac_hid lpc_ich ext4 crc32c_generic crc16 mbcache jbd2 dm_mod ata_generic pata_acpi uas usb_storage sr_mod crc32c_intel serio_raw cdrom xhci_pc >>> i pata_jmicron xhci_pci_renesas radeon usbhid i915 intel_gtt nouveau mxm_wmi wmi video i2c_algo_bit drm_ttm_helper ttm drm_kms_helper syscopyarea sysfillrect s >>> ysimgblt fb_sys_fops cec drm agpgart >>> [ 139.449707] CR2: 0000000000000008 >>> [ 139.449710] ---[ end trace f5ce5774498d18e1 ]--- >>> >>> Signed-off-by: Pavel Turinský >>> Fixes: d693def4fd1c ("drm: Remove obsolete GEM and PRIME callbacks from struct drm_driver") >>> Cc: stable@vger.kernel.org >>> --- >>> >>> This is a very symptomatic patch around issue I ran into. I do not know if the >>> funcs property should ever be NULL. I basically restored all the checks that >>> were removed in the mentioned commit. Unfortunately, I do not understand drm >>> nor will I have time to delve into it in forseeable future. >>> >>> drivers/gpu/drm/drm_gem.c | 20 ++++++++++---------- >>> drivers/gpu/drm/drm_prime.c | 2 +- >>> 2 files changed, 11 insertions(+), 11 deletions(-) >>> >>> diff --git a/drivers/gpu/drm/drm_gem.c b/drivers/gpu/drm/drm_gem.c >>> index 92f89cee213e..451f290c737c 100644 >>> --- a/drivers/gpu/drm/drm_gem.c >>> +++ b/drivers/gpu/drm/drm_gem.c >>> @@ -249,7 +249,7 @@ drm_gem_object_release_handle(int id, void *ptr, void *data) >>> struct drm_file *file_priv = data; >>> struct drm_gem_object *obj = ptr; >>> >>> - if (obj->funcs->close) >>> + if (obj->funcs && obj->funcs->close) >>> obj->funcs->close(obj, file_priv); >>> >>> drm_gem_remove_prime_handles(obj, file_priv); >>> @@ -401,7 +401,7 @@ drm_gem_handle_create_tail(struct drm_file *file_priv, >>> if (ret) >>> goto err_remove; >>> >>> - if (obj->funcs->open) { >>> + if (obj->funcs && obj->funcs->open) { >>> ret = obj->funcs->open(obj, file_priv); >>> if (ret) >>> goto err_revoke; >>> @@ -977,7 +977,7 @@ drm_gem_object_free(struct kref *kref) >>> struct drm_gem_object *obj = >>> container_of(kref, struct drm_gem_object, refcount); >>> >>> - if (WARN_ON(!obj->funcs->free)) >>> + if (!obj->funcs || WARN_ON(!obj->funcs->free)) >>> return; >>> >>> obj->funcs->free(obj); >>> @@ -1079,7 +1079,7 @@ int drm_gem_mmap_obj(struct drm_gem_object *obj, unsigned long obj_size, >>> >>> vma->vm_private_data = obj; >>> >>> - if (obj->funcs->mmap) { >>> + if (obj->funcs && obj->funcs->mmap) { >>> ret = obj->funcs->mmap(obj, vma); >>> if (ret) { >>> drm_gem_object_put(obj); >>> @@ -1087,7 +1087,7 @@ int drm_gem_mmap_obj(struct drm_gem_object *obj, unsigned long obj_size, >>> } >>> WARN_ON(!(vma->vm_flags & VM_DONTEXPAND)); >>> } else { >>> - if (obj->funcs->vm_ops) >>> + if (obj->funcs && obj->funcs->vm_ops) >>> vma->vm_ops = obj->funcs->vm_ops; >>> else { >>> drm_gem_object_put(obj); >>> @@ -1188,13 +1188,13 @@ void drm_gem_print_info(struct drm_printer *p, unsigned int indent, >>> drm_printf_indent(p, indent, "imported=%s\n", >>> obj->import_attach ? "yes" : "no"); >>> >>> - if (obj->funcs->print_info) >>> + if (obj->funcs && obj->funcs->print_info) >>> obj->funcs->print_info(p, indent, obj); >>> } >>> >>> int drm_gem_pin(struct drm_gem_object *obj) >>> { >>> - if (obj->funcs->pin) >>> + if (obj->funcs && obj->funcs->pin) >>> return obj->funcs->pin(obj); >>> else >>> return 0; >>> @@ -1202,7 +1202,7 @@ int drm_gem_pin(struct drm_gem_object *obj) >>> >>> void drm_gem_unpin(struct drm_gem_object *obj) >>> { >>> - if (obj->funcs->unpin) >>> + if (obj->funcs && obj->funcs->unpin) >>> obj->funcs->unpin(obj); >>> } >>> >>> @@ -1210,7 +1210,7 @@ int drm_gem_vmap(struct drm_gem_object *obj, struct dma_buf_map *map) >>> { >>> int ret; >>> >>> - if (!obj->funcs->vmap) >>> + if (!obj->funcs || !obj->funcs->vmap) >>> return -EOPNOTSUPP; >>> >>> ret = obj->funcs->vmap(obj, map); >>> @@ -1227,7 +1227,7 @@ void drm_gem_vunmap(struct drm_gem_object *obj, struct dma_buf_map *map) >>> if (dma_buf_map_is_null(map)) >>> return; >>> >>> - if (obj->funcs->vunmap) >>> + if (obj->funcs && obj->funcs->vunmap) >>> obj->funcs->vunmap(obj, map); >>> >>> /* Always set the mapping to NULL. Callers may rely on this. */ >>> diff --git a/drivers/gpu/drm/drm_prime.c b/drivers/gpu/drm/drm_prime.c >>> index 7db55fce35d8..1566dcf417e2 100644 >>> --- a/drivers/gpu/drm/drm_prime.c >>> +++ b/drivers/gpu/drm/drm_prime.c >>> @@ -620,7 +620,7 @@ struct sg_table *drm_gem_map_dma_buf(struct dma_buf_attachment *attach, >>> if (WARN_ON(dir == DMA_NONE)) >>> return ERR_PTR(-EINVAL); >>> >>> - if (WARN_ON(!obj->funcs->get_sg_table)) >>> + if (!obj->funcs || WARN_ON(!obj->funcs->get_sg_table)) >>> return ERR_PTR(-ENOSYS); >>> >>> sgt = obj->funcs->get_sg_table(obj); >>> >> -- >> Thomas Zimmermann >> Graphics Driver Developer >> SUSE Software Solutions Germany GmbH >> Maxfeldstr. 5, 90409 Nürnberg, Germany >> (HRB 36809, AG Nürnberg) >> Geschäftsführer: Felix Imendörffer >> >