From mboxrd@z Thu Jan 1 00:00:00 1970 From: Haneen Mohammed Subject: Re: [RFC 3/3] drm/vkms: Implement CRC debugfs API Date: Thu, 28 Jun 2018 14:56:59 +0300 Message-ID: <20180628115659.GA15333@haneen-vb> References: <0fa6a92c613087705bd8c6f7131cdaf3b1d0c8c2.1530133610.git.hamohammed.sa@gmail.com> <20180628080734.GQ13978@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wr0-x242.google.com (mail-wr0-x242.google.com [IPv6:2a00:1450:400c:c0c::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 11E586ED1C for ; Thu, 28 Jun 2018 11:57:08 +0000 (UTC) Received: by mail-wr0-x242.google.com with SMTP id l2-v6so4645065wro.7 for ; Thu, 28 Jun 2018 04:57:07 -0700 (PDT) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: Rodrigo Siqueira , dri-devel List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBKdW4gMjgsIDIwMTggYXQgMDE6NDA6MDhQTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBUaHUsIEp1biAyOCwgMjAxOCBhdCAxMDowNyBBTSwgRGFuaWVsIFZldHRlciA8 ZGFuaWVsQGZmd2xsLmNoPiB3cm90ZToKPiA+IE9uIFRodSwgSnVuIDI4LCAyMDE4IGF0IDEyOjI0 OjM1QU0gKzAzMDAsIEhhbmVlbiBNb2hhbW1lZCB3cm90ZToKPiA+PiBJbXBsZW1lbnQgdGhlIC5z ZXRfY3JjX3NvdXJjZSgpIGNhbGxiYWNrLgo+ID4+IENvbXB1dGUgQ1JDIHVzaW5nIGNyYzMyIG9u IHRoZSB2aXNpYmxlIHBhcnQgb2YgdGhlIGZyYW1lYnVmZmVyLgo+ID4+IFVzZSB3b3JrX3N0cnVj dCB0byBjb21wdXRlIGFuZCBhZGQgQ1JDIGF0IHRoZSBlbmQgb2YgYSB2YmxhbmsuCj4gPj4KPiA+ PiBTaWduZWQtb2ZmLWJ5OiBIYW5lZW4gTW9oYW1tZWQgPGhhbW9oYW1tZWQuc2FAZ21haWwuY29t Pgo+ID4KPiA+IE9rIGxvY2tpbmcgcmV2aWV3LiBJIHN0aWxsIGRvbid0IGhhdmUgYSBjbGVhciBp ZGVhIGhvdyB0byBiZXN0IGZpeCB0aGlzLAo+ID4gYnV0IG9oIHdlbGwuCj4gPgo+ID4+IC0tLQo+ ID4+ICBkcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NydGMuYyB8IDc2ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCj4gPj4gIGRyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2Lmgg IHwgMTYgKysrKysrKwo+ID4+ICAyIGZpbGVzIGNoYW5nZWQsIDkyIGluc2VydGlvbnMoKykKPiA+ Pgo+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NydGMuYyBiL2Ry aXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfY3J0Yy5jCj4gPj4gaW5kZXggNzNhYWUxMjljMzdkLi5k Nzg5MzRiNzZlMzMgMTAwNjQ0Cj4gPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19j cnRjLmMKPiA+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NydGMuYwo+ID4+IEBA IC03LDggKzcsNzggQEAKPiA+PiAgICovCj4gPj4KPiA+PiAgI2luY2x1ZGUgInZrbXNfZHJ2Lmgi Cj4gPj4gKyNpbmNsdWRlIDxsaW51eC9jcmMzMi5oPgo+ID4+ICAjaW5jbHVkZSA8ZHJtL2RybV9h dG9taWNfaGVscGVyLmg+Cj4gPj4gICNpbmNsdWRlIDxkcm0vZHJtX2NydGNfaGVscGVyLmg+Cj4g Pj4gKyNpbmNsdWRlIDxkcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuaD4KPiA+PiArCj4g Pj4gK3VpbnQzMl90IF92a21zX2dldF9jcmMoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIpCj4g Pj4gK3sKPiA+PiArICAgICBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbV9vYmogPSBkcm1fZ2Vt X2ZiX2dldF9vYmooZmIsIDApOwo+ID4+ICsgICAgIHN0cnVjdCB2a21zX2dlbV9vYmplY3QgKnZr bXNfb2JqID0gY29udGFpbmVyX29mKGdlbV9vYmosCj4gPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHZrbXNfZ2VtX29iamVjdCwK PiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBnZW0pOwo+ID4+ICsgICAgIHUzMiBjcmMgPSAwOwo+ID4+ICsgICAgIGludCBpID0gMDsKPiA+ PiArICAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSA9IHZrbXNfb2JqLT5wbGFuZV9z dGF0ZTsKPiA+Cj4gPiB2a21zX29iai0+cGxhbmVfc3RhdGUgaXMgdGhlIGZpcnN0IGxvY2tpbmcg aXNzdWU6IFlvdSBzdG9yZSB0aGUgcG9pbnRlcgo+ID4gd2l0aG91dCBhbnkgbG9ja3Mgb3Igc3lu Y2hyb25pemF0aW9uLCB3aGljaCBtZWFucyB0aGUgY3JjIHdvcmtlciBoZXJlCj4gPiBjb3VsZCBh Y2Nlc3MgaXMgd2hpbGUgaXQncyBiZWluZyBjaGFuZ2VkLCByZXN1bHRpbmcgaW4gYW4gaW5jb25z aXN0ZW50Cj4gPiBjcmMuIE5vdGUgdGhhdCB0aGUgY29tcGlsZXIvY3B1IGlzIGFsbG93ZWQgdG8g cmVhZCBhIHBvaW50ZXIgbXVsdGlwbGUKPiA+IHRpbWVzIGlmIGl0J3Mgbm90IHByb3RlY3RlZCBi eSBsb2NraW5nL2JhcnJpZXJzLCBzbyBhbGwga2luZHMgb2YgZnVubnkKPiA+IHN0dWZmIGNhbiBo YXBwZW4gaGVyZS4KPiA+Cj4gPiBTZWNvbmQgaXNzdWUgaXMgdGhhdCB0aGUgbWVtb3J5IHlvdSdy ZSBwb2ludGluZyB0byBpc24ndCBvd25lZCBieSB0aGUgY3JjCj4gPiBzdWJzeXN0ZW0sIGJ1dCBi eSB0aGUgYXRvbWljIGNvbW1pdCB3b3JrZXIuIFRoYXQgY291bGQgcmVsZWFzZSB0aGUgbWVtb3J5 Cj4gPiAoYW5kIGl0IG1pZ2h0IGdldCByZXVzZWQgZm9yIHNvbWV0aGluZyBlbHNlIG1lYW53aGls ZSkgYmVmb3JlIHRoZSBjcmMKPiA+IHdvcmtlciBoZXJlIGlzIGRvbmUgd2l0aCBpdC4KPiA+Cj4g Pj4gKyAgICAgdW5zaWduZWQgaW50IHggPSBzdGF0ZS0+c3JjLngxID4+IDE2Owo+ID4+ICsgICAg IHVuc2lnbmVkIGludCB5ID0gc3RhdGUtPnNyYy55MSA+PiAxNjsKPiA+PiArICAgICB1bnNpZ25l ZCBpbnQgaGVpZ2h0ID0gZHJtX3JlY3RfaGVpZ2h0KCZzdGF0ZS0+c3JjKSA+PiAxNjsKPiA+PiAr ICAgICB1bnNpZ25lZCBpbnQgd2lkdGggPSBkcm1fcmVjdF93aWR0aCgmc3RhdGUtPnNyYykgPj4g MTY7Cj4gPj4gKyAgICAgdW5zaWduZWQgaW50IGNwcCA9IGZiLT5mb3JtYXQtPmNwcFswXTsKPiA+ PiArICAgICB1bnNpZ25lZCBpbnQgc3JjX29mZnNldDsKPiA+PiArICAgICB1bnNpZ25lZCBpbnQg c2l6ZV9ieXRlID0gd2lkdGggKiBjcHA7Cj4gPj4gKyAgICAgdm9pZCAqdmFkZHIgPSB2a21zX29i ai0+dmFkZHI7Cj4gPj4gKwo+ID4+ICsgICAgIGlmIChXQVJOX09OKCF2YWRkcikpCj4gPj4gKyAg ICAgICAgICAgICByZXR1cm4gY3JjOwo+ID4+ICsKPiA+PiArICAgICBmb3IgKGkgPSB5OyBpIDwg eSArIGhlaWdodDsgaSsrKSB7Cj4gPj4gKyAgICAgICAgICAgICBzcmNfb2Zmc2V0ID0gZmItPm9m ZnNldHNbMF0gKyAoaSAqIGZiLT5waXRjaGVzWzBdKSArICh4ICogY3BwKTsKPiA+PiArICAgICAg ICAgICAgIGNyYyA9IGNyYzMyX2xlKGNyYywgdmFkZHIgKyBzcmNfb2Zmc2V0LCBzaXplX2J5dGUp Owo+ID4+ICsgICAgIH0KPiA+PiArCj4gPj4gKyAgICAgcmV0dXJuIGNyYzsKPiA+PiArfQo+ID4+ ICsKPiA+PiArdm9pZCB2a21zX2NyY193b3JrX2hhbmRsZShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndv cmspCj4gPj4gK3sKPiA+PiArICAgICBzdHJ1Y3Qgdmttc19jcnRjX3N0YXRlICpjcnRjX3N0YXRl ID0gY29udGFpbmVyX29mKHdvcmssCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCB2a21zX2NydGNfc3RhdGUsCj4gPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyY193b3JrcSk7Cj4gPj4gKyAgICAgc3RydWN0 IGRybV9jcnRjICpjcnRjID0gY3J0Y19zdGF0ZS0+Y3J0YzsKPiA+PiArICAgICBzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpmYiA9IChjcnRjLT5wcmltYXJ5ID8gY3J0Yy0+cHJpbWFyeS0+ZmIgOiBO VUxMKTsKPiA+Cj4gPiBUaGUgZHJtX3BsYW5lLT5mYiBwb2ludGVyIGhhcyBzaW1pbGFyIGlzc3Vl czogTm8gbG9ja2luZyAodGhlIG9ubHkgdGhpbmcKPiA+IHRoYXQncyByZWFsbHkgYWxsb3dlZCB0 byBjaGFuZ2UgdGhpcyBpcyB0aGUgYXRvbWljIGNvbW1pdCB3b3JrZXIgZm9yCj4gPiBhdG9taWMg ZHJpdmVycywgbm90aGluZyBlbHNlKSwgc28gc2FtZSBpc3N1ZXMgd2l0aCBpbmNvbnNpc3RlbnQg ZGF0YSBhbmQKPiA+IHVzaW5nIHBvc3NpYmx5IGZyZWVkIG1lbW9yeS4KPiA+Cj4gPiBPbiB0b3Ag VmlsbGUgaGFzIGEgcGF0Y2ggc2VyaWVzIHRvIHNldCBkcm1fcGxhbmUtPmZiID09IE5VTEwgZm9y IGFsbAo+ID4gYXRvbWljIGRyaXZlcnMgLSBpdCdzIHJlYWxseSBhIGxlZnRvdmVyIGZyb20gdGhl IHByZS1hdG9taWMgYWdlIGFuZAo+ID4gZG9lc24ndCBmaXQgZm9yIGF0b21pYy4KPiAKPiBWaWxs ZSBqdXN0IHNhaWQgdGhhdCBoZSBwdXNoZWQgYWxsIHRoYXQuIEFyZSB5b3Ugc3VyZSB0aGF0IHlv dSdyZSBvbgo+IGxhdGVzdCBkcm0tdGlwPyBPbiBsYXRlc3QgZHJtLXRpcCBwcmltYXJ5LT5mYiBz aG91bGQgYmUgYWx3YXlzIE5VTEwKPiBmb3IgYW4gYXRvbWljIGRyaXZlciBsaWtlIHZrbXMgLi4u IElmIHlvdSdyZSBub3Qgb24gbGF0ZXN0IGRybS10aXAKPiBwcm9iYWJseSBnb29kIGlkZWEgdG8g cmViYXNlIGV2ZXJ5dGhpbmcuCj4gLURhbmllbAo+IAoKT2sgSSB3aWxsIHdvcmsgb24gdGhhdCwg dGhhbmsgeW91IHNvIG11Y2ghIAoKSSBkaWQgdXBkYXRlIG15IGJyYW5jaCByZWNlbnRseSBidXQg dGhlbiB0aGF0IHJlc3VsdGVkIGluIG5ldHdvcmtpbmcKcHJvYmxlbXMgc28gSSByZXZlcnRlZCB0 aGUgdXBkYXRlLiBJIHdpbGwgZml4IHRoYXQgaXNzdWUgZmlyc3QgYW5kIHRoZW4Kd29yayBvbiB0 aGUgbG9ja2luZyBpc3N1ZXMuIAoKVGhhbmsgeW91IHNvIG11Y2ggYWdhaW4hCkhhbmVlbgoKPiA+ Cj4gPiBPbiB0b3Agb2YgdGhlc2UgaXNzdWVzIGZvciAtPnBsYW5lX3N0YXRlIGFuZCAtPmZiIHdl IGhhdmUgYSB0aGlyZCBpc3N1ZToKPiA+IFRoZSBjcmMgY29tcHV0YXRpb24gbXVzdCBiZSBhdG9t aWMgd3J0IHRoZSBnZW5lcmF0ZWQgdmJsYW5rIGV2ZW50IGZvciBhCj4gPiBnaXZlbiBhdG9taWMg dXBkYXRlLiBUaGF0IG1lYW5zIHdlIG11c3QgbWFrZSBzdXJlIHRoYXQgdGhlIGNyYyB3ZSdyZQo+ ID4gZ2VuZXJhdGluZyBpcyBleGFjdGx5IGZvciB0aGUgcGxhbmVfc3RhdGUvZmIgdGhhdCBhbHNv IGlzc3VlZCB0aGUgdmJsYW5rCj4gPiBldmVudC4gVGhlcmUncyBzb21lIGF0b21pYyBrbXMgdGVz dHMgaW4gaWd0IHRoYXQgY2hlY2sgdGhpcy4gTW9yZQo+ID4gY29uY3JldGVseSB3ZSBuZWVkIHRv IG1ha2Ugc3VyZSB0aGF0Ogo+ID4gLSBpZiB0aGUgdmJsYW5rIGNvZGUgc2VlcyB0aGUgbmV3IHZi bGFuayBldmVudCwgdGhlbiB0aGUgY3JjIF9tdXN0Xwo+ID4gICBjb21wdXRlIHRoZSBjcmMgZm9y IHRoZSBuZXcgY29uZmlndXJhdGlvbi4KPiA+IC0gaWYgdGhlIHZibGFuayBjb2RlIGRvZXMgbm90 IHlldCBzZWUgdGhlIG5ldyB2YmxhbmsgZXZlbnQsIHRoZW4gdGhlIGNyYwo+ID4gICBfbXVzdF8g Y29tcHV0ZSB0aGUgY3JjIGZvciB0aGUgb2xkIGNvbmZpZ3VyYXRpb24uCj4gPgo+ID4gT25lIHNp bXBsZSBzb2x1dGlvbiwgYnV0IHF1aXRlIGEgYml0IG9mIGNvZGUgdG8gdHlwZSB3b3VsZCBiZS4K PiA+Cj4gPiAxLiBhZGQgYSBzcGlubG9jayB0byB0aGUgdmttc19jcnRjIHN0cnVjdHVyZSAocHJv YmFibHkgbmVlZCB0aGF0IGZpcnN0KSB0bwo+ID4gcHJvdGVjdCBhbGwgdGhlIGNyYy92Ymxhbmsg ZXZlbnQgc3R1ZmYuIE5lZWRzIHRvIGJlIGEgc3BpbmxvY2sgc2luY2Ugd2UKPiA+IG11c3QgbG9v ayBhdCB0aGlzIGZyb20gdGhlIGhydGltZXIuCj4gPgo+ID4gMi4gQ3JlYXRlIGEgbmV3IHN0cnVj dHVyZSB3aGVyZSB5b3UgbWFrZSBhIGNvcHkgKG5vdCBqdXN0IHBvaW50ZXJzKSBvZiBhbGwKPiA+ IHRoZSBkYXRhIHRoZSBocnRpbWVyIG5lZWRzLiBTbyBzcmMgb2Zmc2V0LCB2YmxhbmsgZXZlbnQs IGFsbCB0aGF0IHN0dWZmLgo+ID4gRm9yIHRoZSBmYiBwb2ludGVyIHlvdSBuZWVkIHRvIG1ha2Ug c3VyZSBpdCdzIHByb3Blcmx5IHJlZmVyZW5jZSBjb3VudGVkCj4gPiAoZHJtX2ZyYW1lYnVmZmVy X2dldC9wdXQpLgo+ID4KPiA+IDMuIEZvciBldmVyeSBhdG9taWMgdXBkYXRlLCBhbGxvY2F0ZSBh IG5ldyBzdWNoIHN0cnVjdHVyZSBhbmQgc3RvcmUgaXQgaW4KPiA+IHRoZSB2a21zX2NydGMgc3Ry dWN0dXJlIChob2xkaW5nIHRoZSBzcGlubG9jayB3aGlsZSB1cGRhdGluZyB0aGUgcG9pbnRlciku Cj4gPgo+ID4gNC4gSW4gdGhlIGhydGltZXIgZ3JhYiB0aGF0IHBvaW50ZXIgYW5kIHNldCBpdCB0 byBOVUxMIChhZ2FpbiBob2xkaW5nIHRoZQo+ID4gc3BpbmxvY2spLCBhbmQgdGhlbiBleHBsaWNp dGx5IHNlbmQgb3V0IHRoZSB2YmxhbmsgZXZlbnQgKHVzaW5nCj4gPiBkcm1fY3J0Y19zZW5kX3Zi bGFua19ldmVudCkuIEFuZCB0aGVuIHBhc3MgdGhhdCBzdHJ1Y3R1cmUgd2l0aCBldmVyeXRoaW5n Cj4gPiB0aGUgY3JjIHdvcmtlciBuZWVkcyB0byB0aGUgY3JjIHdvcmtlci4KPiA+Cj4gPiBJIHRo aW5rIHRoaXMgc2hvdWxkIHdvcmssIG1vc3RseS4KPiA+IC1EYW5pZWwKPiA+Cj4gPj4gKwo+ID4+ ICsgICAgIGlmIChjcnRjX3N0YXRlLT5jcmNfZW5hYmxlZCAmJiBmYikgewo+ID4+ICsgICAgICAg ICAgICAgdTMyIGNyYzMyID0gX3ZrbXNfZ2V0X2NyYyhmYik7Cj4gPj4gKyAgICAgICAgICAgICB1 bnNpZ25lZCBpbnQgbl9mcmFtZSA9IGRybV9jcnRjX2FjY3VyYXRlX3ZibGFua19jb3VudChjcnRj KTsKPiA+PiArCj4gPj4gKyAgICAgICAgICAgICBkcm1fY3J0Y19hZGRfY3JjX2VudHJ5KGNydGMs IHRydWUsIG5fZnJhbWUsICZjcmMzMik7Cj4gPj4gKyAgICAgfQo+ID4+ICt9Cj4gPj4gKwo+ID4+ ICtzdGF0aWMgaW50IHZrbXNfc2V0X2NyY19zb3VyY2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLCBj b25zdCBjaGFyICpzcmNfbmFtZSwKPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNp emVfdCAqdmFsdWVzX2NudCkKPiA+PiArewo+ID4+ICsgICAgIHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBjcnRjLT5kZXY7Cj4gPj4gKyAgICAgc3RydWN0IHZrbXNfZGV2aWNlICp2a21zX2RldiA9 IGNvbnRhaW5lcl9vZihkZXYsCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3Qgdmttc19kZXZpY2UsCj4gPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcm0pOwo+ID4+ICsgICAgIHN0cnVj dCB2a21zX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPSAmdmttc19kZXYtPm91dHB1dC5jcnRjX3N0 YXRlOwo+ID4+ICsKPiA+PiArICAgICBpZiAoIXNyY19uYW1lKSB7Cj4gPj4gKyAgICAgICAgICAg ICBjcnRjX3N0YXRlLT5jcmNfZW5hYmxlZCA9IGZhbHNlOwo+ID4+ICsgICAgIH0gZWxzZSBpZiAo c3RyY21wKHNyY19uYW1lLCAiYXV0byIpID09IDApIHsKPiA+PiArICAgICAgICAgICAgIGNydGNf c3RhdGUtPmNyY19lbmFibGVkID0gdHJ1ZTsKPiA+PiArICAgICB9IGVsc2Ugewo+ID4+ICsgICAg ICAgICAgICAgY3J0Y19zdGF0ZS0+Y3JjX2VuYWJsZWQgPSBmYWxzZTsKPiA+PiArICAgICAgICAg ICAgIHJldHVybiAtRUlOVkFMOwo+ID4+ICsgICAgIH0KPiA+PiArCj4gPj4gKyAgICAgKnZhbHVl c19jbnQgPSAxOwo+ID4+ICsKPiA+PiArICAgICByZXR1cm4gMDsKPiA+PiArfQo+ID4+Cj4gPj4g IHN0YXRpYyBlbnVtIGhydGltZXJfcmVzdGFydCB2a21zX3ZibGFua19zaW11bGF0ZShzdHJ1Y3Qg aHJ0aW1lciAqdGltZXIpCj4gPj4gIHsKPiA+PiBAQCAtMjMsNiArOTMsOCBAQCBzdGF0aWMgZW51 bSBocnRpbWVyX3Jlc3RhcnQgdmttc192Ymxhbmtfc2ltdWxhdGUoc3RydWN0IGhydGltZXIgKnRp bWVyKQo+ID4+ICAgICAgIGlmICghcmV0KQo+ID4+ICAgICAgICAgICAgICAgRFJNX0VSUk9SKCJ2 a21zIGZhaWx1cmUgb24gaGFuZGxpbmcgdmJsYW5rIik7Cj4gPj4KPiA+PiArICAgICB2a21zX2Ny Y193b3JrX2hhbmRsZSgmb3V0cHV0LT5jcnRjX3N0YXRlLmNyY193b3JrcSk7Cj4gPj4gKwo+ID4+ ICAgICAgIHNwaW5fbG9ja19pcnFzYXZlKCZjcnRjLT5kZXYtPmV2ZW50X2xvY2ssIGZsYWdzKTsK PiA+PiAgICAgICBpZiAob3V0cHV0LT5ldmVudCkgewo+ID4+ICAgICAgICAgICAgICAgZHJtX2Ny dGNfc2VuZF92YmxhbmtfZXZlbnQoY3J0Yywgb3V0cHV0LT5ldmVudCk7Cj4gPj4gQEAgLTQ2LDYg KzExOCw5IEBAIHN0YXRpYyBpbnQgdmttc19lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAq Y3J0YykKPiA+PiAgICAgICBvdXQtPnBlcmlvZF9ucyA9IGt0aW1lX3NldCgwLCBERUZBVUxUX1ZC TEFOS19OUyk7Cj4gPj4gICAgICAgaHJ0aW1lcl9zdGFydCgmb3V0LT52YmxhbmtfaHJ0aW1lciwg b3V0LT5wZXJpb2RfbnMsIEhSVElNRVJfTU9ERV9BQlMpOwo+ID4+Cj4gPj4gKyAgICAgb3V0LT5j cnRjX3N0YXRlLmNydGMgPSBjcnRjOwo+ID4+ICsgICAgIElOSVRfV09SSygmb3V0LT5jcnRjX3N0 YXRlLmNyY193b3JrcSwgdmttc19jcmNfd29ya19oYW5kbGUpOwo+ID4+ICsKPiA+PiAgICAgICBy ZXR1cm4gMDsKPiA+PiAgfQo+ID4+Cj4gPj4gQEAgLTY1LDYgKzE0MCw3IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgZHJtX2NydGNfZnVuY3Mgdmttc19jcnRjX2Z1bmNzID0gewo+ID4+ICAgICAgIC5h dG9taWNfZGVzdHJveV9zdGF0ZSAgID0gZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kZXN0cm95X3N0 YXRlLAo+ID4+ICAgICAgIC5lbmFibGVfdmJsYW5rICAgICAgICAgID0gdmttc19lbmFibGVfdmJs YW5rLAo+ID4+ICAgICAgIC5kaXNhYmxlX3ZibGFuayAgICAgICAgID0gdmttc19kaXNhYmxlX3Zi bGFuaywKPiA+PiArICAgICAuc2V0X2NyY19zb3VyY2UgICAgICAgICA9IHZrbXNfc2V0X2NyY19z b3VyY2UsCj4gPj4gIH07Cj4gPj4KPiA+PiAgc3RhdGljIGludCB2a21zX2NydGNfYXRvbWljX2No ZWNrKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3ZrbXMvdmttc19kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmgKPiA+ PiBpbmRleCAzMDBlNmEwNWQ0NzMuLjRhMTQ1ODczMWRkNyAxMDA2NDQKPiA+PiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5oCj4gPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Zr bXMvdmttc19kcnYuaAo+ID4+IEBAIC0yMiw2ICsyMiwxOCBAQCBzdGF0aWMgY29uc3QgdTMyIHZr bXNfZm9ybWF0c1tdID0gewo+ID4+ICAgICAgIERSTV9GT1JNQVRfWFJHQjg4ODgsCj4gPj4gIH07 Cj4gPj4KPiA+PiArLyoqCj4gPj4gKyAqIHN0cnVjdCB2a21zX2NydGNfc3RhdGUKPiA+PiArICog QGNydGM6IGJhY2twb2ludGVyIHRvIHRoZSBDUlRDCj4gPj4gKyAqIEBjcmNfd29ya3E6IHdvcmtl ciB0aGF0IGNhcHR1cmVzIENSQ3MgZm9yIGVhY2ggZnJhbWUKPiA+PiArICogQGNyY19lbmFibGVk OiBmbGFnIHRvIHRlc3QgaWYgY3JjIGlzIGVuYWJsZWQKPiA+PiArICovCj4gPj4gK3N0cnVjdCB2 a21zX2NydGNfc3RhdGUgewo+ID4+ICsgICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiA+PiAr ICAgICBzdHJ1Y3Qgd29ya19zdHJ1Y3QgY3JjX3dvcmtxOwo+ID4+ICsgICAgIGJvb2wgY3JjX2Vu YWJsZWQ7Cj4gPj4gK307Cj4gPj4gKwo+ID4+ICBzdHJ1Y3Qgdmttc19vdXRwdXQgewo+ID4+ICAg ICAgIHN0cnVjdCBkcm1fY3J0YyBjcnRjOwo+ID4+ICAgICAgIHN0cnVjdCBkcm1fZW5jb2RlciBl bmNvZGVyOwo+ID4+IEBAIC0yOSw2ICs0MSw3IEBAIHN0cnVjdCB2a21zX291dHB1dCB7Cj4gPj4g ICAgICAgc3RydWN0IGhydGltZXIgdmJsYW5rX2hydGltZXI7Cj4gPj4gICAgICAga3RpbWVfdCBw ZXJpb2RfbnM7Cj4gPj4gICAgICAgc3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVudCAqZXZl bnQ7Cj4gPj4gKyAgICAgc3RydWN0IHZrbXNfY3J0Y19zdGF0ZSBjcnRjX3N0YXRlOwo+ID4+ICB9 Owo+ID4+Cj4gPj4gIHN0cnVjdCB2a21zX2RldmljZSB7Cj4gPj4gQEAgLTU1LDYgKzY4LDkgQEAg aW50IHZrbXNfb3V0cHV0X2luaXQoc3RydWN0IHZrbXNfZGV2aWNlICp2a21zZGV2KTsKPiA+Pgo+ ID4+ICBzdHJ1Y3QgZHJtX3BsYW5lICp2a21zX3BsYW5lX2luaXQoc3RydWN0IHZrbXNfZGV2aWNl ICp2a21zZGV2KTsKPiA+Pgo+ID4+ICsvKiBDUkMgU3VwcG9ydCAqLwo+ID4+ICt2b2lkIHZrbXNf Y3JjX3dvcmtfaGFuZGxlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7Cj4gPj4gKwo+ID4+ICAv KiBHZW0gc3R1ZmYgKi8KPiA+PiAgc3RydWN0IGRybV9nZW1fb2JqZWN0ICp2a21zX2dlbV9jcmVh dGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+PiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlLAo+ID4+IC0tCj4gPj4gMi4xNy4xCj4g Pj4KPiA+Cj4gPiAtLQo+ID4gRGFuaWVsIFZldHRlcgo+ID4gU29mdHdhcmUgRW5naW5lZXIsIElu dGVsIENvcnBvcmF0aW9uCj4gPiBodHRwOi8vYmxvZy5mZndsbC5jaAo+IAo+IAo+IAo+IC0tIAo+ IERhbmllbCBWZXR0ZXIKPiBTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KPiAr NDEgKDApIDc5IDM2NSA1NyA0OCAtIGh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QK ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=