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=-9.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 D1B3EC388F7 for ; Sat, 31 Oct 2020 14:40:49 +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 2ECCD206C1 for ; Sat, 31 Oct 2020 14:40:48 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="O6NovDNr" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2ECCD206C1 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch 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 2AFD06E141; Sat, 31 Oct 2020 14:40:48 +0000 (UTC) Received: from mail-ot1-x341.google.com (mail-ot1-x341.google.com [IPv6:2607:f8b0:4864:20::341]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5E61A6E141 for ; Sat, 31 Oct 2020 14:40:47 +0000 (UTC) Received: by mail-ot1-x341.google.com with SMTP id b2so8344922ots.5 for ; Sat, 31 Oct 2020 07:40:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=JtO7Nja6RcTtOeq2s1LZwcLE76uoTTnCv1bvoi/jbRQ=; b=O6NovDNrkmvyLeMFHQ9kK6wUcbzNTFA80tHkHLx4K1Rl1FiZWxl43rYqA2paTDUoG9 Xw8tEEg3vp7olCb3fkGN5R505BIXt9Vj5gLohBUOiYfhXy8e4m1xQZzJucvcpAOVyKpG MKCmjLVQE+563SqK3v/+2eMm0Mi9X2tcHiKvE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=JtO7Nja6RcTtOeq2s1LZwcLE76uoTTnCv1bvoi/jbRQ=; b=MOA5mZBBI53jVvZTjiYe2WeGgRZqtY4C1flA4Cgqyza2c9l0M/S3qAUZ+/rHEP+DBI diJlwBSjQIL3lsK4rVH7023ucnzZzYpS9OjuQgV/wvqEyWD8YT7woLPt6+aeSCuQCwt0 Vq6y5hqKeWzwNCqcX3X/OAP7wkYemiMRNttTgeEHjvOO9ZoX/lsjgrpCBtuZTOL5tEKr SH5+g2RmmFeMF0iQealmyC2pX7e5y9gDaSGFVcWb6HpR0JSy1FiEx3oBDP3DfEo7w3c9 7K3s0mkSUbS5k2tu4CNl2EKTr9qF4m0kXzCYV/haD0yCtIwrPKFIk5vuOKN8f5wMFZjE pz7A== X-Gm-Message-State: AOAM531FNi6m2dPVKYSloQS/wIGfLL205VccAZSO2WF1kn/7LlTwetkK xaZHhmCqbfJt09f91/pbbj0Jn9Zwnx6WKjzmLLMnjg== X-Google-Smtp-Source: ABdhPJxqtsn7W7oKGTLHfMVhN6VELBcHyLa3p2v0hx77IIgGpAhWCkDOrTaCDOywAg1QbtLmxm3odFb5zBu4pEEm8pA= X-Received: by 2002:a9d:6e81:: with SMTP id a1mr5364593otr.303.1604155246273; Sat, 31 Oct 2020 07:40:46 -0700 (PDT) MIME-Version: 1.0 References: <20201030100815.2269-1-daniel.vetter@ffwll.ch> <20201030100815.2269-14-daniel.vetter@ffwll.ch> <787f2914-5777-4703-4bee-68c4c3742817@nvidia.com> In-Reply-To: <787f2914-5777-4703-4bee-68c4c3742817@nvidia.com> From: Daniel Vetter Date: Sat, 31 Oct 2020 15:40:35 +0100 Message-ID: Subject: Re: [PATCH v5 13/15] resource: Move devmem revoke code to resource framework To: John Hubbard 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: linux-samsung-soc , Jan Kara , Kees Cook , KVM list , Jason Gunthorpe , Greg Kroah-Hartman , David Hildenbrand , LKML , DRI Development , "Rafael J. Wysocki" , Linux MM , =?UTF-8?B?SsOpcsO0bWUgR2xpc3Nl?= , Arnd Bergmann , Daniel Vetter , Dan Williams , Andrew Morton , Linux ARM , "open list:DMA BUFFER SHARING FRAMEWORK" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" T24gU2F0LCBPY3QgMzEsIDIwMjAgYXQgNzozNiBBTSBKb2huIEh1YmJhcmQgPGpodWJiYXJkQG52 aWRpYS5jb20+IHdyb3RlOgo+Cj4gT24gMTAvMzAvMjAgMzowOCBBTSwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiA+IFdlIHdhbnQgYWxsIGlvbWVtIG1tYXBzIHRvIGNvbnNpc3RlbnRseSByZXZva2Ug cHRlcyB3aGVuIHRoZSBrZXJuZWwKPiA+IHRha2VzIG92ZXIgYW5kIENPTkZJR19JT19TVFJJQ1Rf REVWTUVNIGlzIGVuYWJsZWQuIFRoaXMgaW5jbHVkZXMgdGhlCj4gPiBwY2kgYmFyIG1tYXBzIGF2 YWlsYWJsZSB0aHJvdWdoIHByb2NmcyBhbmQgc3lzZnMsIHdoaWNoIGN1cnJlbnRseSBkbwo+ID4g bm90IHJldm9rZSBtYXBwaW5ncy4KPiA+Cj4gPiBUbyBwcmVwYXJlIGZvciB0aGlzLCBtb3ZlIHRo ZSBjb2RlIGZyb20gdGhlIC9kZXYva21lbSBkcml2ZXIgdG8KPiA+IGtlcm5lbC9yZXNvdXJjZS5j Lgo+Cj4gVGhpcyBzZWVtcyBsaWtlIGl0J3MgZG9pbmcgYSBsb3QgbW9yZSB0aGFuIGp1c3QgY29k ZSBtb3ZlbWVudCwgcmlnaHQ/Cj4gU2hvdWxkIHdlIGxpc3Qgc29tZSBvZiB0aGF0IGhlcmU/CgpJ dCB3YXMgbWVhbnQgdG8gYmUganVzdCBtb3ZpbmcgY29kZSwgYnV0IHRoZW4gdGhlIGluZXZpdGFi bGUgYmlrZXNoZWQKc2hvd2VkIHVwIGFuZCBJIGZvcmdvdCB0byB1cGRhdGUgdGhlIGNvbW1pdCBt ZXNzYWdlIHByb3Blcmx5LiBXaWxsIGZpeAp0aGF0LgoKPiBBbHNvLCBJJ20gc2VlaW5nIGEgY3Jh c2ggZHVlIHRvIHRoaXMgY29tbWl0LiBNb3JlIGJlbG93OgoKVWggdGhhdCdzIG5vdCBnb29kLgo+ Cj4gPgo+ID4gUmV2aWV3ZWQtYnk6IEdyZWcgS3JvYWgtSGFydG1hbiA8Z3JlZ2toQGxpbnV4Zm91 bmRhdGlvbi5vcmc+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0 dGVyQGludGVsLmNvbT4KPiA+IENjOiBKYXNvbiBHdW50aG9ycGUgPGpnZ0B6aWVwZS5jYT4KPiA+ IENjOiBLZWVzIENvb2sgPGtlZXNjb29rQGNocm9taXVtLm9yZz4KPiA+IENjOiBEYW4gV2lsbGlh bXMgPGRhbi5qLndpbGxpYW1zQGludGVsLmNvbT4KPiA+IENjOiBBbmRyZXcgTW9ydG9uIDxha3Bt QGxpbnV4LWZvdW5kYXRpb24ub3JnPgo+ID4gQ2M6IEpvaG4gSHViYmFyZCA8amh1YmJhcmRAbnZp ZGlhLmNvbT4KPiA+IENjOiBKw6lyw7RtZSBHbGlzc2UgPGpnbGlzc2VAcmVkaGF0LmNvbT4KPiA+ IENjOiBKYW4gS2FyYSA8amFja0BzdXNlLmN6Pgo+ID4gQ2M6IERhbiBXaWxsaWFtcyA8ZGFuLmou d2lsbGlhbXNAaW50ZWwuY29tPgo+ID4gQ2M6IGxpbnV4LW1tQGt2YWNrLm9yZwo+ID4gQ2M6IGxp bnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwo+ID4gQ2M6IGxpbnV4LXNhbXN1bmct c29jQHZnZXIua2VybmVsLm9yZwo+ID4gQ2M6IGxpbnV4LW1lZGlhQHZnZXIua2VybmVsLm9yZwo+ ID4gQ2M6IEFybmQgQmVyZ21hbm4gPGFybmRAYXJuZGIuZGU+Cj4gPiBDYzogR3JlZyBLcm9haC1I YXJ0bWFuIDxncmVna2hAbGludXhmb3VuZGF0aW9uLm9yZz4KPiA+IENjOiBEYW5pZWwgVmV0dGVy IDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgo+ID4gQ2M6IERhdmlkIEhpbGRlbmJyYW5kIDxkYXZp ZEByZWRoYXQuY29tPgo+ID4gQ2M6ICJSYWZhZWwgSi4gV3lzb2NraSIgPHJhZmFlbC5qLnd5c29j a2lAaW50ZWwuY29tPgo+ID4gU2lnbmVkLW9mZi1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZl dHRlckBmZndsbC5jaD4KPiA+IC0tCj4gPiB2MzoKPiA+IC0gYWRkIGJhcnJpZXIgZm9yIGNvbnNp c3RlbmN5IGFuZCBkb2N1bWVudCB3aHkgd2UgZG9uJ3QgaGF2ZSB0byBjaGVjawo+ID4gICAgZm9y IE5VTEwgKEphc29uKQo+ID4gdjQKPiA+IC0gQWRqdXN0IGNvbW1lbnRzIHRvIHJlZmxlY3QgdGhl IGdlbmVyYWwgbmF0dXJlIG9mIHRoaXMgaW9tZW0gcmV2b2tlCj4gPiAgICBjb2RlIG5vdyAoRGFu KQo+ID4gLS0tCj4gPiAgIGRyaXZlcnMvY2hhci9tZW0uYyAgICAgfCAgODUgKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gICBpbmNsdWRlL2xpbnV4L2lvcG9ydC5oIHwgICA2 ICstLQo+ID4gICBrZXJuZWwvcmVzb3VyY2UuYyAgICAgIHwgMTAxICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystCj4gPiAgIDMgZmlsZXMgY2hhbmdlZCwgMTAyIGluc2Vy dGlvbnMoKyksIDkwIGRlbGV0aW9ucygtKQo+ID4KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2No YXIvbWVtLmMgYi9kcml2ZXJzL2NoYXIvbWVtLmMKPiA+IGluZGV4IDdkY2Y5ZTRlYTc5ZC4uNDNj ODcxZGM3NDc3IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9jaGFyL21lbS5jCj4gPiArKysgYi9k cml2ZXJzL2NoYXIvbWVtLmMKPiA+IEBAIC0zMSw5ICszMSw2IEBACj4gPiAgICNpbmNsdWRlIDxs aW51eC91aW8uaD4KPiA+ICAgI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KPiA+ICAgI2luY2x1 ZGUgPGxpbnV4L3NlY3VyaXR5Lmg+Cj4gPiAtI2luY2x1ZGUgPGxpbnV4L3BzZXVkb19mcy5oPgo+ ID4gLSNpbmNsdWRlIDx1YXBpL2xpbnV4L21hZ2ljLmg+Cj4gPiAtI2luY2x1ZGUgPGxpbnV4L21v dW50Lmg+Cj4gPgo+ID4gICAjaWZkZWYgQ09ORklHX0lBNjQKPiA+ICAgIyBpbmNsdWRlIDxsaW51 eC9lZmkuaD4KPiA+IEBAIC04MzYsNDIgKzgzMyw2IEBAIHN0YXRpYyBsb2ZmX3QgbWVtb3J5X2xz ZWVrKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zmc2V0LCBpbnQgb3JpZykKPiA+ICAgICAg IHJldHVybiByZXQ7Cj4gPiAgIH0KPiA+Cj4gPiAtc3RhdGljIHN0cnVjdCBpbm9kZSAqZGV2bWVt X2lub2RlOwo+ID4gLQo+ID4gLSNpZmRlZiBDT05GSUdfSU9fU1RSSUNUX0RFVk1FTQo+ID4gLXZv aWQgcmV2b2tlX2Rldm1lbShzdHJ1Y3QgcmVzb3VyY2UgKnJlcykKPiA+IC17Cj4gPiAtICAgICAv KiBwYWlycyB3aXRoIHNtcF9zdG9yZV9yZWxlYXNlKCkgaW4gZGV2bWVtX2luaXRfaW5vZGUoKSAq Lwo+ID4gLSAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IHNtcF9sb2FkX2FjcXVpcmUoJmRldm1l bV9pbm9kZSk7Cj4gPiAtCj4gPiAtICAgICAvKgo+ID4gLSAgICAgICogQ2hlY2sgdGhhdCB0aGUg aW5pdGlhbGl6YXRpb24gaGFzIGNvbXBsZXRlZC4gTG9zaW5nIHRoZSByYWNlCj4gPiAtICAgICAg KiBpcyBvayBiZWNhdXNlIGl0IG1lYW5zIGRyaXZlcnMgYXJlIGNsYWltaW5nIHJlc291cmNlcyBi ZWZvcmUKPiA+IC0gICAgICAqIHRoZSBmc19pbml0Y2FsbCBsZXZlbCBvZiBpbml0IGFuZCBwcmV2 ZW50IC9kZXYvbWVtIGZyb20KPiA+IC0gICAgICAqIGVzdGFibGlzaGluZyBtYXBwaW5ncy4KPiA+ IC0gICAgICAqLwo+ID4gLSAgICAgaWYgKCFpbm9kZSkKPiA+IC0gICAgICAgICAgICAgcmV0dXJu Owo+ID4gLQo+ID4gLSAgICAgLyoKPiA+IC0gICAgICAqIFRoZSBleHBlY3RhdGlvbiBpcyB0aGF0 IHRoZSBkcml2ZXIgaGFzIHN1Y2Nlc3NmdWxseSBtYXJrZWQKPiA+IC0gICAgICAqIHRoZSByZXNv dXJjZSBidXN5IGJ5IHRoaXMgcG9pbnQsIHNvIGRldm1lbV9pc19hbGxvd2VkKCkKPiA+IC0gICAg ICAqIHNob3VsZCBzdGFydCByZXR1cm5pbmcgZmFsc2UsIGhvd2V2ZXIgZm9yIHBlcmZvcm1hbmNl IHRoaXMKPiA+IC0gICAgICAqIGRvZXMgbm90IGl0ZXJhdGUgdGhlIGVudGlyZSByZXNvdXJjZSBy YW5nZS4KPiA+IC0gICAgICAqLwo+ID4gLSAgICAgaWYgKGRldm1lbV9pc19hbGxvd2VkKFBIWVNf UEZOKHJlcy0+c3RhcnQpKSAmJgo+ID4gLSAgICAgICAgIGRldm1lbV9pc19hbGxvd2VkKFBIWVNf UEZOKHJlcy0+ZW5kKSkpIHsKPiA+IC0gICAgICAgICAgICAgLyoKPiA+IC0gICAgICAgICAgICAg ICogKmNyaW5nZSogaW9tZW09cmVsYXhlZCBzYXlzICJnbyBhaGVhZCwgd2hhdCdzIHRoZQo+ID4g LSAgICAgICAgICAgICAgKiB3b3JzdCB0aGF0IGNhbiBoYXBwZW4/Igo+ID4gLSAgICAgICAgICAg ICAgKi8KPiA+IC0gICAgICAgICAgICAgcmV0dXJuOwo+ID4gLSAgICAgfQo+ID4gLQo+ID4gLSAg ICAgdW5tYXBfbWFwcGluZ19yYW5nZShpbm9kZS0+aV9tYXBwaW5nLCByZXMtPnN0YXJ0LCByZXNv dXJjZV9zaXplKHJlcyksIDEpOwo+ID4gLX0KPiA+IC0jZW5kaWYKPiA+IC0KPiA+ICAgc3RhdGlj IGludCBvcGVuX3BvcnQoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCj4g PiAgIHsKPiA+ICAgICAgIGludCByYzsKPiA+IEBAIC04OTEsNyArODUyLDcgQEAgc3RhdGljIGlu dCBvcGVuX3BvcnQoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCj4gPiAg ICAgICAgKiByZXZvY2F0aW9ucyB3aGVuIGRyaXZlcnMgd2FudCB0byB0YWtlIG92ZXIgYSAvZGV2 L21lbSBtYXBwZWQKPiA+ICAgICAgICAqIHJhbmdlLgo+ID4gICAgICAgICovCj4gPiAtICAgICBm aWxwLT5mX21hcHBpbmcgPSBpbm9kZS0+aV9tYXBwaW5nOwo+ID4gKyAgICAgZmlscC0+Zl9tYXBw aW5nID0gaW9tZW1fZ2V0X21hcHBpbmcoKTsKPgo+Cj4gVGhlIHByb2JsZW0gaXMgdGhhdCBpb21l bV9nZXRfbWFwcGluZygpIHJldHVybnMgTlVMTCBmb3IgdGhlICFDT05GSUdfSU9fU1RSSUNUX0RF Vk1FTQo+IGNhc2UuIEFuZCB0aGVuIHdlIGhhdmUgcHJlLWV4aXN0aW5nIGZzIGNvZGUgdGhhdCBl eHBlY3RzIHRvIGdvICJ1cCBhbmQgb3ZlciIsIGxpa2UgdGhpczoKPgo+Cj4gc3RhdGljIGludCBk b19kZW50cnlfb3BlbihzdHJ1Y3QgZmlsZSAqZiwKPiAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBpbm9kZSAqaW5vZGUsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpv cGVuKShzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGZpbGUgKikpCj4gewo+IC4uLgo+Cj4gICAgICAg ICBmaWxlX3JhX3N0YXRlX2luaXQoJmYtPmZfcmEsIGYtPmZfbWFwcGluZy0+aG9zdC0+aV9tYXBw aW5nKTsKPgo+IC4uLmFuZCBpdCBjcmFzaGVzIG9uIHRoYXQgbGluZSBmYWlybHkgZWFybHkgaW4g Ym9vdHVwLgo+Cj4gTm90IHN1cmUgd2hhdCB0byBzdWdnZXN0IGZvciB0aGlzIHBhdGNoLCBidXQg d2FudGVkIHRvIGdldCB0aGlzIHJlcG9ydCBvdXQgYXQgbGVhc3QuCgpPbGQgY29kZSBzZWVtcyB0 byBoYXZlIHdvcmtlZCBieSBhbHdheXMgc2V0dGluZyB1cCB0aGUgaW5vZGUgKHdlIHN0aWxsCmRv IHRoYXQpIGFuZCBhbHdheXMgc2V0dGluZyBpdCAod2UgZG9uJ3QgZG8gdGhhdCBhbnltb3JlKSwg anVzdCBub3QKcmV2b2tpbmcgdGhlIHB0ZXMgd2hlbiB0aGUgS2NvbmZpZyBpcyBub3Qgc2V0LiBJ J2xsIGZpeCB0aGF0IHVwIGFuZApyZW1vdmUgdGhlIGJlaGF2aW91ciBjaGFuZ2UgaGVyZS4KLURh bmllbAoKPiB0aGFua3MsCj4gLS0KPiBKb2huIEh1YmJhcmQKPiBOVklESUEKPgo+ID4KPiA+ICAg ICAgIHJldHVybiAwOwo+ID4gICB9Cj4gPiBAQCAtMTAyMyw0OCArOTg0LDYgQEAgc3RhdGljIGNo YXIgKm1lbV9kZXZub2RlKHN0cnVjdCBkZXZpY2UgKmRldiwgdW1vZGVfdCAqbW9kZSkKPiA+Cj4g PiAgIHN0YXRpYyBzdHJ1Y3QgY2xhc3MgKm1lbV9jbGFzczsKPiA+Cj4gPiAtc3RhdGljIGludCBk ZXZtZW1fZnNfaW5pdF9mc19jb250ZXh0KHN0cnVjdCBmc19jb250ZXh0ICpmYykKPiA+IC17Cj4g PiAtICAgICByZXR1cm4gaW5pdF9wc2V1ZG8oZmMsIERFVk1FTV9NQUdJQykgPyAwIDogLUVOT01F TTsKPiA+IC19Cj4gPiAtCj4gPiAtc3RhdGljIHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlIGRldm1l bV9mc190eXBlID0gewo+ID4gLSAgICAgLm5hbWUgICAgICAgICAgID0gImRldm1lbSIsCj4gPiAt ICAgICAub3duZXIgICAgICAgICAgPSBUSElTX01PRFVMRSwKPiA+IC0gICAgIC5pbml0X2ZzX2Nv bnRleHQgPSBkZXZtZW1fZnNfaW5pdF9mc19jb250ZXh0LAo+ID4gLSAgICAgLmtpbGxfc2IgICAg ICAgID0ga2lsbF9hbm9uX3N1cGVyLAo+ID4gLX07Cj4gPiAtCj4gPiAtc3RhdGljIGludCBkZXZt ZW1faW5pdF9pbm9kZSh2b2lkKQo+ID4gLXsKPiA+IC0gICAgIHN0YXRpYyBzdHJ1Y3QgdmZzbW91 bnQgKmRldm1lbV92ZnNfbW91bnQ7Cj4gPiAtICAgICBzdGF0aWMgaW50IGRldm1lbV9mc19jbnQ7 Cj4gPiAtICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlOwo+ID4gLSAgICAgaW50IHJjOwo+ID4gLQo+ ID4gLSAgICAgcmMgPSBzaW1wbGVfcGluX2ZzKCZkZXZtZW1fZnNfdHlwZSwgJmRldm1lbV92ZnNf bW91bnQsICZkZXZtZW1fZnNfY250KTsKPiA+IC0gICAgIGlmIChyYyA8IDApIHsKPiA+IC0gICAg ICAgICAgICAgcHJfZXJyKCJDYW5ub3QgbW91bnQgL2Rldi9tZW0gcHNldWRvIGZpbGVzeXN0ZW06 ICVkXG4iLCByYyk7Cj4gPiAtICAgICAgICAgICAgIHJldHVybiByYzsKPiA+IC0gICAgIH0KPiA+ IC0KPiA+IC0gICAgIGlub2RlID0gYWxsb2NfYW5vbl9pbm9kZShkZXZtZW1fdmZzX21vdW50LT5t bnRfc2IpOwo+ID4gLSAgICAgaWYgKElTX0VSUihpbm9kZSkpIHsKPiA+IC0gICAgICAgICAgICAg cmMgPSBQVFJfRVJSKGlub2RlKTsKPiA+IC0gICAgICAgICAgICAgcHJfZXJyKCJDYW5ub3QgYWxs b2NhdGUgaW5vZGUgZm9yIC9kZXYvbWVtOiAlZFxuIiwgcmMpOwo+ID4gLSAgICAgICAgICAgICBz aW1wbGVfcmVsZWFzZV9mcygmZGV2bWVtX3Zmc19tb3VudCwgJmRldm1lbV9mc19jbnQpOwo+ID4g LSAgICAgICAgICAgICByZXR1cm4gcmM7Cj4gPiAtICAgICB9Cj4gPiAtCj4gPiAtICAgICAvKgo+ ID4gLSAgICAgICogUHVibGlzaCAvZGV2L21lbSBpbml0aWFsaXplZC4KPiA+IC0gICAgICAqIFBh aXJzIHdpdGggc21wX2xvYWRfYWNxdWlyZSgpIGluIHJldm9rZV9kZXZtZW0oKS4KPiA+IC0gICAg ICAqLwo+ID4gLSAgICAgc21wX3N0b3JlX3JlbGVhc2UoJmRldm1lbV9pbm9kZSwgaW5vZGUpOwo+ ID4gLQo+ID4gLSAgICAgcmV0dXJuIDA7Cj4gPiAtfQo+ID4gLQo+ID4gICBzdGF0aWMgaW50IF9f aW5pdCBjaHJfZGV2X2luaXQodm9pZCkKPiA+ICAgewo+ID4gICAgICAgaW50IG1pbm9yOwo+ID4g QEAgLTEwODYsOCArMTAwNSw2IEBAIHN0YXRpYyBpbnQgX19pbml0IGNocl9kZXZfaW5pdCh2b2lk KQo+ID4gICAgICAgICAgICAgICAgKi8KPiA+ICAgICAgICAgICAgICAgaWYgKChtaW5vciA9PSBE RVZQT1JUX01JTk9SKSAmJiAhYXJjaF9oYXNfZGV2X3BvcnQoKSkKPiA+ICAgICAgICAgICAgICAg ICAgICAgICBjb250aW51ZTsKPiA+IC0gICAgICAgICAgICAgaWYgKChtaW5vciA9PSBERVZNRU1f TUlOT1IpICYmIGRldm1lbV9pbml0X2lub2RlKCkgIT0gMCkKPiA+IC0gICAgICAgICAgICAgICAg ICAgICBjb250aW51ZTsKPiA+Cj4gPiAgICAgICAgICAgICAgIGRldmljZV9jcmVhdGUobWVtX2Ns YXNzLCBOVUxMLCBNS0RFVihNRU1fTUFKT1IsIG1pbm9yKSwKPiA+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBOVUxMLCBkZXZsaXN0W21pbm9yXS5uYW1lKTsKPiA+IGRpZmYgLS1naXQgYS9p bmNsdWRlL2xpbnV4L2lvcG9ydC5oIGIvaW5jbHVkZS9saW51eC9pb3BvcnQuaAo+ID4gaW5kZXgg NTEzNWQ0Yjg2Y2Q2Li4wMmE1NDY2MjQ1YzAgMTAwNjQ0Cj4gPiAtLS0gYS9pbmNsdWRlL2xpbnV4 L2lvcG9ydC5oCj4gPiArKysgYi9pbmNsdWRlL2xpbnV4L2lvcG9ydC5oCj4gPiBAQCAtMzA3LDEx ICszMDcsNyBAQCBzdHJ1Y3QgcmVzb3VyY2UgKmRldm1fcmVxdWVzdF9mcmVlX21lbV9yZWdpb24o c3RydWN0IGRldmljZSAqZGV2LAo+ID4gICBzdHJ1Y3QgcmVzb3VyY2UgKnJlcXVlc3RfZnJlZV9t ZW1fcmVnaW9uKHN0cnVjdCByZXNvdXJjZSAqYmFzZSwKPiA+ICAgICAgICAgICAgICAgdW5zaWdu ZWQgbG9uZyBzaXplLCBjb25zdCBjaGFyICpuYW1lKTsKPiA+Cj4gPiAtI2lmZGVmIENPTkZJR19J T19TVFJJQ1RfREVWTUVNCj4gPiAtdm9pZCByZXZva2VfZGV2bWVtKHN0cnVjdCByZXNvdXJjZSAq cmVzKTsKPiA+IC0jZWxzZQo+ID4gLXN0YXRpYyBpbmxpbmUgdm9pZCByZXZva2VfZGV2bWVtKHN0 cnVjdCByZXNvdXJjZSAqcmVzKSB7IH07Cj4gPiAtI2VuZGlmCj4gPiArZXh0ZXJuIHN0cnVjdCBh ZGRyZXNzX3NwYWNlICppb21lbV9nZXRfbWFwcGluZyh2b2lkKTsKPiA+Cj4gPiAgICNlbmRpZiAv KiBfX0FTU0VNQkxZX18gKi8KPiA+ICAgI2VuZGlmICAgICAgLyogX0xJTlVYX0lPUE9SVF9IICov Cj4gPiBkaWZmIC0tZ2l0IGEva2VybmVsL3Jlc291cmNlLmMgYi9rZXJuZWwvcmVzb3VyY2UuYwo+ ID4gaW5kZXggM2FlMmY1NmNjNzlkLi41ZWNjMzE4N2ZlMmQgMTAwNjQ0Cj4gPiAtLS0gYS9rZXJu ZWwvcmVzb3VyY2UuYwo+ID4gKysrIGIva2VybmVsL3Jlc291cmNlLmMKPiA+IEBAIC0xOCwxMiAr MTgsMTUgQEAKPiA+ICAgI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+Cj4gPiAgICNpbmNsdWRl IDxsaW51eC9mcy5oPgo+ID4gICAjaW5jbHVkZSA8bGludXgvcHJvY19mcy5oPgo+ID4gKyNpbmNs dWRlIDxsaW51eC9wc2V1ZG9fZnMuaD4KPiA+ICAgI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+Cj4g PiAgICNpbmNsdWRlIDxsaW51eC9zZXFfZmlsZS5oPgo+ID4gICAjaW5jbHVkZSA8bGludXgvZGV2 aWNlLmg+Cj4gPiAgICNpbmNsdWRlIDxsaW51eC9wZm4uaD4KPiA+ICAgI2luY2x1ZGUgPGxpbnV4 L21tLmg+Cj4gPiArI2luY2x1ZGUgPGxpbnV4L21vdW50Lmg+Cj4gPiAgICNpbmNsdWRlIDxsaW51 eC9yZXNvdXJjZV9leHQuaD4KPiA+ICsjaW5jbHVkZSA8dWFwaS9saW51eC9tYWdpYy5oPgo+ID4g ICAjaW5jbHVkZSA8YXNtL2lvLmg+Cj4gPgo+ID4KPiA+IEBAIC0xMTE1LDYgKzExMTgsNTggQEAg cmVzb3VyY2Vfc2l6ZV90IHJlc291cmNlX2FsaWdubWVudChzdHJ1Y3QgcmVzb3VyY2UgKnJlcykK PiA+Cj4gPiAgIHN0YXRpYyBERUNMQVJFX1dBSVRfUVVFVUVfSEVBRChtdXhlZF9yZXNvdXJjZV93 YWl0KTsKPiA+Cj4gPiArc3RhdGljIHN0cnVjdCBpbm9kZSAqaW9tZW1faW5vZGU7Cj4gPiArCj4g PiArI2lmZGVmIENPTkZJR19JT19TVFJJQ1RfREVWTUVNCj4gPiArc3RhdGljIHZvaWQgcmV2b2tl X2lvbWVtKHN0cnVjdCByZXNvdXJjZSAqcmVzKQo+ID4gK3sKPiA+ICsgICAgIC8qIHBhaXJzIHdp dGggc21wX3N0b3JlX3JlbGVhc2UoKSBpbiBpb21lbV9pbml0X2lub2RlKCkgKi8KPiA+ICsgICAg IHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBzbXBfbG9hZF9hY3F1aXJlKCZpb21lbV9pbm9kZSk7Cj4g PiArCj4gPiArICAgICAvKgo+ID4gKyAgICAgICogQ2hlY2sgdGhhdCB0aGUgaW5pdGlhbGl6YXRp b24gaGFzIGNvbXBsZXRlZC4gTG9zaW5nIHRoZSByYWNlCj4gPiArICAgICAgKiBpcyBvayBiZWNh dXNlIGl0IG1lYW5zIGRyaXZlcnMgYXJlIGNsYWltaW5nIHJlc291cmNlcyBiZWZvcmUKPiA+ICsg ICAgICAqIHRoZSBmc19pbml0Y2FsbCBsZXZlbCBvZiBpbml0IGFuZCBwcmV2ZW50IGlvbWVtX2dl dF9tYXBwaW5nIHVzZXJzCj4gPiArICAgICAgKiBmcm9tIGVzdGFibGlzaGluZyBtYXBwaW5ncy4K PiA+ICsgICAgICAqLwo+ID4gKyAgICAgaWYgKCFpbm9kZSkKPiA+ICsgICAgICAgICAgICAgcmV0 dXJuOwo+ID4gKwo+ID4gKyAgICAgLyoKPiA+ICsgICAgICAqIFRoZSBleHBlY3RhdGlvbiBpcyB0 aGF0IHRoZSBkcml2ZXIgaGFzIHN1Y2Nlc3NmdWxseSBtYXJrZWQKPiA+ICsgICAgICAqIHRoZSBy ZXNvdXJjZSBidXN5IGJ5IHRoaXMgcG9pbnQsIHNvIGRldm1lbV9pc19hbGxvd2VkKCkKPiA+ICsg ICAgICAqIHNob3VsZCBzdGFydCByZXR1cm5pbmcgZmFsc2UsIGhvd2V2ZXIgZm9yIHBlcmZvcm1h bmNlIHRoaXMKPiA+ICsgICAgICAqIGRvZXMgbm90IGl0ZXJhdGUgdGhlIGVudGlyZSByZXNvdXJj ZSByYW5nZS4KPiA+ICsgICAgICAqLwo+ID4gKyAgICAgaWYgKGRldm1lbV9pc19hbGxvd2VkKFBI WVNfUEZOKHJlcy0+c3RhcnQpKSAmJgo+ID4gKyAgICAgICAgIGRldm1lbV9pc19hbGxvd2VkKFBI WVNfUEZOKHJlcy0+ZW5kKSkpIHsKPiA+ICsgICAgICAgICAgICAgLyoKPiA+ICsgICAgICAgICAg ICAgICogKmNyaW5nZSogaW9tZW09cmVsYXhlZCBzYXlzICJnbyBhaGVhZCwgd2hhdCdzIHRoZQo+ ID4gKyAgICAgICAgICAgICAgKiB3b3JzdCB0aGF0IGNhbiBoYXBwZW4/Igo+ID4gKyAgICAgICAg ICAgICAgKi8KPiA+ICsgICAgICAgICAgICAgcmV0dXJuOwo+ID4gKyAgICAgfQo+ID4gKwo+ID4g KyAgICAgdW5tYXBfbWFwcGluZ19yYW5nZShpbm9kZS0+aV9tYXBwaW5nLCByZXMtPnN0YXJ0LCBy ZXNvdXJjZV9zaXplKHJlcyksIDEpOwo+ID4gK30KPiA+ICtzdHJ1Y3QgYWRkcmVzc19zcGFjZSAq aW9tZW1fZ2V0X21hcHBpbmcodm9pZCkKPiA+ICt7Cj4gPiArICAgICAvKgo+ID4gKyAgICAgICog VGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBmcm9tIGZpbGUgb3BlbiBwYXRocywgaGVuY2Ug Z3VhcmFudGVlZAo+ID4gKyAgICAgICogdGhhdCBmc19pbml0Y2FsbHMgaGF2ZSBjb21wbGV0ZWQg YW5kIG5vIG5lZWQgdG8gY2hlY2sgZm9yIE5VTEwuIEJ1dAo+ID4gKyAgICAgICogc2luY2UgcmV2 b2tlX2lvbWVtIGNhbiBiZSBjYWxsZWQgYmVmb3JlIHRoZSBpbml0Y2FsbCB3ZSBzdGlsbCBuZWVk Cj4gPiArICAgICAgKiB0aGUgYmFycmllciB0byBhcHBlYXNlIGNoZWNrZXJzLgo+ID4gKyAgICAg ICovCj4gPiArICAgICByZXR1cm4gc21wX2xvYWRfYWNxdWlyZSgmaW9tZW1faW5vZGUpLT5pX21h cHBpbmc7Cj4gPiArfQo+ID4gKyNlbHNlCj4gPiArc3RhdGljIHZvaWQgcmV2b2tlX2lvbWVtKHN0 cnVjdCByZXNvdXJjZSAqcmVzKSB7fQo+ID4gK3N0cnVjdCBhZGRyZXNzX3NwYWNlICppb21lbV9n ZXRfbWFwcGluZyh2b2lkKQo+ID4gK3sKPiA+ICsgICAgIHJldHVybiBOVUxMOwo+ID4gK30KPiA+ ICsjZW5kaWYKPiA+ICsKPiA+ICAgLyoqCj4gPiAgICAqIF9fcmVxdWVzdF9yZWdpb24gLSBjcmVh dGUgYSBuZXcgYnVzeSByZXNvdXJjZSByZWdpb24KPiA+ICAgICogQHBhcmVudDogcGFyZW50IHJl c291cmNlIGRlc2NyaXB0b3IKPiA+IEBAIC0xMTgyLDcgKzEyMzcsNyBAQCBzdHJ1Y3QgcmVzb3Vy Y2UgKiBfX3JlcXVlc3RfcmVnaW9uKHN0cnVjdCByZXNvdXJjZSAqcGFyZW50LAo+ID4gICAgICAg d3JpdGVfdW5sb2NrKCZyZXNvdXJjZV9sb2NrKTsKPiA+Cj4gPiAgICAgICBpZiAocmVzICYmIG9y aWdfcGFyZW50ID09ICZpb21lbV9yZXNvdXJjZSkKPiA+IC0gICAgICAgICAgICAgcmV2b2tlX2Rl dm1lbShyZXMpOwo+ID4gKyAgICAgICAgICAgICByZXZva2VfaW9tZW0ocmVzKTsKPiA+Cj4gPiAg ICAgICByZXR1cm4gcmVzOwo+ID4gICB9Cj4gPiBAQCAtMTc4Miw0ICsxODM3LDQ4IEBAIHN0YXRp YyBpbnQgX19pbml0IHN0cmljdF9pb21lbShjaGFyICpzdHIpCj4gPiAgICAgICByZXR1cm4gMTsK PiA+ICAgfQo+ID4KPiA+ICtzdGF0aWMgaW50IGlvbWVtX2ZzX2luaXRfZnNfY29udGV4dChzdHJ1 Y3QgZnNfY29udGV4dCAqZmMpCj4gPiArewo+ID4gKyAgICAgcmV0dXJuIGluaXRfcHNldWRvKGZj LCBERVZNRU1fTUFHSUMpID8gMCA6IC1FTk9NRU07Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyBz dHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSBpb21lbV9mc190eXBlID0gewo+ID4gKyAgICAgLm5hbWUg ICAgICAgICAgID0gImlvbWVtIiwKPiA+ICsgICAgIC5vd25lciAgICAgICAgICA9IFRISVNfTU9E VUxFLAo+ID4gKyAgICAgLmluaXRfZnNfY29udGV4dCA9IGlvbWVtX2ZzX2luaXRfZnNfY29udGV4 dCwKPiA+ICsgICAgIC5raWxsX3NiICAgICAgICA9IGtpbGxfYW5vbl9zdXBlciwKPiA+ICt9Owo+ ID4gKwo+ID4gK3N0YXRpYyBpbnQgX19pbml0IGlvbWVtX2luaXRfaW5vZGUodm9pZCkKPiA+ICt7 Cj4gPiArICAgICBzdGF0aWMgc3RydWN0IHZmc21vdW50ICppb21lbV92ZnNfbW91bnQ7Cj4gPiAr ICAgICBzdGF0aWMgaW50IGlvbWVtX2ZzX2NudDsKPiA+ICsgICAgIHN0cnVjdCBpbm9kZSAqaW5v ZGU7Cj4gPiArICAgICBpbnQgcmM7Cj4gPiArCj4gPiArICAgICByYyA9IHNpbXBsZV9waW5fZnMo JmlvbWVtX2ZzX3R5cGUsICZpb21lbV92ZnNfbW91bnQsICZpb21lbV9mc19jbnQpOwo+ID4gKyAg ICAgaWYgKHJjIDwgMCkgewo+ID4gKyAgICAgICAgICAgICBwcl9lcnIoIkNhbm5vdCBtb3VudCBp b21lbSBwc2V1ZG8gZmlsZXN5c3RlbTogJWRcbiIsIHJjKTsKPiA+ICsgICAgICAgICAgICAgcmV0 dXJuIHJjOwo+ID4gKyAgICAgfQo+ID4gKwo+ID4gKyAgICAgaW5vZGUgPSBhbGxvY19hbm9uX2lu b2RlKGlvbWVtX3Zmc19tb3VudC0+bW50X3NiKTsKPiA+ICsgICAgIGlmIChJU19FUlIoaW5vZGUp KSB7Cj4gPiArICAgICAgICAgICAgIHJjID0gUFRSX0VSUihpbm9kZSk7Cj4gPiArICAgICAgICAg ICAgIHByX2VycigiQ2Fubm90IGFsbG9jYXRlIGlub2RlIGZvciBpb21lbTogJWRcbiIsIHJjKTsK PiA+ICsgICAgICAgICAgICAgc2ltcGxlX3JlbGVhc2VfZnMoJmlvbWVtX3Zmc19tb3VudCwgJmlv bWVtX2ZzX2NudCk7Cj4gPiArICAgICAgICAgICAgIHJldHVybiByYzsKPiA+ICsgICAgIH0KPiA+ ICsKPiA+ICsgICAgIC8qCj4gPiArICAgICAgKiBQdWJsaXNoIGlvbWVtIHJldm9jYXRpb24gaW5v ZGUgaW5pdGlhbGl6ZWQuCj4gPiArICAgICAgKiBQYWlycyB3aXRoIHNtcF9sb2FkX2FjcXVpcmUo KSBpbiByZXZva2VfaW9tZW0oKS4KPiA+ICsgICAgICAqLwo+ID4gKyAgICAgc21wX3N0b3JlX3Jl bGVhc2UoJmlvbWVtX2lub2RlLCBpbm9kZSk7Cj4gPiArCj4gPiArICAgICByZXR1cm4gMDsKPiA+ ICt9Cj4gPiArCj4gPiArZnNfaW5pdGNhbGwoaW9tZW1faW5pdF9pbm9kZSk7Cj4gPiArCj4gPiAg IF9fc2V0dXAoImlvbWVtPSIsIHN0cmljdF9pb21lbSk7Cj4gPgo+Cj4KCgotLSAKRGFuaWVsIFZl dHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3 bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJp LWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==