From mboxrd@z Thu Jan 1 00:00:00 1970 From: Haneen Mohammed Subject: Re: [PATCH v2 5/5] drm/vkms: Implement CRC debugfs API Date: Tue, 17 Jul 2018 02:52:20 +0300 Message-ID: <20180716235220.GA12258@haneenDRM> References: <20180716182256.GY20303@art_vandelay> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x230.google.com (mail-wm0-x230.google.com [IPv6:2a00:1450:400c:c09::230]) by gabe.freedesktop.org (Postfix) with ESMTPS id BD6366E5C3 for ; Mon, 16 Jul 2018 23:52:29 +0000 (UTC) Received: by mail-wm0-x230.google.com with SMTP id h20-v6so17379424wmb.4 for ; Mon, 16 Jul 2018 16:52:29 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20180716182256.GY20303@art_vandelay> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Sean Paul Cc: rodrigosiqueiramelo@gmail.com, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBKdWwgMTYsIDIwMTggYXQgMDI6MjI6NTZQTSAtMDQwMCwgU2VhbiBQYXVsIHdyb3Rl Ogo+IE9uIFNhdCwgSnVsIDE0LCAyMDE4IGF0IDAzOjIzOjMyUE0gKzAzMDAsIEhhbmVlbiBNb2hh bW1lZCB3cm90ZToKPiA+IEltcGxlbWVudCB0aGUgc2V0X2NyY19zb3VyY2UoKSBjYWxsYmFjay4K PiA+IENvbXB1dGUgQ1JDIHVzaW5nIGNyYzMyIG9uIHRoZSB2aXNpYmxlIHBhcnQgb2YgdGhlIGZy YW1lYnVmZmVyLgo+ID4gVXNlIG9yZGVyZWQgd29ya3F1ZXVlIHRvIGNvbXB1dGUgYW5kIGFkZCBD UkMgYXQgdGhlIGVuZCBvZiBhIHZibGFuay4KPiA+IAo+ID4gVXNlIGFwcHJvcHJpYXRlIHN5bmNo cm9uaXphdGlvbiBtZXRob2RzIHNpbmNlIHRoZSBjcmMgY29tcHV0YXRpb24gbXVzdAo+ID4gYmUg YXRvbWljIHdydCB0aGUgZ2VuZXJhdGVkIHZibGFuayBldmVudCBmb3IgYSBnaXZlbiBhdG9taWMg dXBkYXRlLAo+ID4gCj4gPiBTaWduZWQtb2ZmLWJ5OiBIYW5lZW4gTW9oYW1tZWQgPGhhbW9oYW1t ZWQuc2FAZ21haWwuY29tPgo+IAo+IEhleSBIYW5lZW4sCj4gVGhhbmtzIGZvciByZXZpc2luZyB0 aGlzIHBhdGNoIHNldC4gVGhpbmdzIGFyZSBsb29raW5nIGdvb2QgYWNyb3NzIHRoZSBzZXJpZXMs Cj4ganVzdCBhIGZldyBtb3JlIGNvbW1lbnRzIDotKQo+IAoKVGhhbmsgeW91IHNvIG11Y2ggZm9y IHRoZSByZXZpZXchIAoKPiA+IC0tLQo+ID4gQ2hhbmdlcyBpbiB2MjoKPiA+IC0gSW5jbHVkZSB0 aGlzIHBhdGNoIGluIHRoaXMgcGF0Y2hzZXQuCj4gPiAKPiA+ICBkcml2ZXJzL2dwdS9kcm0vdmtt cy9NYWtlZmlsZSAgICAgfCAgMiArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfY3J0 Yy5jICB8IDYwICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KPiA+ICBkcml2ZXJzL2dw dS9kcm0vdmttcy92a21zX2Rydi5jICAgfCAgMSArCj4gPiAgZHJpdmVycy9ncHUvZHJtL3ZrbXMv dmttc19kcnYuaCAgIHwgMjEgKysrKysrKysrKysKPiA+ICBkcml2ZXJzL2dwdS9kcm0vdmttcy92 a21zX3BsYW5lLmMgfCAxMCArKysrKysKPiA+ICA1IGZpbGVzIGNoYW5nZWQsIDg1IGluc2VydGlv bnMoKyksIDkgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vdmttcy9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS92a21zL01ha2VmaWxlCj4gPiBpbmRl eCA5ODYyOTdkYTUxYmYuLjM3OTY2OTE0ZjcwYiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS92a21zL01ha2VmaWxlCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy9NYWtlZmls ZQo+ID4gQEAgLTEsMyArMSwzIEBACj4gPiAtdmttcy15IDo9IHZrbXNfZHJ2Lm8gdmttc19wbGFu ZS5vIHZrbXNfb3V0cHV0Lm8gdmttc19jcnRjLm8gdmttc19nZW0ubwo+ID4gK3ZrbXMteSA6PSB2 a21zX2Rydi5vIHZrbXNfcGxhbmUubyB2a21zX291dHB1dC5vIHZrbXNfY3J0Yy5vIHZrbXNfZ2Vt Lm8gdmttc19jcmMubwo+ID4gIAo+ID4gIG9iai0kKENPTkZJR19EUk1fVktNUykgKz0gdmttcy5v Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19jcnRjLmMgYi9kcml2 ZXJzL2dwdS9kcm0vdmttcy92a21zX2NydGMuYwo+ID4gaW5kZXggMjZiYWJiODVjYTc3Li5mM2E2 NzRkYjMzYjggMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NydGMu Ywo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19jcnRjLmMKPiA+IEBAIC0xMCwx OCArMTAsMzYgQEAKPiA+ICAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+Cj4gPiAg I2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KPiA+ICAKPiA+IC1zdGF0aWMgZW51bSBo cnRpbWVyX3Jlc3RhcnQgdmttc192Ymxhbmtfc2ltdWxhdGUoc3RydWN0IGhydGltZXIgKnRpbWVy KQo+ID4gK3N0YXRpYyB2b2lkIF92YmxhbmtfaGFuZGxlKHN0cnVjdCB2a21zX291dHB1dCAqb3V0 cHV0KQo+ID4gIHsKPiA+IC0Jc3RydWN0IHZrbXNfb3V0cHV0ICpvdXRwdXQgPSBjb250YWluZXJf b2YodGltZXIsIHN0cnVjdCB2a21zX291dHB1dCwKPiA+IC0JCQkJCQkgIHZibGFua19ocnRpbWVy KTsKPiA+ICAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gJm91dHB1dC0+Y3J0YzsKPiA+IC0JaW50 IHJldF9vdmVycnVuOwo+ID4gKwlzdHJ1Y3Qgdmttc19jcnRjX3N0YXRlICpzdGF0ZSA9IHRvX3Zr bXNfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7Cj4gPiAgCWJvb2wgcmV0Owo+ID4gIAo+ID4gKwlp bnQgY3JjX2VuYWJsZWQgPSAwOwo+ID4gKwo+ID4gKwlzcGluX2xvY2soJm91dHB1dC0+bG9jayk7 Cj4gPiArCWNyY19lbmFibGVkID0gb3V0cHV0LT5jcmNfZW5hYmxlZDsKPiAKPiBBc2lkZSBmcm9t IHRoZSBpbXBsaWNpdCBib29sIC0+IGludCBjYXN0LCBJIGRvbid0IHRoaW5rIHlvdSBuZWVkIHRo aXMgbG9jYWwgdmFyLAo+IGp1c3QgdXNlIG91dHB1dC0+Y3JjX2VuYWJsZWQgZGlyZWN0bHkgYmVs b3cuCj4gCj4gPiAgCXJldCA9IGRybV9jcnRjX2hhbmRsZV92YmxhbmsoY3J0Yyk7Cj4gPiAgCWlm ICghcmV0KQo+ID4gIAkJRFJNX0VSUk9SKCJ2a21zIGZhaWx1cmUgb24gaGFuZGxpbmcgdmJsYW5r Iik7Cj4gCj4gVGhpcyB3b3VsZCBiZSBtb3JlIHVzZWZ1bCB3aXRoIHRoZSBlcnJvciBjb2RlIHBy aW50ZWQuCj4gCgpJIHRoaW5rIHRoaXMgb25seSByZXR1cm5zIGZhbHNlIG9uIGZhaWx1cmUuIEFs c28gSSd2ZSBub3RpY2VkIG1vc3Qgb2YgdGhlIHVzYWdlIG9mCmRybV9jcnRjX2hhbmRsZV92Ymxh bmsgZG9uJ3QgY2hlY2sgdGhlIHJldHVybiB2YWx1ZSwgc2hvdWxkIEkgZG8gdGhlCnNhbWUgYXMg d2VsbCBhbmQgZHJvcCByZXQgYW5kIGVycm9yIG1lc3NhZ2U/Cgo+ID4gIAo+ID4gKwlpZiAoc3Rh dGUgJiYgY3JjX2VuYWJsZWQpIHsKPiA+ICsJCXN0YXRlLT5uX2ZyYW1lID0gZHJtX2NydGNfYWNj dXJhdGVfdmJsYW5rX2NvdW50KGNydGMpOwo+ID4gKwkJcXVldWVfd29yayhvdXRwdXQtPmNyY193 b3JrcSwgJnN0YXRlLT5jcmNfd29yayk7Cj4gPiArCX0KPiA+ICsKPiA+ICsJc3Bpbl91bmxvY2so Jm91dHB1dC0+bG9jayk7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyBlbnVtIGhydGltZXJfcmVz dGFydCB2a21zX3ZibGFua19zaW11bGF0ZShzdHJ1Y3QgaHJ0aW1lciAqdGltZXIpCj4gPiArewo+ ID4gKwlzdHJ1Y3Qgdmttc19vdXRwdXQgKm91dHB1dCA9IGNvbnRhaW5lcl9vZih0aW1lciwgc3Ry dWN0IHZrbXNfb3V0cHV0LAo+ID4gKwkJCQkJCSAgdmJsYW5rX2hydGltZXIpOwo+ID4gKwlpbnQg cmV0X292ZXJydW47Cj4gPiArCj4gPiArCV92YmxhbmtfaGFuZGxlKG91dHB1dCk7Cj4gPiArCj4g PiAgCXJldF9vdmVycnVuID0gaHJ0aW1lcl9mb3J3YXJkX25vdygmb3V0cHV0LT52YmxhbmtfaHJ0 aW1lciwKPiA+ICAJCQkJCSAgb3V0cHV0LT5wZXJpb2RfbnMpOwo+ID4gIAo+ID4gQEAgLTk3LDYg KzExNSw4IEBAIHZrbXNfYXRvbWljX2NydGNfZHVwbGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YykKPiA+ICAKPiA+ICAJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2R1cGxpY2F0ZV9z dGF0ZShjcnRjLCAmdmttc19zdGF0ZS0+YmFzZSk7Cj4gPiAgCj4gPiArCUlOSVRfV09SSygmdmtt c19zdGF0ZS0+Y3JjX3dvcmssIHZrbXNfY3JjX3dvcmtfaGFuZGxlKTsKPiA+ICsKPiA+ICAJcmV0 dXJuICZ2a21zX3N0YXRlLT5iYXNlOwo+ID4gIH0KPiA+ICAKPiA+IEBAIC0xMDQsMTEgKzEyNCwx OCBAQCBzdGF0aWMgdm9pZCB2a21zX2F0b21pY19jcnRjX2Rlc3Ryb3lfc3RhdGUoc3RydWN0IGRy bV9jcnRjICpjcnRjLAo+ID4gIAkJCQkJICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSkK PiA+ICB7Cj4gPiAgCXN0cnVjdCB2a21zX2NydGNfc3RhdGUgKnZrbXNfc3RhdGU7Cj4gPiArCXN0 cnVjdCB2a21zX291dHB1dCAqdmttc19vdXQgPSBkcm1fY3J0Y190b192a21zX291dHB1dChjcnRj KTsKPiA+ICAKPiA+ICAJdmttc19zdGF0ZSA9IHRvX3ZrbXNfY3J0Y19zdGF0ZShzdGF0ZSk7Cj4g PiAgCj4gPiAgCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kZXN0cm95X3N0YXRlKHN0YXRlKTsK PiA+IC0Ja2ZyZWUodmttc19zdGF0ZSk7Cj4gPiArCj4gPiArCWlmICh2a21zX3N0YXRlKSB7Cj4g PiArCQlmbHVzaF93b3JrcXVldWUodmttc19vdXQtPmNyY193b3JrcSk7Cj4gCj4gSSdtIGEgbGl0 dGxlIHdvcnJpZWQgYWJvdXQgdGhpcyBiaXQuIFNpbmNlIHRoZSB3b3JrcXVldWUgaXMgcGVyLW91 dHB1dCwgaXMgaXQKPiBwb3NzaWJsZSB5b3UnbGwgYmUgd2FpdGluZyBmb3IgbW9yZSBmcmFtZXMg dG8gY29tcGxldGUgdGhhbiB5b3UgbmVlZCB0byBiZT8KPiAKCkkgc2VlLCBtYXliZSBJIHNob3Vs ZCBmbHVzaCBwZXIgd29ya19zdHJ1Y3QgaW5zdGVhZD8KCj4gPiArCQlkcm1fZnJhbWVidWZmZXJf cHV0KCZ2a21zX3N0YXRlLT5kYXRhLmZiKTsKPiA+ICsJCW1lbXNldCgmdmttc19zdGF0ZS0+ZGF0 YSwgMCwgc2l6ZW9mKHN0cnVjdCB2a21zX2NyY19kYXRhKSk7Cj4gPiArCQlrZnJlZSh2a21zX3N0 YXRlKTsKPiA+ICsJfQo+ID4gIH0KPiA+ICAKPiA+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9j cnRjX2Z1bmNzIHZrbXNfY3J0Y19mdW5jcyA9IHsKPiA+IEBAIC0xMjAsNiArMTQ3LDcgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19mdW5jcyB2a21zX2NydGNfZnVuY3MgPSB7Cj4gPiAg CS5hdG9taWNfZGVzdHJveV9zdGF0ZSAgID0gdmttc19hdG9taWNfY3J0Y19kZXN0cm95X3N0YXRl LAo+ID4gIAkuZW5hYmxlX3ZibGFuawkJPSB2a21zX2VuYWJsZV92YmxhbmssCj4gPiAgCS5kaXNh YmxlX3ZibGFuawkJPSB2a21zX2Rpc2FibGVfdmJsYW5rLAo+ID4gKwkuc2V0X2NyY19zb3VyY2UJ CT0gdmttc19zZXRfY3JjX3NvdXJjZSwKPiA+ICB9Owo+ID4gIAo+ID4gIHN0YXRpYyB2b2lkIHZr bXNfY3J0Y19hdG9taWNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+IEBAIC0xMzQs MjYgKzE2MiwzNyBAQCBzdGF0aWMgdm9pZCB2a21zX2NydGNfYXRvbWljX2Rpc2FibGUoc3RydWN0 IGRybV9jcnRjICpjcnRjLAo+ID4gIAlkcm1fY3J0Y192Ymxhbmtfb2ZmKGNydGMpOwo+ID4gIH0K PiA+ICAKPiA+ICtzdGF0aWMgdm9pZCB2a21zX2NydGNfYXRvbWljX2JlZ2luKHN0cnVjdCBkcm1f Y3J0YyAqY3J0YywKPiA+ICsJCQkJICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpvbGRfY3J0Y19z dGF0ZSkKPiA+ICt7Cj4gPiArCXN0cnVjdCB2a21zX291dHB1dCAqdmttc19vdXRwdXQgPSBkcm1f Y3J0Y190b192a21zX291dHB1dChjcnRjKTsKPiA+ICsKPiA+ICsJc3Bpbl9sb2NrX2lycSgmdmtt c19vdXRwdXQtPmxvY2spOwo+IAo+IEhtbSwgeW91IGNhbid0IGxvY2sgYWNyb3NzIGF0b21pY19i ZWdpbi9mbHVzaC4gV2hhdCBpcyB0aGlzIHByb3RlY3RpbmcgYWdhaW5zdD8KPiAKCkkgZGlkIHRo aXMgcGVyIERhbmllbCByZWNvbW1lbmRhdGlvbjoKMS0gc3Bpbl9sb2NrX2lycSAtPiB2a21zX2Ny dGNfYXRvbWljX2JlZ2luCjItIHVwZGF0ZSB2a21zX2NyY19kYXRhIGFuZCBnZXQgcmVmIHRvIGZi IC0+IHZrbXNfcHJpbWFyeV9wbGFuZV91cGRhdGUKMy0gc3Bpbl91bmxvY2tfaXJxIGFmdGVyIHZi bGFuayBldmVudCAtPiB2a21zX2NydGNfYXRvbWljX2ZsdXNoCgo+ID4gK30KPiA+ICsKPiA+ICBz dGF0aWMgdm9pZCB2a21zX2NydGNfYXRvbWljX2ZsdXNoKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywK PiA+ICAJCQkJICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSkKPiA+ICB7 Cj4gPiAtCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4gPiArCXN0cnVjdCB2a21zX291dHB1dCAqdmtt c19vdXRwdXQgPSBkcm1fY3J0Y190b192a21zX291dHB1dChjcnRjKTsKPiA+ICAKPiA+ICAJaWYg KGNydGMtPnN0YXRlLT5ldmVudCkgewo+ID4gLQkJc3Bpbl9sb2NrX2lycXNhdmUoJmNydGMtPmRl di0+ZXZlbnRfbG9jaywgZmxhZ3MpOwo+ID4gKwkJc3Bpbl9sb2NrKCZjcnRjLT5kZXYtPmV2ZW50 X2xvY2spOwo+IAo+IFdoYXQncyB0aGUgcmF0aW9uYWxlIGJlaGluZCB0aGlzIGNoYW5nZT8KPiAK CmhtIEkgYW0gbm90IHN1cmUgaWYgdGhpcyBpcyBjb3JyZWN0LCBidXQgSSBhc3N1bWUgYmVjYXVz ZSBzcGluX2xvY2tfaXJxIGluIGF0b21pY19iZWdpbgp3b3VsZCBkaXNhYmxlIGludGVycnVwdHMg YW5kIHNpbmNlIHRoaXMgaXMgYmVmb3JlIHdlIHVubG9jayB2a21zX291dHB1dC0+bG9jayB3aXRo IApzcGluX3VubG9ja19pcnEgc28gaXJxc2F2ZSBoZXJlIGlzIG5vdCBuZWNlc3Nhcnk/Cgo+ID4g IAo+ID4gIAkJaWYgKGRybV9jcnRjX3ZibGFua19nZXQoY3J0YykgIT0gMCkKPiA+ICAJCQlkcm1f Y3J0Y19zZW5kX3ZibGFua19ldmVudChjcnRjLCBjcnRjLT5zdGF0ZS0+ZXZlbnQpOwo+ID4gIAkJ ZWxzZQo+ID4gIAkJCWRybV9jcnRjX2FybV92YmxhbmtfZXZlbnQoY3J0YywgY3J0Yy0+c3RhdGUt PmV2ZW50KTsKPiA+ICAKPiA+IC0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNydGMtPmRldi0+ ZXZlbnRfbG9jaywgZmxhZ3MpOwo+ID4gKwkJc3Bpbl91bmxvY2soJmNydGMtPmRldi0+ZXZlbnRf bG9jayk7Cj4gPiAgCj4gPiAgCQljcnRjLT5zdGF0ZS0+ZXZlbnQgPSBOVUxMOwo+ID4gIAl9Cj4g PiArCj4gPiArCXNwaW5fdW5sb2NrX2lycSgmdmttc19vdXRwdXQtPmxvY2spOwo+ID4gIH0KPiA+ ICAKPiA+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jcnRjX2hlbHBlcl9mdW5jcyB2a21zX2Ny dGNfaGVscGVyX2Z1bmNzID0gewo+ID4gKwkuYXRvbWljX2JlZ2luCT0gdmttc19jcnRjX2F0b21p Y19iZWdpbiwKPiA+ICAJLmF0b21pY19mbHVzaAk9IHZrbXNfY3J0Y19hdG9taWNfZmx1c2gsCj4g PiAgCS5hdG9taWNfZW5hYmxlCT0gdmttc19jcnRjX2F0b21pY19lbmFibGUsCj4gPiAgCS5hdG9t aWNfZGlzYWJsZQk9IHZrbXNfY3J0Y19hdG9taWNfZGlzYWJsZSwKPiA+IEBAIC0xNjIsNiArMjAx LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19oZWxwZXJfZnVuY3Mgdmttc19jcnRj X2hlbHBlcl9mdW5jcyA9IHsKPiA+ICBpbnQgdmttc19jcnRjX2luaXQoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ID4gIAkJICAgc3RydWN0IGRybV9wbGFu ZSAqcHJpbWFyeSwgc3RydWN0IGRybV9wbGFuZSAqY3Vyc29yKQo+ID4gIHsKPiA+ICsJc3RydWN0 IHZrbXNfb3V0cHV0ICp2a21zX291dCA9IGRybV9jcnRjX3RvX3ZrbXNfb3V0cHV0KGNydGMpOwo+ ID4gIAlpbnQgcmV0Owo+ID4gIAo+ID4gIAlyZXQgPSBkcm1fY3J0Y19pbml0X3dpdGhfcGxhbmVz KGRldiwgY3J0YywgcHJpbWFyeSwgY3Vyc29yLAo+ID4gQEAgLTE3Myw1ICsyMTMsOSBAQCBpbnQg dmttc19jcnRjX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9jcnRjICpj cnRjLAo+ID4gIAo+ID4gIAlkcm1fY3J0Y19oZWxwZXJfYWRkKGNydGMsICZ2a21zX2NydGNfaGVs cGVyX2Z1bmNzKTsKPiA+ICAKPiA+ICsJc3Bpbl9sb2NrX2luaXQoJnZrbXNfb3V0LT5sb2NrKTsK PiA+ICsKPiA+ICsJdmttc19vdXQtPmNyY193b3JrcSA9IGFsbG9jX29yZGVyZWRfd29ya3F1ZXVl KCJ2a21zX2NyY193b3JrcSIsIDApOwo+ID4gKwo+ID4gIAlyZXR1cm4gcmV0Owo+ID4gIH0KPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5jIGIvZHJpdmVycy9n cHUvZHJtL3ZrbXMvdmttc19kcnYuYwo+ID4gaW5kZXggMzdhYTJlZjMzYjIxLi41ZDc4YmQ5N2U2 OWMgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5jCj4gPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5jCj4gPiBAQCAtNDYsNiArNDYsNyBA QCBzdGF0aWMgdm9pZCB2a21zX3JlbGVhc2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ICAJ cGxhdGZvcm1fZGV2aWNlX3VucmVnaXN0ZXIodmttcy0+cGxhdGZvcm0pOwo+ID4gIAlkcm1fbW9k ZV9jb25maWdfY2xlYW51cCgmdmttcy0+ZHJtKTsKPiA+ICAJZHJtX2Rldl9maW5pKCZ2a21zLT5k cm0pOwo+ID4gKwlkZXN0cm95X3dvcmtxdWV1ZSh2a21zLT5vdXRwdXQuY3JjX3dvcmtxKTsKPiA+ ICB9Cj4gPiAgCj4gPiAgc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIHZrbXNfZHJpdmVyID0gewo+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmggYi9kcml2ZXJz L2dwdS9kcm0vdmttcy92a21zX2Rydi5oCj4gPiBpbmRleCBiZjgxMWQwZWMzNDkuLjk1OTg1NjQ5 NzY4YyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmgKPiA+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmgKPiA+IEBAIC0yMCwxMiArMjAs MjMgQEAgc3RhdGljIGNvbnN0IHUzMiB2a21zX2Zvcm1hdHNbXSA9IHsKPiA+ICAJRFJNX0ZPUk1B VF9YUkdCODg4OCwKPiA+ICB9Owo+ID4gIAo+ID4gK3N0cnVjdCB2a21zX2NyY19kYXRhIHsKPiA+ ICsJc3RydWN0IGRybV9yZWN0IHNyYzsKPiA+ICsJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciBmYjsK PiA+ICt9Owo+ID4gKwo+ID4gIC8qKgo+ID4gICAqIHZrbXNfY3J0Y19zdGF0ZSAtIERyaXZlciBz cGVjaWZpYyBDUlRDIHN0YXRlCj4gPiAgICogQGJhc2U6IGJhc2UgQ1JUQyBzdGF0ZQo+ID4gKyAq IEBjcmNfd29yazogd29yayBzdHJ1Y3QgdG8gY29tcHV0ZSBhbmQgYWRkIENSQyBlbnRyaWVzCj4g PiArICogQGRhdGE6IGRhdGEgcmVxdWlyZWQgZm9yIENSQyBjb21wdXRhdGlvbgo+ID4gKyAqIEBu X2ZyYW1lOiBmcmFtZSBudW1iZXIgZm9yIGNvbXB1dGVkIENSQwo+ID4gICAqLwo+ID4gIHN0cnVj dCB2a21zX2NydGNfc3RhdGUgewo+ID4gIAlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgYmFzZTsKPiA+ ICsJc3RydWN0IHdvcmtfc3RydWN0IGNyY193b3JrOwo+ID4gKwlzdHJ1Y3Qgdmttc19jcmNfZGF0 YSBkYXRhOwo+ID4gKwl1bnNpZ25lZCBpbnQgbl9mcmFtZTsKPiA+ICB9Owo+ID4gIAo+ID4gIHN0 cnVjdCB2a21zX291dHB1dCB7Cj4gPiBAQCAtMzUsNiArNDYsMTEgQEAgc3RydWN0IHZrbXNfb3V0 cHV0IHsKPiA+ICAJc3RydWN0IGhydGltZXIgdmJsYW5rX2hydGltZXI7Cj4gPiAgCWt0aW1lX3Qg cGVyaW9kX25zOwo+ID4gIAlzdHJ1Y3QgZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50ICpldmVudDsK PiA+ICsJYm9vbCBjcmNfZW5hYmxlZDsKPiAKPiBXaGVyZSBpcyB0aGlzIHNldCB0byB0cnVlPwo+ IAoKT2ggc29ycnkgSSBmb3Jnb3QgdG8gYWRkIGEgdmttc19jcmMuYyB3aGljaCBzZXRzIGNyY19l bmFibGVkIGluCnNldF9jcmNfc291cmNlIGNhbGxiYWNrISAKCkknbGwgd29yayBvbiBmaXhpbmcg dGhlIGlzc3VlcyB5b3UgbWVudGlvbmVkIGhlcmUgYW5kIHRoZSBvdGhlciBwYXRjaGVzCmFzIHdl bGwsIHRoYW5rIHlvdSBzbyBtdWNoIGFnYWluIQpIYW5lZW4KCj4gPiArCS8qIG9yZGVyZWQgd3Eg Zm9yIGNyY193b3JrICovCj4gPiArCXN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICpjcmNfd29ya3E7 Cj4gPiArCS8qIHByb3RlY3RzIGNvbmN1cnJlbnQgYWNjZXNzIHRvIGNyY19kYXRhICovCj4gPiAr CXNwaW5sb2NrX3QgbG9jazsKPiA+ICB9Owo+ID4gIAo+ID4gIHN0cnVjdCB2a21zX2RldmljZSB7 Cj4gPiBAQCAtOTUsNCArMTExLDkgQEAgdm9pZCAqdmttc19nZW1fdm1hcChzdHJ1Y3QgZHJtX2dl bV9vYmplY3QgKm9iaik7Cj4gPiAgCj4gPiAgdm9pZCB2a21zX2dlbV92dW5tYXAoc3RydWN0IGRy bV9nZW1fb2JqZWN0ICpvYmopOwo+ID4gIAo+ID4gKy8qIENSQyBTdXBwb3J0ICovCj4gPiAraW50 IHZrbXNfc2V0X2NyY19zb3VyY2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLCBjb25zdCBjaGFyICpz cmNfbmFtZSwKPiA+ICsJCQlzaXplX3QgKnZhbHVlc19jbnQpOwo+ID4gK3ZvaWQgdmttc19jcmNf d29ya19oYW5kbGUoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKTsKPiA+ICsKPiA+ICAjZW5kaWYg LyogX1ZLTVNfRFJWX0hfICovCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMv dmttc19wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19wbGFuZS5jCj4gPiBpbmRl eCBhYWY3YzM1ZmFlZDYuLjFlMGVlOGNhOGJkNiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS92a21zL3ZrbXNfcGxhbmUuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmtt c19wbGFuZS5jCj4gPiBAQCAtMjQsNiArMjQsMTYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1f cGxhbmVfZnVuY3Mgdmttc19wbGFuZV9mdW5jcyA9IHsKPiA+ICBzdGF0aWMgdm9pZCB2a21zX3By aW1hcnlfcGxhbmVfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4gIAkJCQkgICAg ICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfc3RhdGUpCj4gPiAgewo+ID4gKwlzdHJ1Y3Qg dmttc19jcnRjX3N0YXRlICpzdGF0ZTsKPiA+ICsKPiA+ICsJaWYgKCFwbGFuZS0+c3RhdGUtPmNy dGMgfHwgIXBsYW5lLT5zdGF0ZS0+ZmIpCj4gPiArCQlyZXR1cm47Cj4gPiArCj4gPiArCXN0YXRl ID0gdG9fdmttc19jcnRjX3N0YXRlKHBsYW5lLT5zdGF0ZS0+Y3J0Yy0+c3RhdGUpOwo+ID4gKwlt ZW1jcHkoJnN0YXRlLT5kYXRhLnNyYywgJnBsYW5lLT5zdGF0ZS0+c3JjLCBzaXplb2Yoc3RydWN0 IGRybV9yZWN0KSk7Cj4gPiArCW1lbWNweSgmc3RhdGUtPmRhdGEuZmIsIHBsYW5lLT5zdGF0ZS0+ ZmIsCj4gPiArCSAgICAgICBzaXplb2Yoc3RydWN0IGRybV9mcmFtZWJ1ZmZlcikpOwo+ID4gKwlk cm1fZnJhbWVidWZmZXJfZ2V0KCZzdGF0ZS0+ZGF0YS5mYik7Cj4gPiAgfQo+ID4gIAo+ID4gIHN0 YXRpYyBpbnQgdmttc19wbGFuZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUs Cj4gPiAtLSAKPiA+IDIuMTcuMQo+ID4gCj4gCj4gLS0gCj4gU2VhbiBQYXVsLCBTb2Z0d2FyZSBF bmdpbmVlciwgR29vZ2xlIC8gQ2hyb21pdW0gT1MKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vZHJpLWRldmVsCg==