From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH v2 2/2] drm/vkms: Implement CRC debugfs API Date: Fri, 3 Aug 2018 12:42:15 -0400 Message-ID: <20180803164215.GK20303@art_vandelay> References: <20180802110951.GA29358@juma> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-yw1-xc35.google.com (mail-yw1-xc35.google.com [IPv6:2607:f8b0:4864:20::c35]) by gabe.freedesktop.org (Postfix) with ESMTPS id 82AFF6E75E for ; Fri, 3 Aug 2018 16:42:17 +0000 (UTC) Received: by mail-yw1-xc35.google.com with SMTP id w76-v6so1188737ywg.4 for ; Fri, 03 Aug 2018 09:42:17 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20180802110951.GA29358@juma> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Gustavo Padovan Cc: rodrigosiqueiramelo@gmail.com, Haneen Mohammed , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBBdWcgMDIsIDIwMTggYXQgMDg6MDk6NTFBTSAtMDMwMCwgR3VzdGF2byBQYWRvdmFu IHdyb3RlOgo+IEhpIEhhbmVlbiwKPiAKPiBPbiBUaHUsIEF1ZyAwMiwgMjAxOCBhdCAwNDoxMDoy NkFNICswMzAwLCBIYW5lZW4gTW9oYW1tZWQgd3JvdGU6Cj4gPiBUaGlzIHBhdGNoIGltcGxlbWVu dCB0aGUgbmVjZXNzYXJ5IGZ1bmN0aW9ucyB0byBjb21wdXRlIGFuZCBhZGQgQ1JDcwo+ID4gZW50 cmllczoKPiA+IAo+ID4gLSBJbXBsZW1lbnQgdGhlIHNldF9jcmNfc291cmNlKCkgY2FsbGJhY2su Cj4gPiAtIENvbXB1dGUgQ1JDIHVzaW5nIGNyYzMyIG9uIHRoZSB2aXNpYmxlIHBhcnQgb2YgdGhl IGZyYW1lYnVmZmVyLgo+ID4gLSBVc2Ugb3JkZXJlZCB3b3JrcXVldWUgcGVyIG91dHB1dCB0byBj b21wdXRlIGFuZCBhZGQgQ1JDIGF0IHRoZSBlbmQKPiA+ICAgb2YgYSB2YmxhbmsuCj4gPiAtIFVz ZSBhcHByb3ByaWF0ZSBzeW5jaHJvbml6YXRpb24gbWV0aG9kcyBzaW5jZSB0aGUgQ1JDIGNvbXB1 dGF0aW9uIG11c3QKPiA+ICAgYmUgYXRvbWljIHdydCB0aGUgZ2VuZXJhdGVkIHZibGFuayBldmVu dCBmb3IgYSBnaXZlbiBhdG9taWMgdXBkYXRlLCBieQo+ID4gICB1c2luZyBzcGlubG9jayBhY3Jv c3MgYXRvbWljX2JlZ2luL2F0b21pY19mbHVzaCB0byB3cmFwIHRoZSBldmVudAo+ID4gICBoYW5k bGluZyBjb2RlIGNvbXBsZXRlbHkgYW5kIG1hdGNoIHRoZSBmbGlwIGV2ZW50IHdpdGggdGhlIENS Qy4KPiA+IAo+ID4gU2luY2Ugdmttc19jcmNfd29ya19oYW5kbGUoKSBjYW4gc2xlZXAsIHNwaW5s b2NrIGNhbid0IGJlIGFjcXVpcmVkCj4gPiB3aGlsZSBhY2Nlc3Npbmcgdmttc19vdXRwdXQtPnBy aW1hcnlfY3JjIHRvIGNvbXB1dGUgQ1JDLgo+ID4gVG8gbWFrZSBzdXJlIHRoZSBkYXRhIGlzIHVw ZGF0ZWQgYW5kIHJlbGVhc2VkIHdpdGhvdXQgY29uZmxpY3Qgd2l0aAo+ID4gdGhlIHZrbXNfY3Jj X3dvcmtfaGFuZGxlKCksIHRoZSB3b3JrX3N0cnVjdCBpcyBmbHVzaGVkIEBjcnRjX2Rlc3Ryb3kK PiA+IGFuZCB0aGUgZGF0YSBpcyB1cGRhdGVkIGJlZm9yZSBzY2hlZHVsaW5nIHRoZSB3b3JrIGhh bmRsZSBhZ2FpbiwgYXMKPiA+IGZvbGxvdzoKPiAKPiBJJ20gbm90IHN1cmUgSSBnZXQgd2h5IHRo aXMgaXMgYSBzcGlubG9jayBhbmQgbm90IGEgbXV0ZXguIFdpdGggdGhlCj4gbGF0ZXIgeW91IGFy ZSBhYmxlIHRvIHNsZWVwLiBBbHNvLCB5b3VyIHNwaW5sb2NrIGhlbGQgdGhyb3VnaCB0aGUgd2hv bGUKPiBhdG9taWMgY29tbWl0IChmcm9tIHRoZSBiZWdpbiB0byBmbHVzaCkgd2hpY2ggc2VlbXMg dG9vIG11Y2ggdGltZSBmb3IKPiBidXN5IHdhaXRpbmcuIE9yIGFtIEkgbWlzc2luZyBzb21ldGhp bmcgaGVyZT8KCkkgZXhwcmVzc2VkIHNvbWUgb2YgdGhlIHNhbWUgY29uY2VybnMgaGVyZToKCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2RyaS1kZXZlbC8yMDE4LUp1bHkv MTgzNTg0Lmh0bWwKClRoZSB0bDtkciBpcyB0aGF0IHRoZSBzcGlubG9jayBpcyByZXF1aXJlZCBz byB3ZSBjYW4gYWNxdWlyZSBpdCBpbiB0aGUgdmJsYW5rCmhydGltZXIuIEl0IGlzIGhlbGQgYWNy b3NzIGJlZ2luL2ZsdXNoIHRvIHByZXZlbnQgc2VuZGluZyB2YmxhbmsgZXZlbnRzcyB1bnRpbAp0 aGUgY3JjIGhhcyBiZWVuIGZ1bGx5IGNhbGN1bGF0ZWQgZm9yIHRoZSBmcmFtZS4gTW9yZSBkZXRh aWxzIGluIHRoZSB0aHJlYWQsCm9mYy4KClNlYW4KCj4gCj4gR3VzdGF2bwo+IAo+ID4gCj4gPiAq IENSQyBkYXRhIHVwZGF0ZToKPiA+IDEtIHN0b3JlIHZrbXNfY3JjX2RhdGEge2ZiLCBzcmN9IHBl ciBwbGFuZV9zdGF0ZQo+ID4gMi0gQHBsYW5lX2R1cGxpY2F0ZV9zdGF0ZSAtPiBhbGxvY2F0ZSB2 a21zX2NyY19kYXRhCj4gPiAzLSBkdXJpbmcgYXRvbWljIGNvbW1pdCAoQGF0b21pY191cGRhdGUp IC0+Cj4gPiAJYSkgY29weSB7ZmIsIHNyY30gdG8gcGxhbmVfc3RhdGUtPmNyY19kYXRhCj4gPiAJ YikgZ2V0IHJlZmVyZW5jZSB0byBmYiwKPiA+IDMtIEBwbGFuZV9kZXN0cm95X3N0YXRlIC0+IGEp IGlmIChmYiByZWZjb3VudCkgcmVtb3ZlIHJlZmVyZW5jZSB0byBmYgo+ID4gCQkJICAgYikgZGVh bGxvY2F0ZSBjcmNfZGF0YQo+ID4gCj4gPiAqIEF0b21pYyBDb21taXQ6Cj4gPiAxLSB2a21zX3Bs YW5lX2F0b21pY19jaGVjawo+ID4gMi0gdmttc19wcmVwYXJlX2ZiIC0+IHZtYXAgdmttc19nZW1f b2JqLT52YWRkcgo+ID4gMy0gYXRvbWljX2JlZ2luIC0+IGhvbGQgY3JjIHNwaW5sb2NrCj4gPiA0 LSBhdG9taWNfcGxhbmVfdXBkYXRlIC0+IGEpIHVwZGF0ZSB2a21zX291dHB1dC0+cHJpbWFyeV9j cmMKPiA+IAkJCSAgYikgZ2V0IHJlZmVyZW5jZSB0byBmYgo+ID4gNS0gYXRvbWljX2ZsdXNoIC0+ IGEpIHNlbmQgdmJsYW5rIGV2ZW50IHdoaWxlIGhvbGRpbmcgZXZlbnRfbG9jawo+ID4gCQkgICBi KSByZWxlYXNlIGNyYyBzcGlubG9jawo+ID4gCj4gPiAqIGhydGltZXIgcmVndWxhciBjYWxsYmFj azoKPiA+IDEtIGhvbGQgY3JjIHNwaW5sb2NrCj4gPiAyLSBkcm1fY3J0Y19oYW5kbGVfdmJsYW5r KCkKPiA+IDMtIHF1ZXVlIHZrbXNfY3JjX3dvcmtfaGFuZGxlCj4gPiA0LSByZWxlYXNlIGNyYyBz cGlubG9jawo+ID4gCj4gPiAqIGNsZWFudXA6Cj4gPiAxLSBAY2xlYW51cF9mYiAtPnZ1bm1hcCB2 a21zX2dlbV9vYmotPnZhZGRyCj4gPiAyLSBAY3J0Y19kZXN0cm95IC0+IGZsdXNoIHdvcmsgc3Ry dWN0Cj4gPiAzLSBAcGxhbmVfZGVzdHJveSAtPiBhKSBpZiAoZmIgcmVmY291bnQpIHJlbW92ZSBy ZWZlcmVuY2UgdG8gZmIKPiA+IAkJICAgICBiKSBkZWFsbG9jYXRlIGNyY19kYXRhCj4gPiAKPiA+ IFNpZ25lZC1vZmYtYnk6IEhhbmVlbiBNb2hhbW1lZCA8aGFtb2hhbW1lZC5zYUBnbWFpbC5jb20+ Cj4gPiAtLS0KPiA+IENoYW5nZXMgaW4gdjI6IAo+ID4gLSByZW1vdmUgdmttc19jcmNfZGF0YSBm b3IgcHJpbWFyeSBwbGFuZSBmcm9tIHZrbXNfb3V0cHV0Cj4gPiAgIGFuZCBhY2Nlc3MgaXQgZnJv bSB2a21zX3BsYW5lX3N0YXRlIGluc3RlYWQuCj4gPiAtIGZsdXNoIGNyY193b3JrcSBpbiB2a21z X3NldF9jcmNfc291cmNlIGJlZm9yZSBjaGFuZ2luZyBvdXQtPmVuYWJsZWQKPiA+ICAgdmFsdWUu Cj4gPiAKPiA+ICBkcml2ZXJzL2dwdS9kcm0vdmttcy9NYWtlZmlsZSAgICAgfCAgMiArLQo+ID4g IGRyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfY3JjLmMgICB8IDk1ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKPiA+ICBkcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NydGMuYyAgfCA1 NiArKysrKysrKysrKysrKystLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5j ICAgfCAgMSArCj4gPiAgZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19kcnYuaCAgIHwgMjEgKysr KysrKwo+ID4gIGRyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfcGxhbmUuYyB8IDMwICsrKysrKysr KysKPiA+ICA2IGZpbGVzIGNoYW5nZWQsIDE5NiBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygt KQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NyYy5j Cj4gPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmttcy9NYWtlZmlsZSBiL2Ry aXZlcnMvZ3B1L2RybS92a21zL01ha2VmaWxlCj4gPiBpbmRleCA5ODYyOTdkYTUxYmYuLjM3OTY2 OTE0ZjcwYiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92a21zL01ha2VmaWxlCj4g PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy9NYWtlZmlsZQo+ID4gQEAgLTEsMyArMSwzIEBA Cj4gPiAtdmttcy15IDo9IHZrbXNfZHJ2Lm8gdmttc19wbGFuZS5vIHZrbXNfb3V0cHV0Lm8gdmtt c19jcnRjLm8gdmttc19nZW0ubwo+ID4gK3ZrbXMteSA6PSB2a21zX2Rydi5vIHZrbXNfcGxhbmUu byB2a21zX291dHB1dC5vIHZrbXNfY3J0Yy5vIHZrbXNfZ2VtLm8gdmttc19jcmMubwo+ID4gIAo+ ID4gIG9iai0kKENPTkZJR19EUk1fVktNUykgKz0gdmttcy5vCj4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3ZrbXMvdmttc19jcmMuYyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNf Y3JjLmMKPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gPiBpbmRleCAwMDAwMDAwMDAwMDAuLjli OTA5MjIxOTQzZgo+ID4gLS0tIC9kZXYvbnVsbAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Zr bXMvdmttc19jcmMuYwo+ID4gQEAgLTAsMCArMSw5NSBAQAo+ID4gKy8vIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBHUEwtMi4wCj4gPiArI2luY2x1ZGUgInZrbXNfZHJ2LmgiCj4gPiArI2luY2x1 ZGUgPGxpbnV4L2NyYzMyLmg+Cj4gPiArI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2ZyYW1lYnVmZmVy X2hlbHBlci5oPgo+ID4gKwo+ID4gK3N0YXRpYyB1aW50MzJfdCBfdmttc19nZXRfY3JjKHN0cnVj dCB2a21zX2NyY19kYXRhICpjcmNfZGF0YSkKPiA+ICt7Cj4gPiArCXN0cnVjdCBkcm1fZnJhbWVi dWZmZXIgKmZiID0gJmNyY19kYXRhLT5mYjsKPiA+ICsJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpn ZW1fb2JqID0gZHJtX2dlbV9mYl9nZXRfb2JqKGZiLCAwKTsKPiA+ICsJc3RydWN0IHZrbXNfZ2Vt X29iamVjdCAqdmttc19vYmogPSBkcm1fZ2VtX3RvX3ZrbXNfZ2VtKGdlbV9vYmopOwo+ID4gKwl1 MzIgY3JjID0gMDsKPiA+ICsJaW50IGkgPSAwOwo+ID4gKwl1bnNpZ25lZCBpbnQgeCA9IGNyY19k YXRhLT5zcmMueDEgPj4gMTY7Cj4gPiArCXVuc2lnbmVkIGludCB5ID0gY3JjX2RhdGEtPnNyYy55 MSA+PiAxNjsKPiA+ICsJdW5zaWduZWQgaW50IGhlaWdodCA9IGRybV9yZWN0X2hlaWdodCgmY3Jj X2RhdGEtPnNyYykgPj4gMTY7Cj4gPiArCXVuc2lnbmVkIGludCB3aWR0aCA9IGRybV9yZWN0X3dp ZHRoKCZjcmNfZGF0YS0+c3JjKSA+PiAxNjsKPiA+ICsJdW5zaWduZWQgaW50IGNwcCA9IGZiLT5m b3JtYXQtPmNwcFswXTsKPiA+ICsJdW5zaWduZWQgaW50IHNyY19vZmZzZXQ7Cj4gPiArCXVuc2ln bmVkIGludCBzaXplX2J5dGUgPSB3aWR0aCAqIGNwcDsKPiA+ICsJdm9pZCAqdmFkZHI7Cj4gPiAr Cj4gPiArCW11dGV4X2xvY2soJnZrbXNfb2JqLT5wYWdlc19sb2NrKTsKPiA+ICsJdmFkZHIgPSB2 a21zX29iai0+dmFkZHI7Cj4gPiArCWlmIChXQVJOX09OKCF2YWRkcikpCj4gPiArCQlyZXR1cm4g Y3JjOwo+ID4gKwo+ID4gKwlmb3IgKGkgPSB5OyBpIDwgeSArIGhlaWdodDsgaSsrKSB7Cj4gPiAr CQlzcmNfb2Zmc2V0ID0gZmItPm9mZnNldHNbMF0gKyAoaSAqIGZiLT5waXRjaGVzWzBdKSArICh4 ICogY3BwKTsKPiA+ICsJCWNyYyA9IGNyYzMyX2xlKGNyYywgdmFkZHIgKyBzcmNfb2Zmc2V0LCBz aXplX2J5dGUpOwo+ID4gKwl9Cj4gPiArCW11dGV4X3VubG9jaygmdmttc19vYmotPnBhZ2VzX2xv Y2spOwo+ID4gKwo+ID4gKwlyZXR1cm4gY3JjOwo+ID4gK30KPiA+ICsKPiA+ICt2b2lkIHZrbXNf Y3JjX3dvcmtfaGFuZGxlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiA+ICt7Cj4gPiArCXN0 cnVjdCB2a21zX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPSBjb250YWluZXJfb2Yod29yaywKPiA+ ICsJCQkJCQlzdHJ1Y3Qgdmttc19jcnRjX3N0YXRlLAo+ID4gKwkJCQkJCWNyY193b3JrKTsKPiA+ ICsJc3RydWN0IGRybV9jcnRjICpjcnRjID0gY3J0Y19zdGF0ZS0+YmFzZS5jcnRjOwo+ID4gKwlz dHJ1Y3Qgdmttc19vdXRwdXQgKm91dCA9IGRybV9jcnRjX3RvX3ZrbXNfb3V0cHV0KGNydGMpOwo+ ID4gKwlzdHJ1Y3Qgdmttc19kZXZpY2UgKnZkZXYgPSBjb250YWluZXJfb2Yob3V0LCBzdHJ1Y3Qg dmttc19kZXZpY2UsCj4gPiArCQkJCQkJb3V0cHV0KTsKPiA+ICsJc3RydWN0IHZrbXNfY3JjX2Rh dGEgKnByaW1hcnlfY3JjID0gTlVMTDsKPiA+ICsJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4g PiArCj4gPiArCXUzMiBjcmMzMiA9IDA7Cj4gPiArCj4gPiArCWRybV9mb3JfZWFjaF9wbGFuZShw bGFuZSwgJnZkZXYtPmRybSkgewo+ID4gKwkJc3RydWN0IHZrbXNfcGxhbmVfc3RhdGUgKnZwbGFu ZV9zdGF0ZTsKPiA+ICsJCXN0cnVjdCB2a21zX2NyY19kYXRhICpjcmNfZGF0YTsKPiA+ICsKPiA+ ICsJCXZwbGFuZV9zdGF0ZSA9IHRvX3ZrbXNfcGxhbmVfc3RhdGUocGxhbmUtPnN0YXRlKTsKPiA+ ICsJCWNyY19kYXRhID0gdnBsYW5lX3N0YXRlLT5jcmNfZGF0YTsKPiA+ICsKPiA+ICsJCWlmIChk cm1fZnJhbWVidWZmZXJfcmVhZF9yZWZjb3VudCgmY3JjX2RhdGEtPmZiKSA9PSAwKQo+ID4gKwkJ CWNvbnRpbnVlOwo+ID4gKwo+ID4gKwkJaWYgKHBsYW5lLT50eXBlID09IERSTV9QTEFORV9UWVBF X1BSSU1BUlkpIHsKPiA+ICsJCQlwcmltYXJ5X2NyYyA9IGNyY19kYXRhOwo+ID4gKwkJCWJyZWFr Owo+ID4gKwkJfQo+ID4gKwl9Cj4gPiArCj4gPiArCWlmIChwcmltYXJ5X2NyYykKPiA+ICsJCWNy YzMyID0gX3ZrbXNfZ2V0X2NyYyhwcmltYXJ5X2NyYyk7Cj4gPiArCj4gPiArCWRybV9jcnRjX2Fk ZF9jcmNfZW50cnkoY3J0YywgdHJ1ZSwgY3J0Y19zdGF0ZS0+bl9mcmFtZSwgJmNyYzMyKTsKPiA+ ICt9Cj4gPiArCj4gPiAraW50IHZrbXNfc2V0X2NyY19zb3VyY2Uoc3RydWN0IGRybV9jcnRjICpj cnRjLCBjb25zdCBjaGFyICpzcmNfbmFtZSwKPiA+ICsJCQlzaXplX3QgKnZhbHVlc19jbnQpCj4g PiArewo+ID4gKwlzdHJ1Y3Qgdmttc19vdXRwdXQgKm91dCA9IGRybV9jcnRjX3RvX3ZrbXNfb3V0 cHV0KGNydGMpOwo+ID4gKwlib29sIGVuYWJsZWQgPSBmYWxzZTsKPiA+ICsJdW5zaWduZWQgbG9u ZyBmbGFnczsKPiA+ICsJaW50IHJldCA9IDA7Cj4gPiArCj4gPiArCWlmIChzcmNfbmFtZSAmJiBz dHJjbXAoc3JjX25hbWUsICJhdXRvIikgPT0gMCkKPiA+ICsJCWVuYWJsZWQgPSB0cnVlOwo+ID4g KwllbHNlIGlmIChzcmNfbmFtZSkKPiA+ICsJCXJldCA9IC1FSU5WQUw7Cj4gPiArCj4gPiArCSp2 YWx1ZXNfY250ID0gMTsKPiA+ICsKPiA+ICsJLyogbWFrZSBzdXJlIG5vdGhpbmcgaXMgc2NoZWR1 bGVkIG9uIGNydGMgd29ya3EgKi8KPiA+ICsJZmx1c2hfd29ya3F1ZXVlKG91dC0+Y3JjX3dvcmtx KTsKPiA+ICsKPiA+ICsJc3Bpbl9sb2NrX2lycXNhdmUoJm91dC0+bG9jaywgZmxhZ3MpOwo+ID4g KwlvdXQtPmNyY19lbmFibGVkID0gZW5hYmxlZDsKPiA+ICsJc3Bpbl91bmxvY2tfaXJxcmVzdG9y ZSgmb3V0LT5sb2NrLCBmbGFncyk7Cj4gPiArCj4gPiArCXJldHVybiByZXQ7Cj4gPiArfQo+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfY3J0Yy5jIGIvZHJpdmVycy9n cHUvZHJtL3ZrbXMvdmttc19jcnRjLmMKPiA+IGluZGV4IDI2YmFiYjg1Y2E3Ny4uYTZjMDgwZDdm N2FlIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19jcnRjLmMKPiA+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfY3J0Yy5jCj4gPiBAQCAtMTAsMTggKzEw LDMzIEBACj4gPiAgI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgo+ID4gICNpbmNs dWRlIDxkcm0vZHJtX2NydGNfaGVscGVyLmg+Cj4gPiAgCj4gPiAtc3RhdGljIGVudW0gaHJ0aW1l cl9yZXN0YXJ0IHZrbXNfdmJsYW5rX3NpbXVsYXRlKHN0cnVjdCBocnRpbWVyICp0aW1lcikKPiA+ ICtzdGF0aWMgdm9pZCBfdmJsYW5rX2hhbmRsZShzdHJ1Y3Qgdmttc19vdXRwdXQgKm91dHB1dCkK PiA+ICB7Cj4gPiAtCXN0cnVjdCB2a21zX291dHB1dCAqb3V0cHV0ID0gY29udGFpbmVyX29mKHRp bWVyLCBzdHJ1Y3Qgdmttc19vdXRwdXQsCj4gPiAtCQkJCQkJICB2YmxhbmtfaHJ0aW1lcik7Cj4g PiAgCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9ICZvdXRwdXQtPmNydGM7Cj4gPiAtCWludCByZXRf b3ZlcnJ1bjsKPiA+ICsJc3RydWN0IHZrbXNfY3J0Y19zdGF0ZSAqc3RhdGUgPSB0b192a21zX2Ny dGNfc3RhdGUoY3J0Yy0+c3RhdGUpOwo+ID4gIAlib29sIHJldDsKPiA+ICAKPiA+ICsJc3Bpbl9s b2NrKCZvdXRwdXQtPmxvY2spOwo+ID4gIAlyZXQgPSBkcm1fY3J0Y19oYW5kbGVfdmJsYW5rKGNy dGMpOwo+ID4gIAlpZiAoIXJldCkKPiA+ICAJCURSTV9FUlJPUigidmttcyBmYWlsdXJlIG9uIGhh bmRsaW5nIHZibGFuayIpOwo+ID4gIAo+ID4gKwlpZiAoc3RhdGUgJiYgb3V0cHV0LT5jcmNfZW5h YmxlZCkgewo+ID4gKwkJc3RhdGUtPm5fZnJhbWUgPSBkcm1fY3J0Y19hY2N1cmF0ZV92Ymxhbmtf Y291bnQoY3J0Yyk7Cj4gPiArCQlxdWV1ZV93b3JrKG91dHB1dC0+Y3JjX3dvcmtxLCAmc3RhdGUt PmNyY193b3JrKTsKPiA+ICsJfQo+ID4gKwo+ID4gKwlzcGluX3VubG9jaygmb3V0cHV0LT5sb2Nr KTsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIGVudW0gaHJ0aW1lcl9yZXN0YXJ0IHZrbXNfdmJs YW5rX3NpbXVsYXRlKHN0cnVjdCBocnRpbWVyICp0aW1lcikKPiA+ICt7Cj4gPiArCXN0cnVjdCB2 a21zX291dHB1dCAqb3V0cHV0ID0gY29udGFpbmVyX29mKHRpbWVyLCBzdHJ1Y3Qgdmttc19vdXRw dXQsCj4gPiArCQkJCQkJICB2YmxhbmtfaHJ0aW1lcik7Cj4gPiArCWludCByZXRfb3ZlcnJ1bjsK PiA+ICsKPiA+ICsJX3ZibGFua19oYW5kbGUob3V0cHV0KTsKPiA+ICsKPiA+ICAJcmV0X292ZXJy dW4gPSBocnRpbWVyX2ZvcndhcmRfbm93KCZvdXRwdXQtPnZibGFua19ocnRpbWVyLAo+ID4gIAkJ CQkJICBvdXRwdXQtPnBlcmlvZF9ucyk7Cj4gPiAgCj4gPiBAQCAtOTcsMTggKzExMiwyMiBAQCB2 a21zX2F0b21pY19jcnRjX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4g PiAgCj4gPiAgCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kdXBsaWNhdGVfc3RhdGUoY3J0Yywg JnZrbXNfc3RhdGUtPmJhc2UpOwo+ID4gIAo+ID4gKwlJTklUX1dPUksoJnZrbXNfc3RhdGUtPmNy Y193b3JrLCB2a21zX2NyY193b3JrX2hhbmRsZSk7Cj4gPiArCj4gPiAgCXJldHVybiAmdmttc19z dGF0ZS0+YmFzZTsKPiA+ICB9Cj4gPiAgCj4gPiAgc3RhdGljIHZvaWQgdmttc19hdG9taWNfY3J0 Y19kZXN0cm95X3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+ICAJCQkJCSAgIHN0cnVj dCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUpCj4gPiAgewo+ID4gLQlzdHJ1Y3Qgdmttc19jcnRjX3N0 YXRlICp2a21zX3N0YXRlOwo+ID4gLQo+ID4gLQl2a21zX3N0YXRlID0gdG9fdmttc19jcnRjX3N0 YXRlKHN0YXRlKTsKPiA+ICsJc3RydWN0IHZrbXNfY3J0Y19zdGF0ZSAqdmttc19zdGF0ZSA9IHRv X3ZrbXNfY3J0Y19zdGF0ZShzdGF0ZSk7Cj4gPiAgCj4gPiAgCV9fZHJtX2F0b21pY19oZWxwZXJf Y3J0Y19kZXN0cm95X3N0YXRlKHN0YXRlKTsKPiA+IC0Ja2ZyZWUodmttc19zdGF0ZSk7Cj4gPiAr Cj4gPiArCWlmICh2a21zX3N0YXRlKSB7Cj4gPiArCQlmbHVzaF93b3JrKCZ2a21zX3N0YXRlLT5j cmNfd29yayk7Cj4gPiArCQlrZnJlZSh2a21zX3N0YXRlKTsKPiA+ICsJfQo+ID4gIH0KPiA+ICAK PiA+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jcnRjX2Z1bmNzIHZrbXNfY3J0Y19mdW5jcyA9 IHsKPiA+IEBAIC0xMjAsNiArMTM5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19m dW5jcyB2a21zX2NydGNfZnVuY3MgPSB7Cj4gPiAgCS5hdG9taWNfZGVzdHJveV9zdGF0ZSAgID0g dmttc19hdG9taWNfY3J0Y19kZXN0cm95X3N0YXRlLAo+ID4gIAkuZW5hYmxlX3ZibGFuawkJPSB2 a21zX2VuYWJsZV92YmxhbmssCj4gPiAgCS5kaXNhYmxlX3ZibGFuawkJPSB2a21zX2Rpc2FibGVf dmJsYW5rLAo+ID4gKwkuc2V0X2NyY19zb3VyY2UJCT0gdmttc19zZXRfY3JjX3NvdXJjZSwKPiA+ ICB9Owo+ID4gIAo+ID4gIHN0YXRpYyB2b2lkIHZrbXNfY3J0Y19hdG9taWNfZW5hYmxlKHN0cnVj dCBkcm1fY3J0YyAqY3J0YywKPiA+IEBAIC0xMzQsOSArMTU0LDIxIEBAIHN0YXRpYyB2b2lkIHZr bXNfY3J0Y19hdG9taWNfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gPiAgCWRybV9j cnRjX3ZibGFua19vZmYoY3J0Yyk7Cj4gPiAgfQo+ID4gIAo+ID4gK3N0YXRpYyB2b2lkIHZrbXNf Y3J0Y19hdG9taWNfYmVnaW4oc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ID4gKwkJCQkgICBzdHJ1 Y3QgZHJtX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlKQo+ID4gK3sKPiA+ICsJc3RydWN0IHZr bXNfb3V0cHV0ICp2a21zX291dHB1dCA9IGRybV9jcnRjX3RvX3ZrbXNfb3V0cHV0KGNydGMpOwo+ ID4gKwo+ID4gKwkvKiBUaGlzIGxvY2sgaXMgaGVsZCBhY3Jvc3MgdGhlIGF0b21pYyBjb21taXQg dG8gYmxvY2sgdmJsYW1rIHRpbWVyCj4gPiArCSAqIGZyb20gc2NoZWR1bGluZyB2a21zX2NyY193 b3JrX2hhbmRsZSB1bnRpbCB0aGUgY3JjX2RhdGEgaXMgdXBkYXRlZAo+ID4gKwkgKi8KPiA+ICsJ c3Bpbl9sb2NrX2lycSgmdmttc19vdXRwdXQtPmxvY2spOwo+ID4gK30KPiA+ICsKPiA+ICBzdGF0 aWMgdm9pZCB2a21zX2NydGNfYXRvbWljX2ZsdXNoKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+ ICAJCQkJICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSkKPiA+ICB7Cj4g PiArCXN0cnVjdCB2a21zX291dHB1dCAqdmttc19vdXRwdXQgPSBkcm1fY3J0Y190b192a21zX291 dHB1dChjcnRjKTsKPiA+ICAJdW5zaWduZWQgbG9uZyBmbGFnczsKPiA+ICAKPiA+ICAJaWYgKGNy dGMtPnN0YXRlLT5ldmVudCkgewo+ID4gQEAgLTE1MSw5ICsxODMsMTIgQEAgc3RhdGljIHZvaWQg dmttc19jcnRjX2F0b21pY19mbHVzaChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gPiAgCj4gPiAg CQljcnRjLT5zdGF0ZS0+ZXZlbnQgPSBOVUxMOwo+ID4gIAl9Cj4gPiArCj4gPiArCXNwaW5fdW5s b2NrX2lycSgmdmttc19vdXRwdXQtPmxvY2spOwo+ID4gIH0KPiA+ICAKPiA+ICBzdGF0aWMgY29u c3Qgc3RydWN0IGRybV9jcnRjX2hlbHBlcl9mdW5jcyB2a21zX2NydGNfaGVscGVyX2Z1bmNzID0g ewo+ID4gKwkuYXRvbWljX2JlZ2luCT0gdmttc19jcnRjX2F0b21pY19iZWdpbiwKPiA+ICAJLmF0 b21pY19mbHVzaAk9IHZrbXNfY3J0Y19hdG9taWNfZmx1c2gsCj4gPiAgCS5hdG9taWNfZW5hYmxl CT0gdmttc19jcnRjX2F0b21pY19lbmFibGUsCj4gPiAgCS5hdG9taWNfZGlzYWJsZQk9IHZrbXNf Y3J0Y19hdG9taWNfZGlzYWJsZSwKPiA+IEBAIC0xNjIsNiArMTk3LDcgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBkcm1fY3J0Y19oZWxwZXJfZnVuY3Mgdmttc19jcnRjX2hlbHBlcl9mdW5jcyA9IHsK PiA+ICBpbnQgdmttc19jcnRjX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRy bV9jcnRjICpjcnRjLAo+ID4gIAkJICAgc3RydWN0IGRybV9wbGFuZSAqcHJpbWFyeSwgc3RydWN0 IGRybV9wbGFuZSAqY3Vyc29yKQo+ID4gIHsKPiA+ICsJc3RydWN0IHZrbXNfb3V0cHV0ICp2a21z X291dCA9IGRybV9jcnRjX3RvX3ZrbXNfb3V0cHV0KGNydGMpOwo+ID4gIAlpbnQgcmV0Owo+ID4g IAo+ID4gIAlyZXQgPSBkcm1fY3J0Y19pbml0X3dpdGhfcGxhbmVzKGRldiwgY3J0YywgcHJpbWFy eSwgY3Vyc29yLAo+ID4gQEAgLTE3Myw1ICsyMDksOSBAQCBpbnQgdmttc19jcnRjX2luaXQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ID4gIAo+ID4gIAlk cm1fY3J0Y19oZWxwZXJfYWRkKGNydGMsICZ2a21zX2NydGNfaGVscGVyX2Z1bmNzKTsKPiA+ICAK PiA+ICsJc3Bpbl9sb2NrX2luaXQoJnZrbXNfb3V0LT5sb2NrKTsKPiA+ICsKPiA+ICsJdmttc19v dXQtPmNyY193b3JrcSA9IGFsbG9jX29yZGVyZWRfd29ya3F1ZXVlKCJ2a21zX2NyY193b3JrcSIs IDApOwo+ID4gKwo+ID4gIAlyZXR1cm4gcmV0Owo+ID4gIH0KPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19k cnYuYwo+ID4gaW5kZXggZTM0MGFhMTI4YjYxLi41MTlhMzUzY2Q5MDkgMTAwNjQ0Cj4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vdmttcy92a21zX2Rydi5jCj4gPiBAQCAtNzksNiArNzksNyBAQCBzdGF0aWMgdm9pZCB2a21z X3JlbGVhc2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ICAJZHJtX2F0b21pY19oZWxwZXJf c2h1dGRvd24oJnZrbXMtPmRybSk7Cj4gPiAgCWRybV9tb2RlX2NvbmZpZ19jbGVhbnVwKCZ2a21z LT5kcm0pOwo+ID4gIAlkcm1fZGV2X2ZpbmkoJnZrbXMtPmRybSk7Cj4gPiArCWRlc3Ryb3lfd29y a3F1ZXVlKHZrbXMtPm91dHB1dC5jcmNfd29ya3EpOwo+ID4gIH0KPiA+ICAKPiA+ICBzdGF0aWMg c3RydWN0IGRybV9kcml2ZXIgdmttc19kcml2ZXIgPSB7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3ZrbXMvdmttc19kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2 LmgKPiA+IGluZGV4IGExYjIwNjY0M2MxMC4uZGUxZGRmMzEzNDFiIDEwMDY0NAo+ID4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19kcnYuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJt L3ZrbXMvdmttc19kcnYuaAo+ID4gQEAgLTIwLDIwICsyMCwzMSBAQCBzdGF0aWMgY29uc3QgdTMy IHZrbXNfZm9ybWF0c1tdID0gewo+ID4gIAlEUk1fRk9STUFUX1hSR0I4ODg4LAo+ID4gIH07Cj4g PiAgCj4gPiArc3RydWN0IHZrbXNfY3JjX2RhdGEgewo+ID4gKwlzdHJ1Y3QgZHJtX3JlY3Qgc3Jj Owo+ID4gKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyIGZiOwo+ID4gK307Cj4gPiArCj4gPiAgLyoq Cj4gPiAgICogdmttc19wbGFuZV9zdGF0ZSAtIERyaXZlciBzcGVjaWZpYyBwbGFuZSBzdGF0ZQo+ ID4gICAqIEBiYXNlOiBiYXNlIHBsYW5lIHN0YXRlCj4gPiArICogQGNyY19kYXRhOiBkYXRhIHJl cXVpcmVkIGZvciBDUkMgY29tcHV0YXRpb24KPiA+ICAgKi8KPiA+ICBzdHJ1Y3Qgdmttc19wbGFu ZV9zdGF0ZSB7Cj4gPiAgCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgYmFzZTsKPiA+ICsJc3RydWN0 IHZrbXNfY3JjX2RhdGEgKmNyY19kYXRhOwo+ID4gIH07Cj4gPiAgCj4gPiAgLyoqCj4gPiAgICog dmttc19jcnRjX3N0YXRlIC0gRHJpdmVyIHNwZWNpZmljIENSVEMgc3RhdGUKPiA+ICAgKiBAYmFz ZTogYmFzZSBDUlRDIHN0YXRlCj4gPiArICogQGNyY193b3JrOiB3b3JrIHN0cnVjdCB0byBjb21w dXRlIGFuZCBhZGQgQ1JDIGVudHJpZXMKPiA+ICsgKiBAbl9mcmFtZTogZnJhbWUgbnVtYmVyIGZv ciBjb21wdXRlZCBDUkMKPiA+ICAgKi8KPiA+ICBzdHJ1Y3Qgdmttc19jcnRjX3N0YXRlIHsKPiA+ ICAJc3RydWN0IGRybV9jcnRjX3N0YXRlIGJhc2U7Cj4gPiArCXN0cnVjdCB3b3JrX3N0cnVjdCBj cmNfd29yazsKPiA+ICsJdW5zaWduZWQgaW50IG5fZnJhbWU7Cj4gPiAgfTsKPiA+ICAKPiA+ICBz dHJ1Y3Qgdmttc19vdXRwdXQgewo+ID4gQEAgLTQzLDYgKzU0LDExIEBAIHN0cnVjdCB2a21zX291 dHB1dCB7Cj4gPiAgCXN0cnVjdCBocnRpbWVyIHZibGFua19ocnRpbWVyOwo+ID4gIAlrdGltZV90 IHBlcmlvZF9uczsKPiA+ICAJc3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVudCAqZXZlbnQ7 Cj4gPiArCWJvb2wgY3JjX2VuYWJsZWQ7Cj4gPiArCS8qIG9yZGVyZWQgd3EgZm9yIGNyY193b3Jr ICovCj4gPiArCXN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICpjcmNfd29ya3E7Cj4gPiArCS8qIHBy b3RlY3RzIGNvbmN1cnJlbnQgYWNjZXNzIHRvIGNyY19kYXRhICovCj4gPiArCXNwaW5sb2NrX3Qg bG9jazsKPiA+ICB9Owo+ID4gIAo+ID4gIHN0cnVjdCB2a21zX2RldmljZSB7Cj4gPiBAQCAtMTA2 LDQgKzEyMiw5IEBAIGludCB2a21zX2dlbV92bWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2Jq KTsKPiA+ICAKPiA+ICB2b2lkIHZrbXNfZ2VtX3Z1bm1hcChzdHJ1Y3QgZHJtX2dlbV9vYmplY3Qg Km9iaik7Cj4gPiAgCj4gPiArLyogQ1JDIFN1cHBvcnQgKi8KPiA+ICtpbnQgdmttc19zZXRfY3Jj X3NvdXJjZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGNvbnN0IGNoYXIgKnNyY19uYW1lLAo+ID4g KwkJCXNpemVfdCAqdmFsdWVzX2NudCk7Cj4gPiArdm9pZCB2a21zX2NyY193b3JrX2hhbmRsZShz dHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspOwo+ID4gKwo+ID4gICNlbmRpZiAvKiBfVktNU19EUlZf SF8gKi8KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX3BsYW5lLmMg Yi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX3BsYW5lLmMKPiA+IGluZGV4IDcwZmNhMjJiYzUx Yi4uYzkxNjYxNjMxYzc2IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmtt c19wbGFuZS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX3BsYW5lLmMKPiA+ IEBAIC0xNiwxMSArMTYsMTggQEAgc3RhdGljIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKgo+ID4g IHZrbXNfcGxhbmVfZHVwbGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQo+ID4g IHsKPiA+ICAJc3RydWN0IHZrbXNfcGxhbmVfc3RhdGUgKnZrbXNfc3RhdGU7Cj4gPiArCXN0cnVj dCB2a21zX2NyY19kYXRhICpjcmNfZGF0YTsKPiA+ICAKPiA+ICAJdmttc19zdGF0ZSA9IGt6YWxs b2Moc2l6ZW9mKCp2a21zX3N0YXRlKSwgR0ZQX0tFUk5FTCk7Cj4gPiAgCWlmICghdmttc19zdGF0 ZSkKPiA+ICAJCXJldHVybiBOVUxMOwo+ID4gIAo+ID4gKwljcmNfZGF0YSA9IGt6YWxsb2Moc2l6 ZW9mKCpjcmNfZGF0YSksIEdGUF9LRVJORUwpOwo+ID4gKwlpZiAoV0FSTl9PTighY3JjX2RhdGEp KQo+ID4gKwkJRFJNX0lORk8oIkNvdWxkbid0IGFsbG9jYXRlIGNyY19kYXRhIik7Cj4gPiArCj4g PiArCXZrbXNfc3RhdGUtPmNyY19kYXRhID0gY3JjX2RhdGE7Cj4gPiArCj4gPiAgCV9fZHJtX2F0 b21pY19oZWxwZXJfcGxhbmVfZHVwbGljYXRlX3N0YXRlKHBsYW5lLAo+ID4gIAkJCQkJCSAgJnZr bXNfc3RhdGUtPmJhc2UpOwo+ID4gIAo+ID4gQEAgLTMxLDYgKzM4LDE4IEBAIHN0YXRpYyB2b2lk IHZrbXNfcGxhbmVfZGVzdHJveV9zdGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiA+ICAJ CQkJICAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfc3RhdGUpCj4gPiAgewo+ID4gIAlz dHJ1Y3Qgdmttc19wbGFuZV9zdGF0ZSAqdmttc19zdGF0ZSA9IHRvX3ZrbXNfcGxhbmVfc3RhdGUo b2xkX3N0YXRlKTsKPiA+ICsJc3RydWN0IGRybV9jcnRjICpjcnRjID0gdmttc19zdGF0ZS0+YmFz ZS5jcnRjOwo+ID4gKwo+ID4gKwlpZiAoY3J0Yykgewo+ID4gKwkJLyogZHJvcHBpbmcgdGhlIHJl ZmVyZW5jZSB3ZSBhY3F1aXJlZCBpbgo+ID4gKwkJICogdmttc19wcmltYXJ5X3BsYW5lX3VwZGF0 ZSgpCj4gPiArCQkgKi8KPiA+ICsJCWlmIChkcm1fZnJhbWVidWZmZXJfcmVhZF9yZWZjb3VudCgm dmttc19zdGF0ZS0+Y3JjX2RhdGEtPmZiKSkKPiA+ICsJCQlkcm1fZnJhbWVidWZmZXJfcHV0KCZ2 a21zX3N0YXRlLT5jcmNfZGF0YS0+ZmIpOwo+ID4gKwl9Cj4gPiArCj4gPiArCWtmcmVlKHZrbXNf c3RhdGUtPmNyY19kYXRhKTsKPiA+ICsJdmttc19zdGF0ZS0+Y3JjX2RhdGEgPSBOVUxMOwo+ID4g IAo+ID4gIAlfX2RybV9hdG9taWNfaGVscGVyX3BsYW5lX2Rlc3Ryb3lfc3RhdGUob2xkX3N0YXRl KTsKPiA+ICAJa2ZyZWUodmttc19zdGF0ZSk7Cj4gPiBAQCAtNjUsNiArODQsMTcgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfZnVuY3Mgdmttc19wbGFuZV9mdW5jcyA9IHsKPiA+ICBz dGF0aWMgdm9pZCB2a21zX3ByaW1hcnlfcGxhbmVfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBs YW5lLAo+ID4gIAkJCQkgICAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfc3RhdGUpCj4g PiAgewo+ID4gKwlzdHJ1Y3Qgdmttc19wbGFuZV9zdGF0ZSAqdmttc19wbGFuZV9zdGF0ZTsKPiA+ ICsJc3RydWN0IHZrbXNfY3JjX2RhdGEgKmNyY19kYXRhOwo+ID4gKwo+ID4gKwlpZiAoIXBsYW5l LT5zdGF0ZS0+Y3J0YyB8fCAhcGxhbmUtPnN0YXRlLT5mYikKPiA+ICsJCXJldHVybjsKPiA+ICsK PiA+ICsJdmttc19wbGFuZV9zdGF0ZSA9IHRvX3ZrbXNfcGxhbmVfc3RhdGUocGxhbmUtPnN0YXRl KTsKPiA+ICsJY3JjX2RhdGEgPSB2a21zX3BsYW5lX3N0YXRlLT5jcmNfZGF0YTsKPiA+ICsJbWVt Y3B5KCZjcmNfZGF0YS0+c3JjLCAmcGxhbmUtPnN0YXRlLT5zcmMsIHNpemVvZihzdHJ1Y3QgZHJt X3JlY3QpKTsKPiA+ICsJbWVtY3B5KCZjcmNfZGF0YS0+ZmIsIHBsYW5lLT5zdGF0ZS0+ZmIsIHNp emVvZihzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyKSk7Cj4gPiArCWRybV9mcmFtZWJ1ZmZlcl9nZXQo JmNyY19kYXRhLT5mYik7Cj4gPiAgfQo+ID4gIAo+ID4gIHN0YXRpYyBpbnQgdmttc19wbGFuZV9h dG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gPiAtLSAKPiA+IDIuMTcuMQo+ ID4gCgotLSAKU2VhbiBQYXVsLCBTb2Z0d2FyZSBFbmdpbmVlciwgR29vZ2xlIC8gQ2hyb21pdW0g T1MKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRl dmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==