From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH 3/9] drm/amdgpu: cleanup amdgpu_ih.c Date: Wed, 26 Sep 2018 10:57:50 +0200 Message-ID: <366f6d5f-67f8-0d86-274c-bf93a59c60d3@amd.com> References: <20180924123820.1873-1-christian.koenig@amd.com> <20180924123820.1873-3-christian.koenig@amd.com> <20180925102823.GD30495@hr-amur2> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-US List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: "Huang, Ray" Cc: "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" QW0gMjYuMDkuMjAxOCB1bSAxMDo1MiBzY2hyaWViIEh1YW5nLCBSYXk6Cj4+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tCj4+IEZyb206IENocmlzdGlhbiBLw7ZuaWcgW21haWx0bzpja29lbmln LmxlaWNodHp1bWVya2VuQGdtYWlsLmNvbV0KPj4gU2VudDogVHVlc2RheSwgU2VwdGVtYmVyIDI1 LCAyMDE4IDc6MDEgUE0KPj4gVG86IEh1YW5nLCBSYXkgPFJheS5IdWFuZ0BhbWQuY29tPgo+PiBD YzogYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gU3ViamVjdDogUmU6IFtQQVRDSCAz LzldIGRybS9hbWRncHU6IGNsZWFudXAgYW1kZ3B1X2loLmMKPj4KPj4gQW0gMjUuMDkuMjAxOCB1 bSAxMjoyOCBzY2hyaWViIEh1YW5nIFJ1aToKPj4+IE9uIE1vbiwgU2VwIDI0LCAyMDE4IGF0IDAy OjM4OjE0UE0gKzAyMDAsIENocmlzdGlhbiBLw7ZuaWcgd3JvdGU6Cj4+Pj4gQ2xlYW51cCBhbWRn cHVfaWguYyB0byBiZSBhYmxlIHRvIGhhbmRsZSBtdWx0aXBsZSBpbnRlcnJ1cHQgcmluZ3MuCj4+ Pj4KPj4+PiBTaWduZWQtb2ZmLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmln QGFtZC5jb20+Cj4+PiBSZXZpZXdlZC1ieTogSHVhbmcgUnVpIDxyYXkuaHVhbmdAYW1kLmNvbT4K Pj4+Cj4+PiBXaWxsIHdlIGhhdmUgbXVsdGlwbGUgaW50ZXJydXB0IHJpbmdzIGluIG5ldyBhc2lj Pwo+PiBWZWdhIGFscmVhZHkgaGFzIDMgb2YgdGhlbSwgd2UganVzdCBoYXZlbid0IGFjdGl2YXRl ZCB0aGUgb3RoZXIgeWV0Lgo+Pgo+IEdvb2QgdG8ga25vdy4gSSBqdXN0IHRvb2sgYSBsb29rIGF0 IHRoZSBzcGVjLiBJSCByaW5nIDEgaXMgdXNlZCBmb3IgcmVxdWVzdCBsb2cgYW5kIElIIHJpbmcg MiBpcyB1c2VkIGZvciB0cmFuc2xhdGlvbiAmIGludmFsaWRhdGlvbiBsb2cuCj4gVGhleSBhcmUg dG8gc3VwcG9ydCB0aGUgcGFnZSBtaWdyYXRpb24gZmVhdHVyZS4gRG8geW91IHBsYW4gdG8gd29y ayBvbiBpdD8KClllcywgYWN0dWFsbHkgdGhlIElIIGlzIGFibGUgdG8gcm91dGUgYW55IElWIHRv IGFueSByaW5nIGJhc2VkIG9uIHRoZSAKY2xpZW50IElELCBlLmcuIHdobyBpcyBzZW5kaW5nIHRo ZSBJVi4KClNvIEknbSBjdXJyZW50bHkgbG9va2luZyBpbnRvIHJvdXRpbmcgdGhlIFZNIGZhdWx0 cyB0byByaW5nIDIgYXMgd2VsbC4gClRoYXQgc2hvdWxkIGFsbG93IHVzIHRvIGJldHRlciBoYW5k bGUgdGhlbSBhbmQgYXZvaWQgb3ZlcndoZWxtaW5nIHRoZSAKQ1BVIHdpdGggYW4gaW50ZXJydXB0 IHN0b3JtIGluIGNhc2Ugb2YgcGFnZSBmYXVsdHMuCgpSZWdhcmRzLApDaHJpc3RpYW4uCgo+Cj4g VGhhbmtzLAo+IFJheQo+Cj4+IENocmlzdGlhbi4KPj4KPj4+IFRoYW5rcywKPj4+IFJheQo+Pj4K Pj4+PiAtLS0KPj4+PiAgICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaWguYyAg fCAxNTIgKysrKysrKysrKysrKystLS0KPj4gLS0tLS0tLS0tLS0tLS0tCj4+Pj4gICAgZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2loLmggIHwgICA4ICstCj4+Pj4gICAgZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2lycS5jIHwgICAyICstCj4+Pj4gICAgZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvY2lrX2loLmMgICAgIHwgICA0ICstCj4+Pj4gICAgZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvY3pfaWguYyAgICAgIHwgICA0ICstCj4+Pj4gICAgZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvaWNlbGFuZF9paC5jIHwgICA0ICstCj4+Pj4gICAgZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvc2lfaWguYyAgICAgIHwgICA0ICstCj4+Pj4gICAgZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvdG9uZ2FfaWguYyAgIHwgICA0ICstCj4+Pj4gICAgZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvdmVnYTEwX2loLmMgIHwgICA0ICstCj4+Pj4gICAgOSBmaWxl cyBjaGFuZ2VkLCA4NCBpbnNlcnRpb25zKCspLCAxMDIgZGVsZXRpb25zKC0pCj4+Pj4KPj4+PiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2loLmMKPj4+PiBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9paC5jCj4+Pj4gaW5kZXggNGVkODYy MThjZWYzLi4xNWZiMGY5NzM4YWIgMTAwNjQ0Cj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2loLmMKPj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfaWguYwo+Pj4+IEBAIC0yNiw0NCArMjYsMjAgQEAKPj4+PiAgICAjaW5jbHVkZSAi YW1kZ3B1X2loLmgiCj4+Pj4gICAgI2luY2x1ZGUgImFtZGdwdV9hbWRrZmQuaCIKPj4+Pgo+Pj4+ IC0vKioKPj4+PiAtICogYW1kZ3B1X2loX3JpbmdfYWxsb2MgLSBhbGxvY2F0ZSBtZW1vcnkgZm9y IHRoZSBJSCByaW5nCj4+Pj4gLSAqCj4+Pj4gLSAqIEBhZGV2OiBhbWRncHVfZGV2aWNlIHBvaW50 ZXIKPj4+PiAtICoKPj4+PiAtICogQWxsb2NhdGUgYSByaW5nIGJ1ZmZlciBmb3IgdGhlIGludGVy cnVwdCBjb250cm9sbGVyLgo+Pj4+IC0gKiBSZXR1cm5zIDAgZm9yIHN1Y2Nlc3MsIGVycm9ycyBm b3IgZmFpbHVyZS4KPj4+PiAtICovCj4+Pj4gLXN0YXRpYyBpbnQgYW1kZ3B1X2loX3JpbmdfYWxs b2Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpIC17Cj4+Pj4gLQlpbnQgcjsKPj4+PiAtCj4+ Pj4gLQkvKiBBbGxvY2F0ZSByaW5nIGJ1ZmZlciAqLwo+Pj4+IC0JaWYgKGFkZXYtPmlycS5paC5y aW5nX29iaiA9PSBOVUxMKSB7Cj4+Pj4gLQkJciA9IGFtZGdwdV9ib19jcmVhdGVfa2VybmVsKGFk ZXYsIGFkZXYtPmlycS5paC5yaW5nX3NpemUsCj4+Pj4gLQkJCQkJICAgIFBBR0VfU0laRSwKPj4g QU1ER1BVX0dFTV9ET01BSU5fR1RULAo+Pj4+IC0JCQkJCSAgICAmYWRldi0+aXJxLmloLnJpbmdf b2JqLAo+Pj4+IC0JCQkJCSAgICAmYWRldi0+aXJxLmloLmdwdV9hZGRyLAo+Pj4+IC0JCQkJCSAg ICAodm9pZCAqKikmYWRldi0+aXJxLmloLnJpbmcpOwo+Pj4+IC0JCWlmIChyKSB7Cj4+Pj4gLQkJ CURSTV9FUlJPUigiYW1kZ3B1OiBmYWlsZWQgdG8gY3JlYXRlIGloIHJpbmcgYnVmZmVyCj4+ICgl ZCkuXG4iLCByKTsKPj4+PiAtCQkJcmV0dXJuIHI7Cj4+Pj4gLQkJfQo+Pj4+IC0JfQo+Pj4+IC0J cmV0dXJuIDA7Cj4+Pj4gLX0KPj4+PiAtCj4+Pj4gICAgLyoqCj4+Pj4gICAgICogYW1kZ3B1X2lo X3JpbmdfaW5pdCAtIGluaXRpYWxpemUgdGhlIElIIHN0YXRlCj4+Pj4gICAgICoKPj4+PiAgICAg KiBAYWRldjogYW1kZ3B1X2RldmljZSBwb2ludGVyCj4+Pj4gKyAqIEBpaDogaWggcmluZyB0byBp bml0aWFsaXplCj4+Pj4gKyAqIEByaW5nX3NpemU6IHJpbmcgc2l6ZSB0byBhbGxvY2F0ZQo+Pj4+ ICsgKiBAdXNlX2J1c19hZGRyOiB0cnVlIHdoZW4gd2UgY2FuIHVzZSBkbWFfYWxsb2NfY29oZXJl bnQKPj4+PiAgICAgKgo+Pj4+ICAgICAqIEluaXRpYWxpemVzIHRoZSBJSCBzdGF0ZSBhbmQgYWxs b2NhdGVzIGEgYnVmZmVyCj4+Pj4gICAgICogZm9yIHRoZSBJSCByaW5nIGJ1ZmZlci4KPj4+PiAg ICAgKiBSZXR1cm5zIDAgZm9yIHN1Y2Nlc3MsIGVycm9ycyBmb3IgZmFpbHVyZS4KPj4+PiAgICAg Ki8KPj4+PiAtaW50IGFtZGdwdV9paF9yaW5nX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYsIHVuc2lnbmVkCj4+IHJpbmdfc2l6ZSwKPj4+PiAtCQkJYm9vbCB1c2VfYnVzX2FkZHIpCj4+ Pj4gK2ludCBhbWRncHVfaWhfcmluZ19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBz dHJ1Y3QKPj4gYW1kZ3B1X2loX3JpbmcgKmloLAo+Pj4+ICsJCQl1bnNpZ25lZCByaW5nX3NpemUs IGJvb2wgdXNlX2J1c19hZGRyKQo+Pj4+ICAgIHsKPj4+PiAgICAJdTMyIHJiX2J1ZnN6Owo+Pj4+ ICAgIAlpbnQgcjsKPj4+PiBAQCAtNzEsNzAgKzQ3LDc2IEBAIGludCBhbWRncHVfaWhfcmluZ19p bml0KHN0cnVjdCBhbWRncHVfZGV2aWNlCj4+ICphZGV2LCB1bnNpZ25lZCByaW5nX3NpemUsCj4+ Pj4gICAgCS8qIEFsaWduIHJpbmcgc2l6ZSAqLwo+Pj4+ICAgIAlyYl9idWZzeiA9IG9yZGVyX2Jh c2VfMihyaW5nX3NpemUgLyA0KTsKPj4+PiAgICAJcmluZ19zaXplID0gKDEgPDwgcmJfYnVmc3op ICogNDsKPj4+PiAtCWFkZXYtPmlycS5paC5yaW5nX3NpemUgPSByaW5nX3NpemU7Cj4+Pj4gLQlh ZGV2LT5pcnEuaWgucHRyX21hc2sgPSBhZGV2LT5pcnEuaWgucmluZ19zaXplIC0gMTsKPj4+PiAt CWFkZXYtPmlycS5paC5ycHRyID0gMDsKPj4+PiAtCWFkZXYtPmlycS5paC51c2VfYnVzX2FkZHIg PSB1c2VfYnVzX2FkZHI7Cj4+Pj4gLQo+Pj4+IC0JaWYgKGFkZXYtPmlycS5paC51c2VfYnVzX2Fk ZHIpIHsKPj4+PiAtCQlpZiAoIWFkZXYtPmlycS5paC5yaW5nKSB7Cj4+Pj4gLQkJCS8qIGFkZCA4 IGJ5dGVzIGZvciB0aGUgcnB0ci93cHRyIHNoYWRvd3MgYW5kCj4+Pj4gLQkJCSAqIGFkZCB0aGVt IHRvIHRoZSBlbmQgb2YgdGhlIHJpbmcgYWxsb2NhdGlvbi4KPj4+PiAtCQkJICovCj4+Pj4gLQkJ CWFkZXYtPmlycS5paC5yaW5nID0gcGNpX2FsbG9jX2NvbnNpc3RlbnQoYWRldi0+cGRldiwKPj4+ PiAtCQkJCQkJCQkgYWRldi0KPj4+IGlycS5paC5yaW5nX3NpemUgKyA4LAo+Pj4+IC0JCQkJCQkJ CSAmYWRldi0KPj4+IGlycS5paC5yYl9kbWFfYWRkcik7Cj4+Pj4gLQkJCWlmIChhZGV2LT5pcnEu aWgucmluZyA9PSBOVUxMKQo+Pj4+IC0JCQkJcmV0dXJuIC1FTk9NRU07Cj4+Pj4gLQkJCW1lbXNl dCgodm9pZCAqKWFkZXYtPmlycS5paC5yaW5nLCAwLCBhZGV2LQo+Pj4gaXJxLmloLnJpbmdfc2l6 ZSArIDgpOwo+Pj4+IC0JCQlhZGV2LT5pcnEuaWgud3B0cl9vZmZzID0gKGFkZXYtPmlycS5paC5y aW5nX3NpemUgLyA0KSArCj4+IDA7Cj4+Pj4gLQkJCWFkZXYtPmlycS5paC5ycHRyX29mZnMgPSAo YWRldi0+aXJxLmloLnJpbmdfc2l6ZSAvIDQpICsKPj4gMTsKPj4+PiAtCQl9Cj4+Pj4gLQkJcmV0 dXJuIDA7Cj4+Pj4gKwlpaC0+cmluZ19zaXplID0gcmluZ19zaXplOwo+Pj4+ICsJaWgtPnB0cl9t YXNrID0gaWgtPnJpbmdfc2l6ZSAtIDE7Cj4+Pj4gKwlpaC0+cnB0ciA9IDA7Cj4+Pj4gKwlpaC0+ dXNlX2J1c19hZGRyID0gdXNlX2J1c19hZGRyOwo+Pj4+ICsKPj4+PiArCWlmICh1c2VfYnVzX2Fk ZHIpIHsKPj4+PiArCQlpZiAoaWgtPnJpbmcpCj4+Pj4gKwkJCXJldHVybiAwOwo+Pj4+ICsKPj4+ PiArCQkvKiBhZGQgOCBieXRlcyBmb3IgdGhlIHJwdHIvd3B0ciBzaGFkb3dzIGFuZAo+Pj4+ICsJ CSAqIGFkZCB0aGVtIHRvIHRoZSBlbmQgb2YgdGhlIHJpbmcgYWxsb2NhdGlvbi4KPj4+PiArCQkg Ki8KPj4+PiArCQlpaC0+cmluZyA9IGRtYV9hbGxvY19jb2hlcmVudChhZGV2LT5kZXYsIGloLT5y aW5nX3NpemUgKyA4LAo+Pj4+ICsJCQkJCSAgICAgICZpaC0+cmJfZG1hX2FkZHIsIEdGUF9LRVJO RUwpOwo+Pj4+ICsJCWlmIChpaC0+cmluZyA9PSBOVUxMKQo+Pj4+ICsJCQlyZXR1cm4gLUVOT01F TTsKPj4+PiArCj4+Pj4gKwkJbWVtc2V0KCh2b2lkICopaWgtPnJpbmcsIDAsIGloLT5yaW5nX3Np emUgKyA4KTsKPj4+PiArCQlpaC0+d3B0cl9vZmZzID0gKGloLT5yaW5nX3NpemUgLyA0KSArIDA7 Cj4+Pj4gKwkJaWgtPnJwdHJfb2ZmcyA9IChpaC0+cmluZ19zaXplIC8gNCkgKyAxOwo+Pj4+ICAg IAl9IGVsc2Ugewo+Pj4+IC0JCXIgPSBhbWRncHVfZGV2aWNlX3diX2dldChhZGV2LCAmYWRldi0+ aXJxLmloLndwdHJfb2Zmcyk7Cj4+Pj4gKwkJciA9IGFtZGdwdV9kZXZpY2Vfd2JfZ2V0KGFkZXYs ICZpaC0+d3B0cl9vZmZzKTsKPj4+PiArCQlpZiAocikKPj4+PiArCQkJcmV0dXJuIHI7Cj4+Pj4g Kwo+Pj4+ICsJCXIgPSBhbWRncHVfZGV2aWNlX3diX2dldChhZGV2LCAmaWgtPnJwdHJfb2Zmcyk7 Cj4+Pj4gICAgCQlpZiAocikgewo+Pj4+IC0JCQlkZXZfZXJyKGFkZXYtPmRldiwgIiglZCkgaWgg d3B0cl9vZmZzIHdiIGFsbG9jCj4+IGZhaWxlZFxuIiwgcik7Cj4+Pj4gKwkJCWFtZGdwdV9kZXZp Y2Vfd2JfZnJlZShhZGV2LCBpaC0+d3B0cl9vZmZzKTsKPj4+PiAgICAJCQlyZXR1cm4gcjsKPj4+ PiAgICAJCX0KPj4+Pgo+Pj4+IC0JCXIgPSBhbWRncHVfZGV2aWNlX3diX2dldChhZGV2LCAmYWRl di0+aXJxLmloLnJwdHJfb2Zmcyk7Cj4+Pj4gKwkJciA9IGFtZGdwdV9ib19jcmVhdGVfa2VybmVs KGFkZXYsIGloLT5yaW5nX3NpemUsCj4+IFBBR0VfU0laRSwKPj4+PiArCQkJCQkgICAgQU1ER1BV X0dFTV9ET01BSU5fR1RULAo+Pj4+ICsJCQkJCSAgICAmaWgtPnJpbmdfb2JqLCAmaWgtPmdwdV9h ZGRyLAo+Pj4+ICsJCQkJCSAgICAodm9pZCAqKikmaWgtPnJpbmcpOwo+Pj4+ICAgIAkJaWYgKHIp IHsKPj4+PiAtCQkJYW1kZ3B1X2RldmljZV93Yl9mcmVlKGFkZXYsIGFkZXYtCj4+PiBpcnEuaWgu d3B0cl9vZmZzKTsKPj4+PiAtCQkJZGV2X2VycihhZGV2LT5kZXYsICIoJWQpIGloIHJwdHJfb2Zm cyB3YiBhbGxvYwo+PiBmYWlsZWRcbiIsIHIpOwo+Pj4+ICsJCQlhbWRncHVfZGV2aWNlX3diX2Zy ZWUoYWRldiwgaWgtPnJwdHJfb2Zmcyk7Cj4+Pj4gKwkJCWFtZGdwdV9kZXZpY2Vfd2JfZnJlZShh ZGV2LCBpaC0+d3B0cl9vZmZzKTsKPj4+PiAgICAJCQlyZXR1cm4gcjsKPj4+PiAgICAJCX0KPj4+ PiAtCj4+Pj4gLQkJcmV0dXJuIGFtZGdwdV9paF9yaW5nX2FsbG9jKGFkZXYpOwo+Pj4+ICAgIAl9 Cj4+Pj4gKwlyZXR1cm4gMDsKPj4+PiAgICB9Cj4+Pj4KPj4+PiAgICAvKioKPj4+PiAgICAgKiBh bWRncHVfaWhfcmluZ19maW5pIC0gdGVhciBkb3duIHRoZSBJSCBzdGF0ZQo+Pj4+ICAgICAqCj4+ Pj4gICAgICogQGFkZXY6IGFtZGdwdV9kZXZpY2UgcG9pbnRlcgo+Pj4+ICsgKiBAaWg6IGloIHJp bmcgdG8gdGVhciBkb3duCj4+Pj4gICAgICoKPj4+PiAgICAgKiBUZWFycyBkb3duIHRoZSBJSCBz dGF0ZSBhbmQgZnJlZXMgYnVmZmVyCj4+Pj4gICAgICogdXNlZCBmb3IgdGhlIElIIHJpbmcgYnVm ZmVyLgo+Pj4+ICAgICAqLwo+Pj4+IC12b2lkIGFtZGdwdV9paF9yaW5nX2Zpbmkoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYpCj4+Pj4gK3ZvaWQgYW1kZ3B1X2loX3JpbmdfZmluaShzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0Cj4+Pj4gK2FtZGdwdV9paF9yaW5nICppaCkKPj4+ PiAgICB7Cj4+Pj4gLQlpZiAoYWRldi0+aXJxLmloLnVzZV9idXNfYWRkcikgewo+Pj4+IC0JCWlm IChhZGV2LT5pcnEuaWgucmluZykgewo+Pj4+IC0JCQkvKiBhZGQgOCBieXRlcyBmb3IgdGhlIHJw dHIvd3B0ciBzaGFkb3dzIGFuZAo+Pj4+IC0JCQkgKiBhZGQgdGhlbSB0byB0aGUgZW5kIG9mIHRo ZSByaW5nIGFsbG9jYXRpb24uCj4+Pj4gLQkJCSAqLwo+Pj4+IC0JCQlwY2lfZnJlZV9jb25zaXN0 ZW50KGFkZXYtPnBkZXYsIGFkZXYtCj4+PiBpcnEuaWgucmluZ19zaXplICsgOCwKPj4+PiAtCQkJ CQkgICAgKHZvaWQgKilhZGV2LT5pcnEuaWgucmluZywKPj4+PiAtCQkJCQkgICAgYWRldi0+aXJx LmloLnJiX2RtYV9hZGRyKTsKPj4+PiAtCQkJYWRldi0+aXJxLmloLnJpbmcgPSBOVUxMOwo+Pj4+ IC0JCX0KPj4+PiArCWlmIChpaC0+dXNlX2J1c19hZGRyKSB7Cj4+Pj4gKwkJaWYgKCFpaC0+cmlu ZykKPj4+PiArCQkJcmV0dXJuOwo+Pj4+ICsKPj4+PiArCQkvKiBhZGQgOCBieXRlcyBmb3IgdGhl IHJwdHIvd3B0ciBzaGFkb3dzIGFuZAo+Pj4+ICsJCSAqIGFkZCB0aGVtIHRvIHRoZSBlbmQgb2Yg dGhlIHJpbmcgYWxsb2NhdGlvbi4KPj4+PiArCQkgKi8KPj4+PiArCQlkbWFfZnJlZV9jb2hlcmVu dChhZGV2LT5kZXYsIGloLT5yaW5nX3NpemUgKyA4LAo+Pj4+ICsJCQkJICAodm9pZCAqKWloLT5y aW5nLCBpaC0+cmJfZG1hX2FkZHIpOwo+Pj4+ICsJCWloLT5yaW5nID0gTlVMTDsKPj4+PiAgICAJ fSBlbHNlIHsKPj4+PiAtCQlhbWRncHVfYm9fZnJlZV9rZXJuZWwoJmFkZXYtPmlycS5paC5yaW5n X29iaiwKPj4+PiAtCQkJCSAgICAgICZhZGV2LT5pcnEuaWguZ3B1X2FkZHIsCj4+Pj4gLQkJCQkg ICAgICAodm9pZCAqKikmYWRldi0+aXJxLmloLnJpbmcpOwo+Pj4+IC0JCWFtZGdwdV9kZXZpY2Vf d2JfZnJlZShhZGV2LCBhZGV2LT5pcnEuaWgud3B0cl9vZmZzKTsKPj4+PiAtCQlhbWRncHVfZGV2 aWNlX3diX2ZyZWUoYWRldiwgYWRldi0+aXJxLmloLnJwdHJfb2Zmcyk7Cj4+Pj4gKwkJYW1kZ3B1 X2JvX2ZyZWVfa2VybmVsKCZpaC0+cmluZ19vYmosICZpaC0+Z3B1X2FkZHIsCj4+Pj4gKwkJCQkg ICAgICAodm9pZCAqKikmaWgtPnJpbmcpOwo+Pj4+ICsJCWFtZGdwdV9kZXZpY2Vfd2JfZnJlZShh ZGV2LCBpaC0+d3B0cl9vZmZzKTsKPj4+PiArCQlhbWRncHVfZGV2aWNlX3diX2ZyZWUoYWRldiwg aWgtPnJwdHJfb2Zmcyk7Cj4+Pj4gICAgCX0KPj4+PiAgICB9Cj4+Pj4KPj4+PiBAQCAtMTQyLDU2 ICsxMjQsNTYgQEAgdm9pZCBhbWRncHVfaWhfcmluZ19maW5pKHN0cnVjdAo+PiBhbWRncHVfZGV2 aWNlICphZGV2KQo+Pj4+ICAgICAqIGFtZGdwdV9paF9wcm9jZXNzIC0gaW50ZXJydXB0IGhhbmRs ZXIKPj4+PiAgICAgKgo+Pj4+ICAgICAqIEBhZGV2OiBhbWRncHVfZGV2aWNlIHBvaW50ZXIKPj4+ PiArICogQGloOiBpaCByaW5nIHRvIHByb2Nlc3MKPj4+PiAgICAgKgo+Pj4+ICAgICAqIEludGVy cnVwdCBoYW5kZXIgKFZJKSwgd2FsayB0aGUgSUggcmluZy4KPj4+PiAgICAgKiBSZXR1cm5zIGly cSBwcm9jZXNzIHJldHVybiBjb2RlLgo+Pj4+ICAgICAqLwo+Pj4+IC1pbnQgYW1kZ3B1X2loX3By b2Nlc3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4+Pj4gK2ludCBhbWRncHVfaWhfcHJv Y2VzcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0Cj4+Pj4gK2FtZGdwdV9paF9y aW5nICppaCkKPj4+PiAgICB7Cj4+Pj4gICAgCXN0cnVjdCBhbWRncHVfaXZfZW50cnkgZW50cnk7 Cj4+Pj4gICAgCXUzMiB3cHRyOwo+Pj4+Cj4+Pj4gLQlpZiAoIWFkZXYtPmlycS5paC5lbmFibGVk IHx8IGFkZXYtPnNodXRkb3duKQo+Pj4+ICsJaWYgKCFpaC0+ZW5hYmxlZCB8fCBhZGV2LT5zaHV0 ZG93bikKPj4+PiAgICAJCXJldHVybiBJUlFfTk9ORTsKPj4+Pgo+Pj4+ICAgIAl3cHRyID0gYW1k Z3B1X2loX2dldF93cHRyKGFkZXYpOwo+Pj4+Cj4+Pj4gICAgcmVzdGFydF9paDoKPj4+PiAgICAJ LyogaXMgc29tZWJvZHkgZWxzZSBhbHJlYWR5IHByb2Nlc3NpbmcgaXJxcz8gKi8KPj4+PiAtCWlm IChhdG9taWNfeGNoZygmYWRldi0+aXJxLmloLmxvY2ssIDEpKQo+Pj4+ICsJaWYgKGF0b21pY194 Y2hnKCZpaC0+bG9jaywgMSkpCj4+Pj4gICAgCQlyZXR1cm4gSVJRX05PTkU7Cj4+Pj4KPj4+PiAt CURSTV9ERUJVRygiJXM6IHJwdHIgJWQsIHdwdHIgJWRcbiIsIF9fZnVuY19fLCBhZGV2LT5pcnEu aWgucnB0ciwKPj4gd3B0cik7Cj4+Pj4gKwlEUk1fREVCVUcoIiVzOiBycHRyICVkLCB3cHRyICVk XG4iLCBfX2Z1bmNfXywgaWgtPnJwdHIsIHdwdHIpOwo+Pj4+Cj4+Pj4gICAgCS8qIE9yZGVyIHJl YWRpbmcgb2Ygd3B0ciB2cy4gcmVhZGluZyBvZiBJSCByaW5nIGRhdGEgKi8KPj4+PiAgICAJcm1i KCk7Cj4+Pj4KPj4+PiAtCXdoaWxlIChhZGV2LT5pcnEuaWgucnB0ciAhPSB3cHRyKSB7Cj4+Pj4g LQkJdTMyIHJpbmdfaW5kZXggPSBhZGV2LT5pcnEuaWgucnB0ciA+PiAyOwo+Pj4+ICsJd2hpbGUg KGloLT5ycHRyICE9IHdwdHIpIHsKPj4+PiArCQl1MzIgcmluZ19pbmRleCA9IGloLT5ycHRyID4+ IDI7Cj4+Pj4KPj4+PiAgICAJCS8qIFByZXNjcmVlbmluZyBvZiBoaWdoLWZyZXF1ZW5jeSBpbnRl cnJ1cHRzICovCj4+Pj4gICAgCQlpZiAoIWFtZGdwdV9paF9wcmVzY3JlZW5faXYoYWRldikpIHsK Pj4+PiAtCQkJYWRldi0+aXJxLmloLnJwdHIgJj0gYWRldi0+aXJxLmloLnB0cl9tYXNrOwo+Pj4+ ICsJCQlpaC0+cnB0ciAmPSBpaC0+cHRyX21hc2s7Cj4+Pj4gICAgCQkJY29udGludWU7Cj4+Pj4g ICAgCQl9Cj4+Pj4KPj4+PiAgICAJCS8qIEJlZm9yZSBkaXNwYXRjaGluZyBpcnEgdG8gSVAgYmxv Y2tzLCBzZW5kIGl0IHRvIGFtZGtmZCAqLwo+Pj4+ICAgIAkJYW1kZ3B1X2FtZGtmZF9pbnRlcnJ1 cHQoYWRldiwKPj4+PiAtCQkJCShjb25zdCB2b2lkICopICZhZGV2LT5pcnEuaWgucmluZ1tyaW5n X2luZGV4XSk7Cj4+Pj4gKwkJCQkJKGNvbnN0IHZvaWQgKikgJmloLT5yaW5nW3JpbmdfaW5kZXhd KTsKPj4+Pgo+Pj4+IC0JCWVudHJ5Lml2X2VudHJ5ID0gKGNvbnN0IHVpbnQzMl90ICopCj4+Pj4g LQkJCSZhZGV2LT5pcnEuaWgucmluZ1tyaW5nX2luZGV4XTsKPj4+PiArCQllbnRyeS5pdl9lbnRy eSA9IChjb25zdCB1aW50MzJfdCAqKSZpaC0+cmluZ1tyaW5nX2luZGV4XTsKPj4+PiAgICAJCWFt ZGdwdV9paF9kZWNvZGVfaXYoYWRldiwgJmVudHJ5KTsKPj4+PiAtCQlhZGV2LT5pcnEuaWgucnB0 ciAmPSBhZGV2LT5pcnEuaWgucHRyX21hc2s7Cj4+Pj4gKwkJaWgtPnJwdHIgJj0gaWgtPnB0cl9t YXNrOwo+Pj4+Cj4+Pj4gICAgCQlhbWRncHVfaXJxX2Rpc3BhdGNoKGFkZXYsICZlbnRyeSk7Cj4+ Pj4gICAgCX0KPj4+PiAgICAJYW1kZ3B1X2loX3NldF9ycHRyKGFkZXYpOwo+Pj4+IC0JYXRvbWlj X3NldCgmYWRldi0+aXJxLmloLmxvY2ssIDApOwo+Pj4+ICsJYXRvbWljX3NldCgmaWgtPmxvY2ss IDApOwo+Pj4+Cj4+Pj4gICAgCS8qIG1ha2Ugc3VyZSB3cHRyIGhhc24ndCBjaGFuZ2VkIHdoaWxl IHByb2Nlc3NpbmcgKi8KPj4+PiAgICAJd3B0ciA9IGFtZGdwdV9paF9nZXRfd3B0cihhZGV2KTsK Pj4+PiAtCWlmICh3cHRyICE9IGFkZXYtPmlycS5paC5ycHRyKQo+Pj4+ICsJaWYgKHdwdHIgIT0g aWgtPnJwdHIpCj4+Pj4gICAgCQlnb3RvIHJlc3RhcnRfaWg7Cj4+Pj4KPj4+PiAgICAJcmV0dXJu IElSUV9IQU5ETEVEOwo+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfaWguaAo+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2lo LmgKPj4+PiBpbmRleCAwZDViM2Y1MjAxZDIuLjNlNTVmOTg1MDA1YyAxMDA2NDQKPj4+PiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaWguaAo+Pj4+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9paC5oCj4+Pj4gQEAgLTgyLDkgKzgyLDkgQEAg c3RydWN0IGFtZGdwdV9paF9mdW5jcyB7Cj4+Pj4gICAgI2RlZmluZSBhbWRncHVfaWhfZGVjb2Rl X2l2KGFkZXYsIGl2KSAoYWRldiktPmlycS5paF9mdW5jcy0KPj4+IGRlY29kZV9pdigoYWRldiks IChpdikpCj4+Pj4gICAgI2RlZmluZSBhbWRncHVfaWhfc2V0X3JwdHIoYWRldikKPj4+PiAoYWRl diktPmlycS5paF9mdW5jcy0+c2V0X3JwdHIoKGFkZXYpKQo+Pj4+Cj4+Pj4gLWludCBhbWRncHVf aWhfcmluZ19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1bnNpZ25lZAo+PiByaW5n X3NpemUsCj4+Pj4gLQkJCWJvb2wgdXNlX2J1c19hZGRyKTsKPj4+PiAtdm9pZCBhbWRncHVfaWhf cmluZ19maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsgLWludAo+Pj4+IGFtZGdwdV9p aF9wcm9jZXNzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKPj4+PiAraW50IGFtZGdwdV9p aF9yaW5nX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdAo+PiBhbWRncHVf aWhfcmluZyAqaWgsCj4+Pj4gKwkJCXVuc2lnbmVkIHJpbmdfc2l6ZSwgYm9vbCB1c2VfYnVzX2Fk ZHIpOyB2b2lkCj4+Pj4gK2FtZGdwdV9paF9yaW5nX2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYsIHN0cnVjdAo+Pj4+ICthbWRncHVfaWhfcmluZyAqaWgpOyBpbnQgYW1kZ3B1X2loX3By b2Nlc3Moc3RydWN0IGFtZGdwdV9kZXZpY2UKPj4+PiArKmFkZXYsIHN0cnVjdCBhbWRncHVfaWhf cmluZyAqaWgpOwo+Pj4+Cj4+Pj4gICAgI2VuZGlmCj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9pcnEuYwo+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2lycS5jCj4+Pj4gaW5kZXggYjkyN2U4Nzk4NTM0Li5hYWE4NTQ1ZTQ1 OGEgMTAwNjQ0Cj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ly cS5jCj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2lycS5jCj4+ Pj4gQEAgLTE2Myw3ICsxNjMsNyBAQCBpcnFyZXR1cm5fdCBhbWRncHVfaXJxX2hhbmRsZXIoaW50 IGlycSwgdm9pZCAqYXJnKQo+Pj4+ICAgIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGRl di0+ZGV2X3ByaXZhdGU7Cj4+Pj4gICAgCWlycXJldHVybl90IHJldDsKPj4+Pgo+Pj4+IC0JcmV0 ID0gYW1kZ3B1X2loX3Byb2Nlc3MoYWRldik7Cj4+Pj4gKwlyZXQgPSBhbWRncHVfaWhfcHJvY2Vz cyhhZGV2LCAmYWRldi0+aXJxLmloKTsKPj4+PiAgICAJaWYgKHJldCA9PSBJUlFfSEFORExFRCkK Pj4+PiAgICAJCXBtX3J1bnRpbWVfbWFya19sYXN0X2J1c3koZGV2LT5kZXYpOwo+Pj4+ICAgIAly ZXR1cm4gcmV0Owo+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9j aWtfaWguYwo+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvY2lrX2loLmMKPj4+PiBp bmRleCBlNzUxODNlMDk4MjAuLmMzN2M0Yjc2ZTdlOSAxMDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9jaWtfaWguYwo+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2Npa19paC5jCj4+Pj4gQEAgLTMxOCw3ICszMTgsNyBAQCBzdGF0aWMgaW50IGNp a19paF9zd19pbml0KHZvaWQgKmhhbmRsZSkKPj4+PiAgICAJaW50IHI7Cj4+Pj4gICAgCXN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwo+ Pj4+Cj4+Pj4gLQlyID0gYW1kZ3B1X2loX3JpbmdfaW5pdChhZGV2LCA2NCAqIDEwMjQsIGZhbHNl KTsKPj4+PiArCXIgPSBhbWRncHVfaWhfcmluZ19pbml0KGFkZXYsICZhZGV2LT5pcnEuaWgsIDY0 ICogMTAyNCwgZmFsc2UpOwo+Pj4+ICAgIAlpZiAocikKPj4+PiAgICAJCXJldHVybiByOwo+Pj4+ Cj4+Pj4gQEAgLTMzMiw3ICszMzIsNyBAQCBzdGF0aWMgaW50IGNpa19paF9zd19maW5pKHZvaWQg KmhhbmRsZSkKPj4+PiAgICAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKiloYW5kbGU7Cj4+Pj4KPj4+PiAgICAJYW1kZ3B1X2lycV9maW5pKGFkZXYp Owo+Pj4+IC0JYW1kZ3B1X2loX3JpbmdfZmluaShhZGV2KTsKPj4+PiArCWFtZGdwdV9paF9yaW5n X2ZpbmkoYWRldiwgJmFkZXYtPmlycS5paCk7Cj4+Pj4gICAgCWFtZGdwdV9pcnFfcmVtb3ZlX2Rv bWFpbihhZGV2KTsKPj4+Pgo+Pj4+ICAgIAlyZXR1cm4gMDsKPj4+PiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvY3pfaWguYwo+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvY3pfaWguYwo+Pj4+IGluZGV4IDkzODVkYTFlMWU0MC4uMzA2ZTBiZDE1NGZhIDEw MDY0NAo+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2N6X2loLmMKPj4+PiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jel9paC5jCj4+Pj4gQEAgLTI5Nyw3ICsy OTcsNyBAQCBzdGF0aWMgaW50IGN6X2loX3N3X2luaXQodm9pZCAqaGFuZGxlKQo+Pj4+ICAgIAlp bnQgcjsKPj4+PiAgICAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdw dV9kZXZpY2UgKiloYW5kbGU7Cj4+Pj4KPj4+PiAtCXIgPSBhbWRncHVfaWhfcmluZ19pbml0KGFk ZXYsIDY0ICogMTAyNCwgZmFsc2UpOwo+Pj4+ICsJciA9IGFtZGdwdV9paF9yaW5nX2luaXQoYWRl diwgJmFkZXYtPmlycS5paCwgNjQgKiAxMDI0LCBmYWxzZSk7Cj4+Pj4gICAgCWlmIChyKQo+Pj4+ ICAgIAkJcmV0dXJuIHI7Cj4+Pj4KPj4+PiBAQCAtMzExLDcgKzMxMSw3IEBAIHN0YXRpYyBpbnQg Y3pfaWhfc3dfZmluaSh2b2lkICpoYW5kbGUpCj4+Pj4gICAgCXN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwo+Pj4+Cj4+Pj4gICAgCWFt ZGdwdV9pcnFfZmluaShhZGV2KTsKPj4+PiAtCWFtZGdwdV9paF9yaW5nX2ZpbmkoYWRldik7Cj4+ Pj4gKwlhbWRncHVfaWhfcmluZ19maW5pKGFkZXYsICZhZGV2LT5pcnEuaWgpOwo+Pj4+ICAgIAlh bWRncHVfaXJxX3JlbW92ZV9kb21haW4oYWRldik7Cj4+Pj4KPj4+PiAgICAJcmV0dXJuIDA7Cj4+ Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2ljZWxhbmRfaWguYwo+ Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvaWNlbGFuZF9paC5jCj4+Pj4gaW5kZXgg NDVlZjBhODE4ZTExLi45MDA1ZGVlZWM2MTIgMTAwNjQ0Cj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvaWNlbGFuZF9paC5jCj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvaWNlbGFuZF9paC5jCj4+Pj4gQEAgLTI5Nyw3ICsyOTcsNyBAQCBzdGF0aWMgaW50 IGljZWxhbmRfaWhfc3dfaW5pdCh2b2lkICpoYW5kbGUpCj4+Pj4gICAgCWludCByOwo+Pj4+ICAg IAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhh bmRsZTsKPj4+Pgo+Pj4+IC0JciA9IGFtZGdwdV9paF9yaW5nX2luaXQoYWRldiwgNjQgKiAxMDI0 LCBmYWxzZSk7Cj4+Pj4gKwlyID0gYW1kZ3B1X2loX3JpbmdfaW5pdChhZGV2LCAmYWRldi0+aXJx LmloLCA2NCAqIDEwMjQsIGZhbHNlKTsKPj4+PiAgICAJaWYgKHIpCj4+Pj4gICAgCQlyZXR1cm4g cjsKPj4+Pgo+Pj4+IEBAIC0zMTEsNyArMzExLDcgQEAgc3RhdGljIGludCBpY2VsYW5kX2loX3N3 X2Zpbmkodm9pZCAqaGFuZGxlKQo+Pj4+ICAgIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9 IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKPj4+Pgo+Pj4+ICAgIAlhbWRncHVfaXJx X2ZpbmkoYWRldik7Cj4+Pj4gLQlhbWRncHVfaWhfcmluZ19maW5pKGFkZXYpOwo+Pj4+ICsJYW1k Z3B1X2loX3JpbmdfZmluaShhZGV2LCAmYWRldi0+aXJxLmloKTsKPj4+PiAgICAJYW1kZ3B1X2ly cV9yZW1vdmVfZG9tYWluKGFkZXYpOwo+Pj4+Cj4+Pj4gICAgCXJldHVybiAwOwo+Pj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zaV9paC5jCj4+Pj4gYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9zaV9paC5jCj4+Pj4gaW5kZXggOTc3MTFkMzI3NTI3Li5hY2Rm NjA3NTk1N2EgMTAwNjQ0Cj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2lf aWguYwo+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NpX2loLmMKPj4+PiBA QCAtMTcwLDcgKzE3MCw3IEBAIHN0YXRpYyBpbnQgc2lfaWhfc3dfaW5pdCh2b2lkICpoYW5kbGUp Cj4+Pj4gICAgCWludCByOwo+Pj4+ICAgIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKPj4+Pgo+Pj4+IC0JciA9IGFtZGdwdV9paF9y aW5nX2luaXQoYWRldiwgNjQgKiAxMDI0LCBmYWxzZSk7Cj4+Pj4gKwlyID0gYW1kZ3B1X2loX3Jp bmdfaW5pdChhZGV2LCAmYWRldi0+aXJxLmloLCA2NCAqIDEwMjQsIGZhbHNlKTsKPj4+PiAgICAJ aWYgKHIpCj4+Pj4gICAgCQlyZXR1cm4gcjsKPj4+Pgo+Pj4+IEBAIC0xODIsNyArMTgyLDcgQEAg c3RhdGljIGludCBzaV9paF9zd19maW5pKHZvaWQgKmhhbmRsZSkKPj4+PiAgICAJc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7Cj4+Pj4K Pj4+PiAgICAJYW1kZ3B1X2lycV9maW5pKGFkZXYpOwo+Pj4+IC0JYW1kZ3B1X2loX3JpbmdfZmlu aShhZGV2KTsKPj4+PiArCWFtZGdwdV9paF9yaW5nX2ZpbmkoYWRldiwgJmFkZXYtPmlycS5paCk7 Cj4+Pj4KPj4+PiAgICAJcmV0dXJuIDA7Cj4+Pj4gICAgfQo+Pj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS90b25nYV9paC5jCj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS90b25nYV9paC5jCj4+Pj4gaW5kZXggYTc5YTM3NzY4ODhhLi44M2ZkZjgxMGZm YzcgMTAwNjQ0Cj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdG9uZ2FfaWgu Ywo+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3RvbmdhX2loLmMKPj4+PiBA QCAtMzE3LDcgKzMxNyw3IEBAIHN0YXRpYyBpbnQgdG9uZ2FfaWhfc3dfaW5pdCh2b2lkICpoYW5k bGUpCj4+Pj4gICAgCWludCByOwo+Pj4+ICAgIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9 IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKPj4+Pgo+Pj4+IC0JciA9IGFtZGdwdV9p aF9yaW5nX2luaXQoYWRldiwgNjQgKiAxMDI0LCB0cnVlKTsKPj4+PiArCXIgPSBhbWRncHVfaWhf cmluZ19pbml0KGFkZXYsICZhZGV2LT5pcnEuaWgsIDY0ICogMTAyNCwgdHJ1ZSk7Cj4+Pj4gICAg CWlmIChyKQo+Pj4+ICAgIAkJcmV0dXJuIHI7Cj4+Pj4KPj4+PiBAQCAtMzM0LDcgKzMzNCw3IEBA IHN0YXRpYyBpbnQgdG9uZ2FfaWhfc3dfZmluaSh2b2lkICpoYW5kbGUpCj4+Pj4gICAgCXN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwo+ Pj4+Cj4+Pj4gICAgCWFtZGdwdV9pcnFfZmluaShhZGV2KTsKPj4+PiAtCWFtZGdwdV9paF9yaW5n X2ZpbmkoYWRldik7Cj4+Pj4gKwlhbWRncHVfaWhfcmluZ19maW5pKGFkZXYsICZhZGV2LT5pcnEu aWgpOwo+Pj4+ICAgIAlhbWRncHVfaXJxX3JlbW92ZV9kb21haW4oYWRldik7Cj4+Pj4KPj4+PiAg ICAJcmV0dXJuIDA7Cj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L3ZlZ2ExMF9paC5jCj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92ZWdhMTBfaWgu Ywo+Pj4+IGluZGV4IDM3NDg3YjRjYmQ2ZS4uYTk5ZjcxNzk3YWEzIDEwMDY0NAo+Pj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3ZlZ2ExMF9paC5jCj4+Pj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvdmVnYTEwX2loLmMKPj4+PiBAQCAtMzgwLDcgKzM4MCw3IEBA IHN0YXRpYyBpbnQgdmVnYTEwX2loX3N3X2luaXQodm9pZCAqaGFuZGxlKQo+Pj4+ICAgIAlpbnQg cjsKPj4+PiAgICAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKiloYW5kbGU7Cj4+Pj4KPj4+PiAtCXIgPSBhbWRncHVfaWhfcmluZ19pbml0KGFkZXYs IDI1NiAqIDEwMjQsIHRydWUpOwo+Pj4+ICsJciA9IGFtZGdwdV9paF9yaW5nX2luaXQoYWRldiwg JmFkZXYtPmlycS5paCwgMjU2ICogMTAyNCwgdHJ1ZSk7Cj4+Pj4gICAgCWlmIChyKQo+Pj4+ICAg IAkJcmV0dXJuIHI7Cj4+Pj4KPj4+PiBAQCAtMzk3LDcgKzM5Nyw3IEBAIHN0YXRpYyBpbnQgdmVn YTEwX2loX3N3X2Zpbmkodm9pZCAqaGFuZGxlKQo+Pj4+ICAgIAlzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKPj4+Pgo+Pj4+ICAgIAlh bWRncHVfaXJxX2ZpbmkoYWRldik7Cj4+Pj4gLQlhbWRncHVfaWhfcmluZ19maW5pKGFkZXYpOwo+ Pj4+ICsJYW1kZ3B1X2loX3JpbmdfZmluaShhZGV2LCAmYWRldi0+aXJxLmloKTsKPj4+Pgo+Pj4+ ICAgIAlyZXR1cm4gMDsKPj4+PiAgICB9Cj4+Pj4gLS0KPj4+PiAyLjE0LjEKPj4+Pgo+Pj4+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+Pj4gYW1kLWdm eCBtYWlsaW5nIGxpc3QKPj4+PiBhbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+Pj4+IGh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWls aW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==