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.0 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 22327C07E9B for ; Wed, 7 Jul 2021 11:44:59 +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 E498961A2B for ; Wed, 7 Jul 2021 11:44:58 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E498961A2B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 85E8B6E0FC; Wed, 7 Jul 2021 11:44:57 +0000 (UTC) Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com [IPv6:2a00:1450:4864:20::429]) by gabe.freedesktop.org (Postfix) with ESMTPS id AC7C06E817; Wed, 7 Jul 2021 06:42:22 +0000 (UTC) Received: by mail-wr1-x429.google.com with SMTP id p8so1724882wrr.1; Tue, 06 Jul 2021 23:42:22 -0700 (PDT) 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=+/N9lep8N3CpaRu4Mg7cFz74q5m94YY2hOG1K4KUYXU=; b=Wol+dMQX8jUMgtiWODvL64Vnsu/C0xaH70+tXNnVIPC0HjRnz3SMFctCLPesotWJlV uV5nmoWWr/F/jraobKwAzvmxS2J/ZEuKqalrRO3RkhcsMbtdPsgteQ+pQNE4Bap92Qbc 9dt0BzFL15XngusanM4XlduhpKxCL3TSBHYa8hQV9OGswnHkGUHUvvHWo0yXCJWPS0fm SNYPtRQieHv2TC7OyRAHGnqoXdeW8xZl+BFaZWJciKoOOFI68sfeVDMKa6sBwxXAB3DY 35qx1ddCRWedYE+KlBszHShzQx1W7//KBPVz1W1ZGLnH61eMqvgVlQ/KeJvQnW2at/o6 P9qg== 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=+/N9lep8N3CpaRu4Mg7cFz74q5m94YY2hOG1K4KUYXU=; b=F788jQTlxg0jywyovH+1BMdIQqAxFIJeQLX8Q4ytlNs6LGDwXwb69t/Ba+hahndhX8 jdG72gfhBDPjblBYINgJ3kKo4AMMSS59UBMUDtnpO+kT2zd+8vPz2dAasa5zDtGUHMaV 4yTfrnbluIsEuNk6Q5tWfusX5k1JUfTxCi5wR9CfLuTRWhhpbkZyiFWiP0KLcpkpBCnV c7Ye3MRXoQSFiA9aj21mHCL8/LmGVlUbsi/kwIFK1PhOXuwHYMa66wrZzDvP/Vi5vnLs h1kq2penflBPSo4I+hSFl+X81+N2HANnVuXf16oB08kXbY5wt4uTLpyvgFICzTji97VZ QUcA== X-Gm-Message-State: AOAM532Ug8y4Mu2fWEnWABcVHTAyiMfO+0XytN25qDXZsf7O34u23S83 Xy+PeSoJ/9inBtmtYZAoW4Y= X-Google-Smtp-Source: ABdhPJyoy3WT6bLoZAvKlqudW/VWCMc+r3XA7ie3MAP/nXIa6wJS/KbagtybeqVosG31E0/XISgx8w== X-Received: by 2002:a05:6000:50f:: with SMTP id a15mr19761328wrf.108.1625640141291; Tue, 06 Jul 2021 23:42:21 -0700 (PDT) Received: from ?IPv6:2a02:908:1252:fb60:7671:3328:2129:96b5? ([2a02:908:1252:fb60:7671:3328:2129:96b5]) by smtp.gmail.com with ESMTPSA id h8sm19115278wrt.85.2021.07.06.23.42.20 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 06 Jul 2021 23:42:20 -0700 (PDT) To: Daniel Vetter , "Michael J. Ruhl" References: <20210701142407.458836-1-michael.j.ruhl@intel.com> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: Date: Wed, 7 Jul 2021 08:42:20 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-Mailman-Approved-At: Wed, 07 Jul 2021 11:44:56 +0000 Subject: Re: [Intel-gfx] [PATCH 1/2] drm/i915/gem: Correct the locking and pin pattern for dma-buf X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?Q?Thomas_Hellstr=c3=b6m?= , intel-gfx , Matthew Auld , dri-devel Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" CgpBbSAwMi4wNy4yMSB1bSAxOTowOSBzY2hyaWViIERhbmllbCBWZXR0ZXI6Cj4gT24gVGh1LCBK dWwgMSwgMjAyMSBhdCA0OjI0IFBNIE1pY2hhZWwgSi4gUnVobCA8bWljaGFlbC5qLnJ1aGxAaW50 ZWwuY29tPiB3cm90ZToKPj4gRnJvbTogVGhvbWFzIEhlbGxzdHLDtm0gPHRob21hcy5oZWxsc3Ry b21AbGludXguaW50ZWwuY29tPgo+Pgo+PiBJZiBvdXIgZXhwb3J0ZWQgZG1hLWJ1ZnMgYXJlIGlt cG9ydGVkIGJ5IGFub3RoZXIgaW5zdGFuY2Ugb2Ygb3VyIGRyaXZlciwKPj4gdGhhdCBpbnN0YW5j ZSB3aWxsIHR5cGljYWxseSBoYXZlIHRoZSBpbXBvcnRlZCBkbWEtYnVmcyBsb2NrZWQgZHVyaW5n Cj4+IGRtYV9idWZfbWFwX2F0dGFjaG1lbnQoKS4gQnV0IHRoZSBleHBvcnRlciBhbHNvIGxvY2tz IHRoZSBzYW1lIHJlc2VydmF0aW9uCj4+IG9iamVjdCBpbiB0aGUgbWFwX2RtYV9idWYoKSBjYWxs YmFjaywgd2hpY2ggbGVhZHMgdG8gcmVjdXJzaXZlIGxvY2tpbmcuCj4+Cj4+IFNvIHRha2luZyB0 aGUgbG9jayBpbnNpZGUgX3Bpbl9wYWdlc191bmxvY2tlZCgpIGlzIGluY29ycmVjdC4KPj4KPj4g QWRkaXRpb25hbGx5LCB0aGUgY3VycmVudCBwaW5uaW5nIGNvZGUgcGF0aCBpcyBjb250cmFyeSB0 byB0aGUgZGVmaW5lZAo+PiB3YXkgdGhhdCBwaW5uaW5nIHNob3VsZCBvY2N1ci4KPj4KPj4gUmVt b3ZlIHRoZSBleHBsaWNpdCBwaW4vdW5waW4gZnJvbSB0aGUgbWFwL3VtYXAgZnVuY3Rpb25zIGFu ZCBtb3ZlIHRoZW0KPj4gdG8gdGhlIGF0dGFjaC9kZXRhY2ggYWxsb3dpbmcgY29ycmVjdCBsb2Nr aW5nIHRvIG9jY3VyLCBhbmQgdG8gbWF0Y2gKPj4gdGhlIHN0YXRpYyBkbWEtYnVmIGRybV9wcmlt ZSBwYXR0ZXJuLgo+Pgo+PiBBZGQgYSBsaXZlIHNlbGZ0ZXN0IHRvIGV4ZXJjaXNlIGJvdGggZHlu YW1pYyBhbmQgbm9uLWR5bmFtaWMKPj4gZXhwb3J0cy4KPj4KPj4gdjI6Cj4+IC0gRXh0ZW5kIHRo ZSBzZWxmdGVzdCB3aXRoIGEgZmFrZSBkeW5hbWljIGltcG9ydGVyLgo+PiAtIFByb3ZpZGUgcmVh bCBwaW4gYW5kIHVucGluIGNhbGxiYWNrcyB0byBub3QgYWJ1c2UgdGhlIGludGVyZmFjZS4KPj4g djM6IChydWhsKQo+PiAtIFJlbW92ZSB0aGUgZHluYW1pYyBleHBvcnQgc3VwcG9ydCBhbmQgbW92 ZSB0aGUgcGlubmluZyBpbnRvIHRoZQo+PiAgICBhdHRhY2gvZGV0YWNoIHBhdGguCj4+Cj4+IFJl cG9ydGVkLWJ5OiBNaWNoYWVsIEouIFJ1aGwgPG1pY2hhZWwuai5ydWhsQGludGVsLmNvbT4KPj4g U2lnbmVkLW9mZi1ieTogVGhvbWFzIEhlbGxzdHLDtm0gPHRob21hcy5oZWxsc3Ryb21AbGludXgu aW50ZWwuY29tPgo+PiBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIEouIFJ1aGwgPG1pY2hhZWwuai5y dWhsQGludGVsLmNvbT4KPiBDSSBzcGxhdCBpcyBiZWNhdXNlIEkgZ290IHRoZSBsb2NraW5nIHJ1 bGVzIHdyb25nLCBJIHRob3VnaHQKPiAtPmF0dGFjaC9kZXRhY2ggYXJlIGNhbGxlZCB1bmRlciB0 aGUgZG1hX3Jlc3ZfbG9jaywgYmVjYXVzZSB3aGVuIHdlCj4gdXNlZCB0aGUgb2xkIGRtYV9idWYt PmxvY2sgdGhvc2UgY2FsbHMgd2hlcmUgcHJvdGVjdGVkIGJ5IHRoYXQgbG9jawo+IHVuZGVyIHRo ZSBzYW1lIGNyaXRpY2FsIHNlY3Rpb24gYXMgYWRkaW5nL3JlbW92aW5nIGZyb20gdGhlIGxpc3Qu IEJ1dAo+IHdlIGNoYW5nZWQgdGhhdCBpbgo+Cj4gZjQ1ZjU3Y2NlNTg0ICgiZG1hLWJ1Zjogc3Rv cCB1c2luZyB0aGUgZG1hYnVmLT5sb2NrIHNvIG11Y2ggdjIiKQo+IDE1ZmQ1NTJkMTg2YyAoImRt YS1idWY6IGNoYW5nZSBETUEtYnVmIGxvY2tpbmcgY29udmVudGlvbiB2MyIpCj4KPiBCZWNhdXNl IGtlZXBpbmcgZG1hX3Jlc3ZfbG9jayBvdmVyIC0+YXR0YWNoL2RldGFjaCB3b3VsZCBnbyBib29t IG9uCj4gYWxsIHRoZSB0dG0gZHJpdmVycywgd2hpY2ggcGluL3VucGluIHRoZSBidWZmZXIgaW4g dGhlcmUuIElvdyB3ZSBuZWVkCj4gdGhlIHVubG9ja2VkIHZlcnNpb24gdGhlcmUsIGJ1dCBhbHNv IGhhdmluZyB0aGlzIHNwbGl0IHVwIGlzIGEgYml0Cj4gYXdrd2FyZCBhbmQgbWlnaHQgYmUgZ29v ZCB0byBwYXRjaCB1cCBzbyB0aGF0IGl0J3MgYXRvbWljIGFnYWluLiBXb3VsZAo+IG1lYW4gdXBk YXRpbmcgYSBidW5jaCBvZiBkcml2ZXJzLiBDaHJpc3RpYW4sIGFueSB0aG91Z2h0cz8KClllYWgs IHdlIGFscmVhZHkgZGlzY3Vzc2VkIHRoYXQgd2hlbiB3ZSBzd2l0Y2hlZCBmcm9tIGRtYV9idWYt PmxvY2sgdG8gCmRtYV9yZXN2LT5sb2NrLgoKSW4gZ2VuZXJhbCBjb21wbGV0ZWx5IGFncmVlIHRv IGRvIHRoaXMgYW5kIHN0b3BwaW5nIHVzaW5nIHRoZSAKZG1hX2J1Zi0+bG9jayB3YXMgYSBmaXJz dCBzdGVwIHRvd2FyZHMgdGhpcywgYnV0IElJUkMgd2UgcG9zdHBvbmVkIHRoYXQgCnN3aXRjaCB0 aWxsIGxhdGVyLgoKUmVnYXJkcywKQ2hyaXN0aWFuLgoKUFM6IEknbSBjdXJyZW50bHkgb24gc2lj ayBsZWF2ZSwgc28gcmVzcG9uc2UgbWlnaHQgYmUgZGVsYXllZC4KCj4KPiBNaWtlLCBmb3Igbm93 IEknZCBqdXN0IGtlZXAgdXNpbmcgdGhlIF91bmxvY2tlZCB2YXJpYW50cyBhbmQgd2Ugc2hvdWxk IGJlIGZpbmUuCj4gLURhbmllbAo+Cj4+IC0tLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dl bS9pOTE1X2dlbV9kbWFidWYuYyAgICB8ICA0NiArKysrKystLQo+PiAgIC4uLi9kcm0vaTkxNS9n ZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX2RtYWJ1Zi5jICB8IDExMSArKysrKysrKysrKysrKysrKy0K Pj4gICAyIGZpbGVzIGNoYW5nZWQsIDE0MyBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkK Pj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9kbWFi dWYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9kbWFidWYuYwo+PiBpbmRl eCA2MTZjM2EyZjFiYWYuLjAwMzM4YzhkMzczOSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2RtYWJ1Zi5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2dlbS9pOTE1X2dlbV9kbWFidWYuYwo+PiBAQCAtMTIsNiArMTIsOCBAQAo+PiAgICNpbmNs dWRlICJpOTE1X2dlbV9vYmplY3QuaCIKPj4gICAjaW5jbHVkZSAiaTkxNV9zY2F0dGVybGlzdC5o Igo+Pgo+PiArSTkxNV9TRUxGVEVTVF9ERUNMQVJFKHN0YXRpYyBib29sIGZvcmNlX2RpZmZlcmVu dF9kZXZpY2VzOykKPj4gKwo+PiAgIHN0YXRpYyBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq ZG1hX2J1Zl90b19vYmooc3RydWN0IGRtYV9idWYgKmJ1ZikKPj4gICB7Cj4+ICAgICAgICAgIHJl dHVybiB0b19pbnRlbF9ibyhidWYtPnByaXYpOwo+PiBAQCAtMjUsMTUgKzI3LDExIEBAIHN0YXRp YyBzdHJ1Y3Qgc2dfdGFibGUgKmk5MTVfZ2VtX21hcF9kbWFfYnVmKHN0cnVjdCBkbWFfYnVmX2F0 dGFjaG1lbnQgKmF0dGFjaG1lCj4+ICAgICAgICAgIHN0cnVjdCBzY2F0dGVybGlzdCAqc3JjLCAq ZHN0Owo+PiAgICAgICAgICBpbnQgcmV0LCBpOwo+Pgo+PiAtICAgICAgIHJldCA9IGk5MTVfZ2Vt X29iamVjdF9waW5fcGFnZXNfdW5sb2NrZWQob2JqKTsKPj4gLSAgICAgICBpZiAocmV0KQo+PiAt ICAgICAgICAgICAgICAgZ290byBlcnI7Cj4+IC0KPj4gICAgICAgICAgLyogQ29weSBzZyBzbyB0 aGF0IHdlIG1ha2UgYW4gaW5kZXBlbmRlbnQgbWFwcGluZyAqLwo+PiAgICAgICAgICBzdCA9IGtt YWxsb2Moc2l6ZW9mKHN0cnVjdCBzZ190YWJsZSksIEdGUF9LRVJORUwpOwo+PiAgICAgICAgICBp ZiAoc3QgPT0gTlVMTCkgewo+PiAgICAgICAgICAgICAgICAgIHJldCA9IC1FTk9NRU07Cj4+IC0g ICAgICAgICAgICAgICBnb3RvIGVycl91bnBpbl9wYWdlczsKPj4gKyAgICAgICAgICAgICAgIGdv dG8gZXJyOwo+PiAgICAgICAgICB9Cj4+Cj4+ICAgICAgICAgIHJldCA9IHNnX2FsbG9jX3RhYmxl KHN0LCBvYmotPm1tLnBhZ2VzLT5uZW50cywgR0ZQX0tFUk5FTCk7Cj4+IEBAIC01OCw4ICs1Niw2 IEBAIHN0YXRpYyBzdHJ1Y3Qgc2dfdGFibGUgKmk5MTVfZ2VtX21hcF9kbWFfYnVmKHN0cnVjdCBk bWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaG1lCj4+ICAgICAgICAgIHNnX2ZyZWVfdGFibGUoc3Qp Owo+PiAgIGVycl9mcmVlOgo+PiAgICAgICAgICBrZnJlZShzdCk7Cj4+IC1lcnJfdW5waW5fcGFn ZXM6Cj4+IC0gICAgICAgaTkxNV9nZW1fb2JqZWN0X3VucGluX3BhZ2VzKG9iaik7Cj4+ICAgZXJy Ogo+PiAgICAgICAgICByZXR1cm4gRVJSX1BUUihyZXQpOwo+PiAgIH0KPj4gQEAgLTY4LDEzICs2 NCw5IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX3VubWFwX2RtYV9idWYoc3RydWN0IGRtYV9idWZf YXR0YWNobWVudCAqYXR0YWNobWVudCwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IHNnX3RhYmxlICpzZywKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyKQo+PiAgIHsKPj4gLSAgICAgICBz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gZG1hX2J1Zl90b19vYmooYXR0YWNobWVu dC0+ZG1hYnVmKTsKPj4gLQo+PiAgICAgICAgICBkbWFfdW5tYXBfc2d0YWJsZShhdHRhY2htZW50 LT5kZXYsIHNnLCBkaXIsIERNQV9BVFRSX1NLSVBfQ1BVX1NZTkMpOwo+PiAgICAgICAgICBzZ19m cmVlX3RhYmxlKHNnKTsKPj4gICAgICAgICAga2ZyZWUoc2cpOwo+PiAtCj4+IC0gICAgICAgaTkx NV9nZW1fb2JqZWN0X3VucGluX3BhZ2VzKG9iaik7Cj4+ICAgfQo+Pgo+PiAgIHN0YXRpYyBpbnQg aTkxNV9nZW1fZG1hYnVmX3ZtYXAoc3RydWN0IGRtYV9idWYgKmRtYV9idWYsIHN0cnVjdCBkbWFf YnVmX21hcCAqbWFwKQo+PiBAQCAtMTY4LDcgKzE2MCwzMiBAQCBzdGF0aWMgaW50IGk5MTVfZ2Vt X2VuZF9jcHVfYWNjZXNzKHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmLCBlbnVtIGRtYV9kYXRhX2Rp cmVjdAo+PiAgICAgICAgICByZXR1cm4gZXJyOwo+PiAgIH0KPj4KPj4gKy8qKgo+PiArICogaTkx NV9nZW1fZG1hYnVmX2F0dGFjaCAtIERvIGFueSBleHRyYSBhdHRhY2ggd29yayBuZWNlc3NhcnkK Pj4gKyAqIEBkbWFidWY6IGltcG9ydGVkIGRtYS1idWYKPj4gKyAqIEBhdHRhY2g6IG5ldyBhdHRh Y2ggdG8gZG8gd29yayBvbgo+PiArICoKPj4gKyAqLwo+PiArc3RhdGljIGludCBpOTE1X2dlbV9k bWFidWZfYXR0YWNoKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsCj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gpCj4+ICt7 Cj4+ICsgICAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGRtYV9idWZfdG9f b2JqKGRtYWJ1Zik7Cj4+ICsKPj4gKyAgICAgICBhc3NlcnRfb2JqZWN0X2hlbGQob2JqKTsKPj4g KyAgICAgICByZXR1cm4gaTkxNV9nZW1fb2JqZWN0X3Bpbl9wYWdlcyhvYmopOwo+PiArfQo+PiAr Cj4+ICtzdGF0aWMgdm9pZCBpOTE1X2dlbV9kbWFidWZfZGV0YWNoKHN0cnVjdCBkbWFfYnVmICpk bWFidWYsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZG1hX2J1 Zl9hdHRhY2htZW50ICphdHRhY2gpCj4+ICt7Cj4+ICsgICAgICAgc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKm9iaiA9IGRtYV9idWZfdG9fb2JqKGRtYWJ1Zik7Cj4+ICsKPj4gKyAgICAgICBp OTE1X2dlbV9vYmplY3RfdW5waW5fcGFnZXMob2JqKTsKPj4gK30KPj4gKwo+PiAgIHN0YXRpYyBj b25zdCBzdHJ1Y3QgZG1hX2J1Zl9vcHMgaTkxNV9kbWFidWZfb3BzID0gIHsKPj4gKyAgICAgICAu YXR0YWNoID0gaTkxNV9nZW1fZG1hYnVmX2F0dGFjaCwKPj4gKyAgICAgICAuZGV0YWNoID0gaTkx NV9nZW1fZG1hYnVmX2RldGFjaCwKPj4gICAgICAgICAgLm1hcF9kbWFfYnVmID0gaTkxNV9nZW1f bWFwX2RtYV9idWYsCj4+ICAgICAgICAgIC51bm1hcF9kbWFfYnVmID0gaTkxNV9nZW1fdW5tYXBf ZG1hX2J1ZiwKPj4gICAgICAgICAgLnJlbGVhc2UgPSBkcm1fZ2VtX2RtYWJ1Zl9yZWxlYXNlLAo+ PiBAQCAtMjA0LDYgKzIyMSw4IEBAIHN0YXRpYyBpbnQgaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdl c19kbWFidWYoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKPj4gICAgICAgICAgc3Ry dWN0IHNnX3RhYmxlICpwYWdlczsKPj4gICAgICAgICAgdW5zaWduZWQgaW50IHNnX3BhZ2Vfc2l6 ZXM7Cj4+Cj4+ICsgICAgICAgYXNzZXJ0X29iamVjdF9oZWxkKG9iaik7Cj4+ICsKPj4gICAgICAg ICAgcGFnZXMgPSBkbWFfYnVmX21hcF9hdHRhY2htZW50KG9iai0+YmFzZS5pbXBvcnRfYXR0YWNo LAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRE1BX0JJRElSRUNU SU9OQUwpOwo+PiAgICAgICAgICBpZiAoSVNfRVJSKHBhZ2VzKSkKPj4gQEAgLTIxOSw2ICsyMzgs OCBAQCBzdGF0aWMgaW50IGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZXNfZG1hYnVmKHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCj4+ICAgc3RhdGljIHZvaWQgaTkxNV9nZW1fb2JqZWN0 X3B1dF9wYWdlc19kbWFidWYoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzZ190YWJs ZSAqcGFnZXMpCj4+ICAgewo+PiArICAgICAgIGFzc2VydF9vYmplY3RfaGVsZChvYmopOwo+PiAr Cj4+ICAgICAgICAgIGRtYV9idWZfdW5tYXBfYXR0YWNobWVudChvYmotPmJhc2UuaW1wb3J0X2F0 dGFjaCwgcGFnZXMsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBETUFfQklE SVJFQ1RJT05BTCk7Cj4+ICAgfQo+PiBAQCAtMjQxLDcgKzI2Miw4IEBAIHN0cnVjdCBkcm1fZ2Vt X29iamVjdCAqaTkxNV9nZW1fcHJpbWVfaW1wb3J0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+ ICAgICAgICAgIGlmIChkbWFfYnVmLT5vcHMgPT0gJmk5MTVfZG1hYnVmX29wcykgewo+PiAgICAg ICAgICAgICAgICAgIG9iaiA9IGRtYV9idWZfdG9fb2JqKGRtYV9idWYpOwo+PiAgICAgICAgICAg ICAgICAgIC8qIGlzIGl0IGZyb20gb3VyIGRldmljZT8gKi8KPj4gLSAgICAgICAgICAgICAgIGlm IChvYmotPmJhc2UuZGV2ID09IGRldikgewo+PiArICAgICAgICAgICAgICAgaWYgKG9iai0+YmFz ZS5kZXYgPT0gZGV2ICYmCj4+ICsgICAgICAgICAgICAgICAgICAgIUk5MTVfU0VMRlRFU1RfT05M WShmb3JjZV9kaWZmZXJudF9kZXZpY2VzKSkgewo+PiAgICAgICAgICAgICAgICAgICAgICAgICAg LyoKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAqIEltcG9ydGluZyBkbWFidWYgZXhwb3J0 ZWQgZnJvbSBvdXQgb3duIGdlbSBpbmNyZWFzZXMKPj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAqIHJlZmNvdW50IG9uIGdlbSBpdHNlbGYgaW5zdGVhZCBvZiBmX2NvdW50IG9mIGRtYWJ1Zi4K Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9n ZW1fZG1hYnVmLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2Vt X2RtYWJ1Zi5jCj4+IGluZGV4IGRkNzRiYzA5ZWM4OC4uMTBhMTEzY2MwMGE1IDEwMDY0NAo+PiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX2RtYWJ1Zi5j Cj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9nZW1fZG1h YnVmLmMKPj4gQEAgLTM1LDcgKzM1LDcgQEAgc3RhdGljIGludCBpZ3RfZG1hYnVmX2V4cG9ydCh2 b2lkICphcmcpCj4+ICAgc3RhdGljIGludCBpZ3RfZG1hYnVmX2ltcG9ydF9zZWxmKHZvaWQgKmFy ZykKPj4gICB7Cj4+ICAgICAgICAgIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gYXJn Owo+PiAtICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7Cj4+ICsgICAgICAg c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwgKmltcG9ydF9vYmo7Cj4+ICAgICAgICAg IHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqaW1wb3J0Owo+PiAgICAgICAgICBzdHJ1Y3QgZG1hX2J1 ZiAqZG1hYnVmOwo+PiAgICAgICAgICBpbnQgZXJyOwo+PiBAQCAtNjUsMTQgKzY1LDEyMCBAQCBz dGF0aWMgaW50IGlndF9kbWFidWZfaW1wb3J0X3NlbGYodm9pZCAqYXJnKQo+PiAgICAgICAgICAg ICAgICAgIGVyciA9IC1FSU5WQUw7Cj4+ICAgICAgICAgICAgICAgICAgZ290byBvdXRfaW1wb3J0 Owo+PiAgICAgICAgICB9Cj4+ICsgICAgICAgaW1wb3J0X29iaiA9IHRvX2ludGVsX2JvKGltcG9y dCk7Cj4+ICsKPj4gKyAgICAgICBpOTE1X2dlbV9vYmplY3RfbG9jayhpbXBvcnRfb2JqLCBOVUxM KTsKPj4gKyAgICAgICBlcnIgPSBfX19faTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlcyhpbXBvcnRf b2JqKTsKPj4gKyAgICAgICBpOTE1X2dlbV9vYmplY3RfdW5sb2NrKGltcG9ydF9vYmopOwo+PiAr ICAgICAgIGlmIChlcnIpIHsKPj4gKyAgICAgICAgICAgICAgIHByX2VycigiU2FtZSBvYmplY3Qg ZG1hLWJ1ZiBnZXRfcGFnZXMgZmFpbGVkIVxuIik7Cj4+ICsgICAgICAgICAgICAgICBnb3RvIG91 dF9pbXBvcnQ7Cj4+ICsgICAgICAgfQo+Pgo+PiAgICAgICAgICBlcnIgPSAwOwo+PiAgIG91dF9p bXBvcnQ6Cj4+IC0gICAgICAgaTkxNV9nZW1fb2JqZWN0X3B1dCh0b19pbnRlbF9ibyhpbXBvcnQp KTsKPj4gKyAgICAgICBpOTE1X2dlbV9vYmplY3RfcHV0KGltcG9ydF9vYmopOwo+PiArb3V0X2Rt YWJ1ZjoKPj4gKyAgICAgICBkbWFfYnVmX3B1dChkbWFidWYpOwo+PiArb3V0Ogo+PiArICAgICAg IGk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKPj4gKyAgICAgICByZXR1cm4gZXJyOwo+PiArfQo+ PiArCj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRtYV9idWZfYXR0YWNoX29wcyBpZ3RfZG1hYnVm X2F0dGFjaF9vcHMgPSB7Cj4+ICsgICAgICAgLm1vdmVfbm90aWZ5ID0gaWd0X2RtYWJ1Zl9tb3Zl X25vdGlmeSwKPj4gK307Cj4+ICsKPj4gK3N0YXRpYyBpbnQgaWd0X2RtYWJ1Zl9pbXBvcnRfc2Ft ZV9kcml2ZXIodm9pZCAqYXJnKQo+PiArewo+PiArICAgICAgIHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICppOTE1ID0gYXJnOwo+PiArICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmosICppbXBvcnRfb2JqOwo+PiArICAgICAgIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqaW1wb3J0 Owo+PiArICAgICAgIHN0cnVjdCBkbWFfYnVmICpkbWFidWY7Cj4+ICsgICAgICAgc3RydWN0IGRt YV9idWZfYXR0YWNobWVudCAqaW1wb3J0X2F0dGFjaDsKPj4gKyAgICAgICBzdHJ1Y3Qgc2dfdGFi bGUgKnN0Owo+PiArICAgICAgIGxvbmcgdGltZW91dDsKPj4gKyAgICAgICBpbnQgZXJyOwo+PiAr Cj4+ICsgICAgICAgZm9yY2VfZGlmZmVyZW50X2RldmljZXMgPSB0cnVlOwo+PiArICAgICAgIG9i aiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc2htZW0oaTkxNSwgUEFHRV9TSVpFKTsKPj4gKyAg ICAgICBpZiAoSVNfRVJSKG9iaikpCj4+ICsgICAgICAgICAgICAgICBnb3RvIG91dF9yZXQ7Cj4+ ICsKPj4gKyAgICAgICBkbWFidWYgPSBpOTE1X2dlbV9wcmltZV9leHBvcnQoJm9iai0+YmFzZSwg MCk7Cj4+ICsgICAgICAgaWYgKElTX0VSUihkbWFidWYpKSB7Cj4+ICsgICAgICAgICAgICAgICBw cl9lcnIoImk5MTVfZ2VtX3ByaW1lX2V4cG9ydCBmYWlsZWQgd2l0aCBlcnI9JWRcbiIsCj4+ICsg ICAgICAgICAgICAgICAgICAgICAgKGludClQVFJfRVJSKGRtYWJ1ZikpOwo+PiArICAgICAgICAg ICAgICAgZXJyID0gUFRSX0VSUihkbWFidWYpOwo+PiArICAgICAgICAgICAgICAgZ290byBvdXQ7 Cj4+ICsgICAgICAgfQo+PiArCj4+ICsgICAgICAgaW1wb3J0ID0gaTkxNV9nZW1fcHJpbWVfaW1w b3J0KCZpOTE1LT5kcm0sIGRtYWJ1Zik7Cj4+ICsgICAgICAgaWYgKElTX0VSUihpbXBvcnQpKSB7 Cj4+ICsgICAgICAgICAgICAgICBwcl9lcnIoImk5MTVfZ2VtX3ByaW1lX2ltcG9ydCBmYWlsZWQg d2l0aCBlcnI9JWRcbiIsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgKGludClQVFJfRVJSKGlt cG9ydCkpOwo+PiArICAgICAgICAgICAgICAgZXJyID0gUFRSX0VSUihpbXBvcnQpOwo+PiArICAg ICAgICAgICAgICAgZ290byBvdXRfZG1hYnVmOwo+PiArICAgICAgIH0KPj4gKwo+PiArICAgICAg IGlmIChpbXBvcnQgPT0gJm9iai0+YmFzZSkgewo+PiArICAgICAgICAgICAgICAgcHJfZXJyKCJp OTE1X2dlbV9wcmltZV9pbXBvcnQgcmV1c2VkIGdlbSBvYmplY3QhXG4iKTsKPj4gKyAgICAgICAg ICAgICAgIGVyciA9IC1FSU5WQUw7Cj4+ICsgICAgICAgICAgICAgICBnb3RvIG91dF9pbXBvcnQ7 Cj4+ICsgICAgICAgfQo+PiArCj4+ICsgICAgICAgaW1wb3J0X29iaiA9IHRvX2ludGVsX2JvKGlt cG9ydCk7Cj4+ICsKPj4gKyAgICAgICBpOTE1X2dlbV9vYmplY3RfbG9jayhpbXBvcnRfb2JqLCBO VUxMKTsKPj4gKyAgICAgICBlcnIgPSBfX19faTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlcyhpbXBv cnRfb2JqKTsKPj4gKyAgICAgICBpZiAoZXJyKSB7Cj4+ICsgICAgICAgICAgICAgICBwcl9lcnIo IkRpZmZlcmVudCBvYmplY3RzIGRtYS1idWYgZ2V0X3BhZ2VzIGZhaWxlZCFcbiIpOwo+PiArICAg ICAgICAgICAgICAgaTkxNV9nZW1fb2JqZWN0X3VubG9jayhpbXBvcnRfb2JqKTsKPj4gKyAgICAg ICAgICAgICAgIGdvdG8gb3V0X2ltcG9ydDsKPj4gKyAgICAgICB9Cj4+ICsKPj4gKyAgICAgICAv Kgo+PiArICAgICAgICAqIElmIHRoZSBleHBvcnRlZCBvYmplY3QgaXMgbm90IGluIHN5c3RlbSBt ZW1vcnksIHNvbWV0aGluZwo+PiArICAgICAgICAqIHdlaXJkIGlzIGdvaW5nIG9uLiBUT0RPOiBX aGVuIHAycCBpcyBzdXBwb3J0ZWQsIHRoaXMgaXMgbm8KPj4gKyAgICAgICAgKiBsb25nZXIgY29u c2lkZXJlZCB3ZWlyZC4KPj4gKyAgICAgICAgKi8KPj4gKyAgICAgICBpZiAob2JqLT5tbS5yZWdp b24gIT0gaTkxNS0+bW0ucmVnaW9uc1tJTlRFTF9SRUdJT05fU01FTV0pIHsKPj4gKyAgICAgICAg ICAgICAgIHByX2VycigiRXhwb3J0ZWQgZG1hLWJ1ZiBpcyBub3QgaW4gc3lzdGVtIG1lbW9yeVxu Iik7Cj4+ICsgICAgICAgICAgICAgICBlcnIgPSAtRUlOVkFMOwo+PiArICAgICAgIH0KPj4gKwo+ PiArICAgICAgIGk5MTVfZ2VtX29iamVjdF91bmxvY2soaW1wb3J0X29iaik7Cj4+ICsKPj4gKyAg ICAgICAvKiBOb3cgdHJ5IGEgZmFrZSBkeW5hbWljIGltcG9ydGVyICovCj4+ICsgICAgICAgaW1w b3J0X2F0dGFjaCA9IGRtYV9idWZfZHluYW1pY19hdHRhY2goZG1hYnVmLCBvYmotPmJhc2UuZGV2 LT5kZXYsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JmlndF9kbWFidWZfYXR0YWNoX29wcywKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBOVUxMKTsKPj4gKyAgICAgICBpZiAoSVNfRVJSKGltcG9ydF9hdHRh Y2gpKQo+PiArICAgICAgICAgICAgICAgZ290byBvdXRfaW1wb3J0Owo+PiArCj4+ICsgICAgICAg ZG1hX3Jlc3ZfbG9jayhkbWFidWYtPnJlc3YsIE5VTEwpOwo+PiArICAgICAgIHN0ID0gZG1hX2J1 Zl9tYXBfYXR0YWNobWVudChpbXBvcnRfYXR0YWNoLCBETUFfQklESVJFQ1RJT05BTCk7Cj4+ICsg ICAgICAgZG1hX3Jlc3ZfdW5sb2NrKGRtYWJ1Zi0+cmVzdik7Cj4+ICsgICAgICAgaWYgKElTX0VS UihzdCkpCj4+ICsgICAgICAgICAgICAgICBnb3RvIG91dF9kZXRhY2g7Cj4+ICsKPj4gKyAgICAg ICB0aW1lb3V0ID0gZG1hX3Jlc3Zfd2FpdF90aW1lb3V0KGRtYWJ1Zi0+cmVzdiwgZmFsc2UsIHRy dWUsIDUgKiBIWik7Cj4+ICsgICAgICAgaWYgKCF0aW1lb3V0KSB7Cj4+ICsgICAgICAgICAgICAg ICBwcl9lcnIoImRtYWJ1ZiB3YWl0IGZvciBleGNsdXNpdmUgZmVuY2UgdGltZWQgb3V0LlxuIik7 Cj4+ICsgICAgICAgICAgICAgICB0aW1lb3V0ID0gLUVUSU1FOwo+PiArICAgICAgIH0KPj4gKyAg ICAgICBlcnIgPSB0aW1lb3V0ID4gMCA/IDAgOiB0aW1lb3V0Owo+PiArICAgICAgIGRtYV9idWZf dW5tYXBfYXR0YWNobWVudChpbXBvcnRfYXR0YWNoLCBzdCwgRE1BX0JJRElSRUNUSU9OQUwpOwo+ PiArb3V0X2RldGFjaDoKPj4gKyAgICAgICBkbWFfYnVmX2RldGFjaChkbWFidWYsIGltcG9ydF9h dHRhY2gpOwo+PiArb3V0X2ltcG9ydDoKPj4gKyAgICAgICBpOTE1X2dlbV9vYmplY3RfcHV0KGlt cG9ydF9vYmopOwo+PiAgIG91dF9kbWFidWY6Cj4+ICAgICAgICAgIGRtYV9idWZfcHV0KGRtYWJ1 Zik7Cj4+ICAgb3V0Ogo+PiAgICAgICAgICBpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7Cj4+ICtv dXRfcmV0Ogo+PiArICAgICAgIGZvcmNlX2RpZmZlcmVudF9kZXZpY2VzID0gZmFsc2U7Cj4+ICAg ICAgICAgIHJldHVybiBlcnI7Cj4+ICAgfQo+Pgo+PiBAQCAtMjg2LDYgKzM5Miw3IEBAIGludCBp OTE1X2dlbV9kbWFidWZfbGl2ZV9zZWxmdGVzdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUpCj4+ICAgewo+PiAgICAgICAgICBzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfc3VidGVzdCB0 ZXN0c1tdID0gewo+PiAgICAgICAgICAgICAgICAgIFNVQlRFU1QoaWd0X2RtYWJ1Zl9leHBvcnQp LAo+PiArICAgICAgICAgICAgICAgU1VCVEVTVChpZ3RfZG1hYnVmX2ltcG9ydF9zYW1lX2RyaXZl ciksCj4+ICAgICAgICAgIH07Cj4+Cj4+ICAgICAgICAgIHJldHVybiBpOTE1X3N1YnRlc3RzKHRl c3RzLCBpOTE1KTsKPj4gLS0KPj4gMi4zMS4xCj4+Cj4KCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=