From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Grodzovsky, Andrey" Subject: Re: [PATCH v5 3/6] drm/scheduler: rework job destruction Date: Tue, 23 Apr 2019 14:26:04 +0000 Message-ID: <2fa87715-ed8e-1a57-db41-3f7ef928165f@amd.com> References: <1555599624-12285-1-git-send-email-andrey.grodzovsky@amd.com> <1555599624-12285-3-git-send-email-andrey.grodzovsky@amd.com> <9f7112b1-0348-b4f6-374d-e44c0d448112@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <9f7112b1-0348-b4f6-374d-e44c0d448112-5C7GfCeVMHo@public.gmane.org> Content-Language: en-US Content-ID: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: "Zhou, David(ChunMing)" , "dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , "eric-WhKQ6XTQaPysTnJN9+BGXg@public.gmane.org" , "etnaviv-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , "ckoenig.leichtzumerken-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org" Cc: "Kazlauskas, Nicholas" , "Koenig, Christian" List-Id: dri-devel@lists.freedesktop.org DQpPbiA0LzIyLzE5IDg6NDggQU0sIENodW5taW5nIFpob3Ugd3JvdGU6DQo+IEhpIEFuZHJleSwN Cj4NCj4gc3RhdGljIHZvaWQgZHJtX3NjaGVkX3Byb2Nlc3Nfam9iKHN0cnVjdCBkbWFfZmVuY2Ug KmYsIHN0cnVjdA0KPiBkbWFfZmVuY2VfY2IgKmNiKQ0KPiB7DQo+IC4uLg0KPiAgIMKgwqDCoMKg wqDCoMKgIHNwaW5fbG9ja19pcnFzYXZlKCZzY2hlZC0+am9iX2xpc3RfbG9jaywgZmxhZ3MpOw0K PiAgIMKgwqDCoMKgwqDCoMKgIC8qIHJlbW92ZSBqb2IgZnJvbSByaW5nX21pcnJvcl9saXN0ICov DQo+ICAgwqDCoMKgwqDCoMKgwqAgbGlzdF9kZWxfaW5pdCgmc19qb2ItPm5vZGUpOw0KPiAgIMKg wqDCoMKgwqDCoMKgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNjaGVkLT5qb2JfbGlzdF9sb2Nr LCBmbGFncyk7DQo+IFtEYXZpZF0gSG93IGFib3V0IGp1c3QgcmVtb3ZlIGFib3ZlIHRvIHdvcmtl ciBmcm9tIGlycSBwcm9jZXNzPyBBbnkNCj4gcHJvYmxlbT8gTWF5YmUgSSBtaXNzZWQgcHJldmlv dXMgeW91ciBkaXNjdXNzaW9uLCBidXQgSSB0aGluayByZW1vdmluZw0KPiBsb2NrIGZvciBsaXN0 IGlzIGEgcmlzayBmb3IgZnV0dXJlIG1haW50ZW5hbmNlIGFsdGhvdWdoIHlvdSBtYWtlIHN1cmUN Cj4gdGhyZWFkIHNhZmUgY3VycmVudGx5Lg0KPg0KPiAtRGF2aWQNCg0KDQpXZSByZW1vdmUgdGhl IGxvY2sgZXhhY3RseSBiZWNhdXNlIG9mIHRoZSBmYWN0IHRoYXQgaW5zZXJ0aW9uIGFuZCANCnJl bW92YWwgdG8vZnJvbSB0aGUgbGlzdCB3aWxsIGJlIGRvbmUgZm9ybSBleGFjdGx5IG9uZSB0aHJl YWQgYXQgYW50IA0KdGltZSBub3cuIFNvIEkgYW0gbm90IHN1cmUgSSB1bmRlcnN0YW5kIHdoYXQg eW91IG1lYW4uDQoNCkFuZHJleQ0KDQoNCj4NCj4gLi4uDQo+DQo+ICAgwqDCoMKgwqDCoMKgwqAg c2NoZWR1bGVfd29yaygmc19qb2ItPmZpbmlzaF93b3JrKTsNCj4gfQ0KPg0KPiDlnKggMjAxOS80 LzE4IDIzOjAwLCBBbmRyZXkgR3JvZHpvdnNreSDlhpnpgZM6DQo+PiBGcm9tOiBDaHJpc3RpYW4g S8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+DQo+Pg0KPj4gV2Ugbm93IGRlc3Ryb3kg ZmluaXNoZWQgam9icyBmcm9tIHRoZSB3b3JrZXIgdGhyZWFkIHRvIG1ha2Ugc3VyZSB0aGF0DQo+ PiB3ZSBuZXZlciBkZXN0cm95IGEgam9iIGN1cnJlbnRseSBpbiB0aW1lb3V0IHByb2Nlc3Npbmcu DQo+PiBCeSB0aGlzIHdlIGF2b2lkIGhvbGRpbmcgbG9jayBhcm91bmQgcmluZyBtaXJyb3IgbGlz dCBpbiBkcm1fc2NoZWRfc3RvcA0KPj4gd2hpY2ggc2hvdWxkIHNvbHZlIGEgZGVhZGxvY2sgcmVw b3J0ZWQgYnkgYSB1c2VyLg0KPj4NCj4+IHYyOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlLg0KPj4g djQ6IE1vdmUgZ3VpbHR5IGpvYiBmcmVlIGludG8gc2NoZWQgY29kZS4NCj4+IHY1Og0KPj4gTW92 ZSBzY2hlZC0+aHdfcnFfY291bnQgdG8gZHJtX3NjaGVkX3N0YXJ0IHRvIGFjY291bnQgZm9yIGNv dW50ZXINCj4+IGRlY3JlbWVudCBpbiBkcm1fc2NoZWRfc3RvcCBldmVuIHdoZW4gd2UgZG9uJ3Qg Y2FsbCByZXN1Ym1pdCBqb2JzDQo+PiBpZiBndWlseSBqb2IgZGlkIHNpZ25hbC4NCj4+DQo+PiBC dWd6aWxsYTogaHR0cHM6Ly9idWdzLmZyZWVkZXNrdG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5 NjkyDQo+Pg0KPj4gU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtv ZW5pZ0BhbWQuY29tPg0KPj4gU2lnbmVkLW9mZi1ieTogQW5kcmV5IEdyb2R6b3Zza3kgPGFuZHJl eS5ncm9kem92c2t5QGFtZC5jb20+DQo+PiAtLS0NCj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9kZXZpY2UuYyB8ICAgOSArLQ0KPj4gICAgZHJpdmVycy9ncHUvZHJtL2V0 bmF2aXYvZXRuYXZpdl9kdW1wLmMgICAgIHwgICA0IC0NCj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9l dG5hdml2L2V0bmF2aXZfc2NoZWQuYyAgICB8ICAgMiArLQ0KPj4gICAgZHJpdmVycy9ncHUvZHJt L2xpbWEvbGltYV9zY2hlZC5jICAgICAgICAgIHwgICAyICstDQo+PiAgICBkcml2ZXJzL2dwdS9k cm0vcGFuZnJvc3QvcGFuZnJvc3Rfam9iLmMgICAgfCAgIDIgKy0NCj4+ICAgIGRyaXZlcnMvZ3B1 L2RybS9zY2hlZHVsZXIvc2NoZWRfbWFpbi5jICAgICB8IDE1OSArKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLQ0KPj4gICAgZHJpdmVycy9ncHUvZHJtL3YzZC92M2Rfc2NoZWQuYyAgICAgICAg ICAgIHwgICAyICstDQo+PiAgICBpbmNsdWRlL2RybS9ncHVfc2NoZWR1bGVyLmggICAgICAgICAg ICAgICAgfCAgIDYgKy0NCj4+ICAgIDggZmlsZXMgY2hhbmdlZCwgMTAyIGluc2VydGlvbnMoKyks IDg0IGRlbGV0aW9ucygtKQ0KPj4NCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfZGV2aWNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfZGV2aWNlLmMNCj4+IGluZGV4IDdjZWUyNjkuLmEwZTE2NWMgMTAwNjQ0DQo+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMNCj4+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYw0KPj4gQEAgLTMzMzQsNyArMzMz NCw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2RldmljZV9wcmVfYXNpY19yZXNldChzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldiwNCj4+ICAgIAkJaWYgKCFyaW5nIHx8ICFyaW5nLT5zY2hlZC50aHJl YWQpDQo+PiAgICAJCQljb250aW51ZTsNCj4+ICAgIA0KPj4gLQkJZHJtX3NjaGVkX3N0b3AoJnJp bmctPnNjaGVkKTsNCj4+ICsJCWRybV9zY2hlZF9zdG9wKCZyaW5nLT5zY2hlZCwgJmpvYi0+YmFz ZSk7DQo+PiAgICANCj4+ICAgIAkJLyogYWZ0ZXIgYWxsIGh3IGpvYnMgYXJlIHJlc2V0LCBodyBm ZW5jZSBpcyBtZWFuaW5nbGVzcywgc28gZm9yY2VfY29tcGxldGlvbiAqLw0KPj4gICAgCQlhbWRn cHVfZmVuY2VfZHJpdmVyX2ZvcmNlX2NvbXBsZXRpb24ocmluZyk7DQo+PiBAQCAtMzM0Myw4ICsz MzQzLDYgQEAgc3RhdGljIGludCBhbWRncHVfZGV2aWNlX3ByZV9hc2ljX3Jlc2V0KHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2LA0KPj4gICAgCWlmKGpvYikNCj4+ICAgIAkJZHJtX3NjaGVkX2lu Y3JlYXNlX2thcm1hKCZqb2ItPmJhc2UpOw0KPj4gICAgDQo+PiAtDQo+PiAtDQo+PiAgICAJaWYg KCFhbWRncHVfc3Jpb3ZfdmYoYWRldikpIHsNCj4+ICAgIA0KPj4gICAgCQlpZiAoIW5lZWRfZnVs bF9yZXNldCkNCj4+IEBAIC0zNDgyLDggKzM0ODAsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV9kb19h c2ljX3Jlc2V0KHN0cnVjdCBhbWRncHVfaGl2ZV9pbmZvICpoaXZlLA0KPj4gICAgCXJldHVybiBy Ow0KPj4gICAgfQ0KPj4gICAgDQo+PiAtc3RhdGljIHZvaWQgYW1kZ3B1X2RldmljZV9wb3N0X2Fz aWNfcmVzZXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsDQo+PiAtCQkJCQkgIHN0cnVjdCBh bWRncHVfam9iICpqb2IpDQo+PiArc3RhdGljIHZvaWQgYW1kZ3B1X2RldmljZV9wb3N0X2FzaWNf cmVzZXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpDQo+PiAgICB7DQo+PiAgICAJaW50IGk7 DQo+PiAgICANCj4+IEBAIC0zNjIzLDcgKzM2MjAsNyBAQCBpbnQgYW1kZ3B1X2RldmljZV9ncHVf cmVjb3ZlcihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwNCj4+ICAgIA0KPj4gICAgCS8qIFBv c3QgQVNJQyByZXNldCBmb3IgYWxsIGRldnMgLiovDQo+PiAgICAJbGlzdF9mb3JfZWFjaF9lbnRy eSh0bXBfYWRldiwgZGV2aWNlX2xpc3RfaGFuZGxlLCBnbWMueGdtaS5oZWFkKSB7DQo+PiAtCQlh bWRncHVfZGV2aWNlX3Bvc3RfYXNpY19yZXNldCh0bXBfYWRldiwgdG1wX2FkZXYgPT0gYWRldiA/ IGpvYiA6IE5VTEwpOw0KPj4gKwkJYW1kZ3B1X2RldmljZV9wb3N0X2FzaWNfcmVzZXQodG1wX2Fk ZXYpOw0KPj4gICAgDQo+PiAgICAJCWlmIChyKSB7DQo+PiAgICAJCQkvKiBiYWQgbmV3cywgaG93 IHRvIHRlbGwgaXQgdG8gdXNlcnNwYWNlID8gKi8NCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vZXRuYXZpdi9ldG5hdml2X2R1bXAuYyBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0 bmF2aXZfZHVtcC5jDQo+PiBpbmRleCAzMzg1NGM5Li41Nzc4ZDljIDEwMDY0NA0KPj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9kdW1wLmMNCj4+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZHVtcC5jDQo+PiBAQCAtMTM1LDEzICsxMzUsMTEgQEAg dm9pZCBldG5hdml2X2NvcmVfZHVtcChzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSkNCj4+ICAgIAkJ ICAgIG1tdV9zaXplICsgZ3B1LT5idWZmZXIuc2l6ZTsNCj4+ICAgIA0KPj4gICAgCS8qIEFkZCBp biB0aGUgYWN0aXZlIGNvbW1hbmQgYnVmZmVycyAqLw0KPj4gLQlzcGluX2xvY2tfaXJxc2F2ZSgm Z3B1LT5zY2hlZC5qb2JfbGlzdF9sb2NrLCBmbGFncyk7DQo+PiAgICAJbGlzdF9mb3JfZWFjaF9l bnRyeShzX2pvYiwgJmdwdS0+c2NoZWQucmluZ19taXJyb3JfbGlzdCwgbm9kZSkgew0KPj4gICAg CQlzdWJtaXQgPSB0b19ldG5hdml2X3N1Ym1pdChzX2pvYik7DQo+PiAgICAJCWZpbGVfc2l6ZSAr PSBzdWJtaXQtPmNtZGJ1Zi5zaXplOw0KPj4gICAgCQluX29iaisrOw0KPj4gICAgCX0NCj4+IC0J c3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZ3B1LT5zY2hlZC5qb2JfbGlzdF9sb2NrLCBmbGFncyk7 DQo+PiAgICANCj4+ICAgIAkvKiBBZGQgaW4gdGhlIGFjdGl2ZSBidWZmZXIgb2JqZWN0cyAqLw0K Pj4gICAgCWxpc3RfZm9yX2VhY2hfZW50cnkodnJhbSwgJmdwdS0+bW11LT5tYXBwaW5ncywgbW11 X25vZGUpIHsNCj4+IEBAIC0xODMsMTQgKzE4MSwxMiBAQCB2b2lkIGV0bmF2aXZfY29yZV9kdW1w KHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1KQ0KPj4gICAgCQkJICAgICAgZ3B1LT5idWZmZXIuc2l6 ZSwNCj4+ICAgIAkJCSAgICAgIGV0bmF2aXZfY21kYnVmX2dldF92YSgmZ3B1LT5idWZmZXIpKTsN Cj4+ICAgIA0KPj4gLQlzcGluX2xvY2tfaXJxc2F2ZSgmZ3B1LT5zY2hlZC5qb2JfbGlzdF9sb2Nr LCBmbGFncyk7DQo+PiAgICAJbGlzdF9mb3JfZWFjaF9lbnRyeShzX2pvYiwgJmdwdS0+c2NoZWQu cmluZ19taXJyb3JfbGlzdCwgbm9kZSkgew0KPj4gICAgCQlzdWJtaXQgPSB0b19ldG5hdml2X3N1 Ym1pdChzX2pvYik7DQo+PiAgICAJCWV0bmF2aXZfY29yZV9kdW1wX21lbSgmaXRlciwgRVREVU1Q X0JVRl9DTUQsDQo+PiAgICAJCQkJICAgICAgc3VibWl0LT5jbWRidWYudmFkZHIsIHN1Ym1pdC0+ Y21kYnVmLnNpemUsDQo+PiAgICAJCQkJICAgICAgZXRuYXZpdl9jbWRidWZfZ2V0X3ZhKCZzdWJt aXQtPmNtZGJ1ZikpOw0KPj4gICAgCX0NCj4+IC0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZ3B1 LT5zY2hlZC5qb2JfbGlzdF9sb2NrLCBmbGFncyk7DQo+PiAgICANCj4+ICAgIAkvKiBSZXNlcnZl IHNwYWNlIGZvciB0aGUgYm9tYXAgKi8NCj4+ICAgIAlpZiAobl9ib21hcF9wYWdlcykgew0KPj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfc2NoZWQuYyBiL2Ry aXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfc2NoZWQuYw0KPj4gaW5kZXggNmQyNGZlYS4u YTgxM2M4MiAxMDA2NDQNCj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZf c2NoZWQuYw0KPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9zY2hlZC5j DQo+PiBAQCAtMTA5LDcgKzEwOSw3IEBAIHN0YXRpYyB2b2lkIGV0bmF2aXZfc2NoZWRfdGltZWRv dXRfam9iKHN0cnVjdCBkcm1fc2NoZWRfam9iICpzY2hlZF9qb2IpDQo+PiAgICAJfQ0KPj4gICAg DQo+PiAgICAJLyogYmxvY2sgc2NoZWR1bGVyICovDQo+PiAtCWRybV9zY2hlZF9zdG9wKCZncHUt PnNjaGVkKTsNCj4+ICsJZHJtX3NjaGVkX3N0b3AoJmdwdS0+c2NoZWQsIHNjaGVkX2pvYik7DQo+ PiAgICANCj4+ICAgIAlpZihzY2hlZF9qb2IpDQo+PiAgICAJCWRybV9zY2hlZF9pbmNyZWFzZV9r YXJtYShzY2hlZF9qb2IpOw0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9saW1hL2xp bWFfc2NoZWQuYyBiL2RyaXZlcnMvZ3B1L2RybS9saW1hL2xpbWFfc2NoZWQuYw0KPj4gaW5kZXgg OTdiZDljMS4uZGY5ODkzMSAxMDA2NDQNCj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9saW1hL2xp bWFfc2NoZWQuYw0KPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2xpbWEvbGltYV9zY2hlZC5jDQo+ PiBAQCAtMzAwLDcgKzMwMCw3IEBAIHN0YXRpYyBzdHJ1Y3QgZG1hX2ZlbmNlICpsaW1hX3NjaGVk X3J1bl9qb2Ioc3RydWN0IGRybV9zY2hlZF9qb2IgKmpvYikNCj4+ICAgIHN0YXRpYyB2b2lkIGxp bWFfc2NoZWRfaGFuZGxlX2Vycm9yX3Rhc2soc3RydWN0IGxpbWFfc2NoZWRfcGlwZSAqcGlwZSwN Cj4+ICAgIAkJCQkJIHN0cnVjdCBsaW1hX3NjaGVkX3Rhc2sgKnRhc2spDQo+PiAgICB7DQo+PiAt CWRybV9zY2hlZF9zdG9wKCZwaXBlLT5iYXNlKTsNCj4+ICsJZHJtX3NjaGVkX3N0b3AoJnBpcGUt PmJhc2UsICZ0YXNrLT5iYXNlKTsNCj4+ICAgIA0KPj4gICAgCWlmICh0YXNrKQ0KPj4gICAgCQlk cm1fc2NoZWRfaW5jcmVhc2Vfa2FybWEoJnRhc2stPmJhc2UpOw0KPj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9qb2IuYyBiL2RyaXZlcnMvZ3B1L2RybS9w YW5mcm9zdC9wYW5mcm9zdF9qb2IuYw0KPj4gaW5kZXggMGE3ZWQwNC4uYzYzMzZiNyAxMDA2NDQN Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9qb2IuYw0KPj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2pvYi5jDQo+PiBAQCAtMzg1LDcg KzM4NSw3IEBAIHN0YXRpYyB2b2lkIHBhbmZyb3N0X2pvYl90aW1lZG91dChzdHJ1Y3QgZHJtX3Nj aGVkX2pvYiAqc2NoZWRfam9iKQ0KPj4gICAgCQlzY2hlZF9qb2IpOw0KPj4gICAgDQo+PiAgICAJ Zm9yIChpID0gMDsgaSA8IE5VTV9KT0JfU0xPVFM7IGkrKykNCj4+IC0JCWRybV9zY2hlZF9zdG9w KCZwZmRldi0+anMtPnF1ZXVlW2ldLnNjaGVkKTsNCj4+ICsJCWRybV9zY2hlZF9zdG9wKCZwZmRl di0+anMtPnF1ZXVlW2ldLnNjaGVkLCBzY2hlZF9qb2IpOw0KPj4gICAgDQo+PiAgICAJaWYgKHNj aGVkX2pvYikNCj4+ICAgIAkJZHJtX3NjaGVkX2luY3JlYXNlX2thcm1hKHNjaGVkX2pvYik7DQo+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3NjaGVkdWxlci9zY2hlZF9tYWluLmMgYi9k cml2ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL3NjaGVkX21haW4uYw0KPj4gaW5kZXggMTlmYzYwMS4u NzgxNmRlNyAxMDA2NDQNCj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zY2hlZHVsZXIvc2NoZWRf bWFpbi5jDQo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL3NjaGVkX21haW4uYw0K Pj4gQEAgLTI2NSwzMiArMjY1LDYgQEAgdm9pZCBkcm1fc2NoZWRfcmVzdW1lX3RpbWVvdXQoc3Ry dWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCwNCj4+ICAgIH0NCj4+ICAgIEVYUE9SVF9TWU1C T0woZHJtX3NjaGVkX3Jlc3VtZV90aW1lb3V0KTsNCj4+ICAgIA0KPj4gLS8qIGpvYl9maW5pc2gg aXMgY2FsbGVkIGFmdGVyIGh3IGZlbmNlIHNpZ25hbGVkDQo+PiAtICovDQo+PiAtc3RhdGljIHZv aWQgZHJtX3NjaGVkX2pvYl9maW5pc2goc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQ0KPj4gLXsN Cj4+IC0Jc3RydWN0IGRybV9zY2hlZF9qb2IgKnNfam9iID0gY29udGFpbmVyX29mKHdvcmssIHN0 cnVjdCBkcm1fc2NoZWRfam9iLA0KPj4gLQkJCQkJCSAgIGZpbmlzaF93b3JrKTsNCj4+IC0Jc3Ry dWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCA9IHNfam9iLT5zY2hlZDsNCj4+IC0JdW5zaWdu ZWQgbG9uZyBmbGFnczsNCj4+IC0NCj4+IC0JLyoNCj4+IC0JICogQ2FuY2VsaW5nIHRoZSB0aW1l b3V0IHdpdGhvdXQgcmVtb3Zpbmcgb3VyIGpvYiBmcm9tIHRoZSByaW5nIG1pcnJvcg0KPj4gLQkg KiBsaXN0IGlzIHNhZmUsIGFzIHdlIHdpbGwgb25seSBlbmQgdXAgaW4gdGhpcyB3b3JrZXIgaWYg b3VyIGpvYnMNCj4+IC0JICogZmluaXNoZWQgZmVuY2UgaGFzIGJlZW4gc2lnbmFsZWQuIFNvIGV2 ZW4gaWYgc29tZSBhbm90aGVyIHdvcmtlcg0KPj4gLQkgKiBtYW5hZ2VzIHRvIGZpbmQgdGhpcyBq b2IgYXMgdGhlIG5leHQgam9iIGluIHRoZSBsaXN0LCB0aGUgZmVuY2UNCj4+IC0JICogc2lnbmFs ZWQgY2hlY2sgYmVsb3cgd2lsbCBwcmV2ZW50IHRoZSB0aW1lb3V0IHRvIGJlIHJlc3RhcnRlZC4N Cj4+IC0JICovDQo+PiAtCWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmc2NoZWQtPndvcmtfdGRy KTsNCj4+IC0NCj4+IC0Jc3Bpbl9sb2NrX2lycXNhdmUoJnNjaGVkLT5qb2JfbGlzdF9sb2NrLCBm bGFncyk7DQo+PiAtCS8qIHF1ZXVlIFREUiBmb3IgbmV4dCBqb2IgKi8NCj4+IC0JZHJtX3NjaGVk X3N0YXJ0X3RpbWVvdXQoc2NoZWQpOw0KPj4gLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzY2hl ZC0+am9iX2xpc3RfbG9jaywgZmxhZ3MpOw0KPj4gLQ0KPj4gLQlzY2hlZC0+b3BzLT5mcmVlX2pv YihzX2pvYik7DQo+PiAtfQ0KPj4gLQ0KPj4gICAgc3RhdGljIHZvaWQgZHJtX3NjaGVkX2pvYl9i ZWdpbihzdHJ1Y3QgZHJtX3NjaGVkX2pvYiAqc19qb2IpDQo+PiAgICB7DQo+PiAgICAJc3RydWN0 IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCA9IHNfam9iLT5zY2hlZDsNCj4+IEBAIC0zMTUsNiAr Mjg5LDEzIEBAIHN0YXRpYyB2b2lkIGRybV9zY2hlZF9qb2JfdGltZWRvdXQoc3RydWN0IHdvcmtf c3RydWN0ICp3b3JrKQ0KPj4gICAgCWlmIChqb2IpDQo+PiAgICAJCWpvYi0+c2NoZWQtPm9wcy0+ dGltZWRvdXRfam9iKGpvYik7DQo+PiAgICANCj4+ICsJLyoNCj4+ICsJICogR3VpbHR5IGpvYiBk aWQgY29tcGxldGUgYW5kIGhlbmNlIG5lZWRzIHRvIGJlIG1hbnVhbGx5IHJlbW92ZWQNCj4+ICsJ ICogU2VlIGRybV9zY2hlZF9zdG9wIGRvYy4NCj4+ICsJICovDQo+PiArCWlmIChsaXN0X2VtcHR5 KCZqb2ItPm5vZGUpKQ0KPj4gKwkJam9iLT5zY2hlZC0+b3BzLT5mcmVlX2pvYihqb2IpOw0KPj4g Kw0KPj4gICAgCXNwaW5fbG9ja19pcnFzYXZlKCZzY2hlZC0+am9iX2xpc3RfbG9jaywgZmxhZ3Mp Ow0KPj4gICAgCWRybV9zY2hlZF9zdGFydF90aW1lb3V0KHNjaGVkKTsNCj4+ICAgIAlzcGluX3Vu bG9ja19pcnFyZXN0b3JlKCZzY2hlZC0+am9iX2xpc3RfbG9jaywgZmxhZ3MpOw0KPj4gQEAgLTM3 MSwyMyArMzUyLDI2IEBAIEVYUE9SVF9TWU1CT0woZHJtX3NjaGVkX2luY3JlYXNlX2thcm1hKTsN Cj4+ICAgICAqIEBzY2hlZDogc2NoZWR1bGVyIGluc3RhbmNlDQo+PiAgICAgKiBAYmFkOiBiYWQg c2NoZWR1bGVyIGpvYg0KPj4gICAgICoNCj4+ICsgKiBTdG9wIHRoZSBzY2hlZHVsZXIgYW5kIGFs c28gcmVtb3ZlcyBhbmQgZnJlZXMgYWxsIGNvbXBsZXRlZCBqb2JzLg0KPj4gKyAqIE5vdGU6IGJh ZCBqb2Igd2lsbCBub3QgYmUgZnJlZWQgYXMgaXQgbWlnaHQgYmUgdXNlZCBsYXRlciBhbmQgc28g aXQncw0KPj4gKyAqIGNhbGxlcnMgcmVzcG9uc2liaWxpdHkgdG8gcmVsZWFzZSBpdCBtYW51YWxs eSBpZiBpdCdzIG5vdCBwYXJ0IG9mIHRoZQ0KPj4gKyAqIG1pcnJvciBsaXN0IGFueSBtb3JlLg0K Pj4gKyAqDQo+PiAgICAgKi8NCj4+IC12b2lkIGRybV9zY2hlZF9zdG9wKHN0cnVjdCBkcm1fZ3B1 X3NjaGVkdWxlciAqc2NoZWQpDQo+PiArdm9pZCBkcm1fc2NoZWRfc3RvcChzdHJ1Y3QgZHJtX2dw dV9zY2hlZHVsZXIgKnNjaGVkLCBzdHJ1Y3QgZHJtX3NjaGVkX2pvYiAqYmFkKQ0KPj4gICAgew0K Pj4gLQlzdHJ1Y3QgZHJtX3NjaGVkX2pvYiAqc19qb2I7DQo+PiArCXN0cnVjdCBkcm1fc2NoZWRf am9iICpzX2pvYiwgKnRtcDsNCj4+ICAgIAl1bnNpZ25lZCBsb25nIGZsYWdzOw0KPj4gLQlzdHJ1 Y3QgZG1hX2ZlbmNlICpsYXN0X2ZlbmNlID0gIE5VTEw7DQo+PiAgICANCj4+ICAgIAlrdGhyZWFk X3Bhcmsoc2NoZWQtPnRocmVhZCk7DQo+PiAgICANCj4+ICAgIAkvKg0KPj4gLQkgKiBWZXJpZnkg YWxsIHRoZSBzaWduYWxlZCBqb2JzIGluIG1pcnJvciBsaXN0IGFyZSByZW1vdmVkIGZyb20gdGhl IHJpbmcNCj4+IC0JICogYnkgd2FpdGluZyBmb3IgdGhlIGxhdGVzdCBqb2IgdG8gZW50ZXIgdGhl IGxpc3QuIFRoaXMgc2hvdWxkIGluc3VyZSB0aGF0DQo+PiAtCSAqIGFsc28gYWxsIHRoZSBwcmV2 aW91cyBqb2JzIHRoYXQgd2VyZSBpbiBmbGlnaHQgYWxzbyBhbHJlYWR5IHNpbmdhbGVkDQo+PiAt CSAqIGFuZCByZW1vdmVkIGZyb20gdGhlIGxpc3QuDQo+PiArCSAqIEl0ZXJhdGUgdGhlIGpvYiBs aXN0IGZyb20gbGF0ZXIgdG8gIGVhcmxpZXIgb25lIGFuZCBlaXRoZXIgZGVhY3RpdmUNCj4+ICsJ ICogdGhlaXIgSFcgY2FsbGJhY2tzIG9yIHJlbW92ZSB0aGVtIGZyb20gbWlycm9yIGxpc3QgaWYg dGhleSBhbHJlYWR5DQo+PiArCSAqIHNpZ25hbGVkLg0KPj4gKwkgKiBUaGlzIGl0ZXJhdGlvbiBp cyB0aHJlYWQgc2FmZSBhcyBzY2hlZCB0aHJlYWQgaXMgc3RvcHBlZC4NCj4+ICAgIAkgKi8NCj4+ IC0Jc3Bpbl9sb2NrX2lycXNhdmUoJnNjaGVkLT5qb2JfbGlzdF9sb2NrLCBmbGFncyk7DQo+PiAt CWxpc3RfZm9yX2VhY2hfZW50cnlfcmV2ZXJzZShzX2pvYiwgJnNjaGVkLT5yaW5nX21pcnJvcl9s aXN0LCBub2RlKSB7DQo+PiArCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZV9yZXZlcnNlKHNfam9i LCB0bXAsICZzY2hlZC0+cmluZ19taXJyb3JfbGlzdCwgbm9kZSkgew0KPj4gICAgCQlpZiAoc19q b2ItPnNfZmVuY2UtPnBhcmVudCAmJg0KPj4gICAgCQkgICAgZG1hX2ZlbmNlX3JlbW92ZV9jYWxs YmFjayhzX2pvYi0+c19mZW5jZS0+cGFyZW50LA0KPj4gICAgCQkJCQkgICAgICAmc19qb2ItPmNi KSkgew0KPj4gQEAgLTM5NSwxNiArMzc5LDMwIEBAIHZvaWQgZHJtX3NjaGVkX3N0b3Aoc3RydWN0 IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCkNCj4+ICAgIAkJCXNfam9iLT5zX2ZlbmNlLT5wYXJl bnQgPSBOVUxMOw0KPj4gICAgCQkJYXRvbWljX2RlYygmc2NoZWQtPmh3X3JxX2NvdW50KTsNCj4+ ICAgIAkJfSBlbHNlIHsNCj4+IC0JCQkgbGFzdF9mZW5jZSA9IGRtYV9mZW5jZV9nZXQoJnNfam9i LT5zX2ZlbmNlLT5maW5pc2hlZCk7DQo+PiAtCQkJIGJyZWFrOw0KPj4gKwkJCS8qDQo+PiArCQkJ ICogcmVtb3ZlIGpvYiBmcm9tIHJpbmdfbWlycm9yX2xpc3QuDQo+PiArCQkJICogTG9ja2luZyBo ZXJlIGlzIGZvciBjb25jdXJyZW50IHJlc3VtZSB0aW1lb3V0DQo+PiArCQkJICovDQo+PiArCQkJ c3Bpbl9sb2NrX2lycXNhdmUoJnNjaGVkLT5qb2JfbGlzdF9sb2NrLCBmbGFncyk7DQo+PiArCQkJ bGlzdF9kZWxfaW5pdCgmc19qb2ItPm5vZGUpOw0KPj4gKwkJCXNwaW5fdW5sb2NrX2lycXJlc3Rv cmUoJnNjaGVkLT5qb2JfbGlzdF9sb2NrLCBmbGFncyk7DQo+PiArDQo+PiArCQkJLyoNCj4+ICsJ CQkgKiBXYWl0IGZvciBqb2IncyBIVyBmZW5jZSBjYWxsYmFjayB0byBmaW5pc2ggdXNpbmcgc19q b2INCj4+ICsJCQkgKiBiZWZvcmUgcmVsZWFzaW5nIGl0Lg0KPj4gKwkJCSAqDQo+PiArCQkJICog Sm9iIGlzIHN0aWxsIGFsaXZlIHNvIGZlbmNlIHJlZmNvdW50IGF0IGxlYXN0IDENCj4+ICsJCQkg Ki8NCj4+ICsJCQlkbWFfZmVuY2Vfd2FpdCgmc19qb2ItPnNfZmVuY2UtPmZpbmlzaGVkLCBmYWxz ZSk7DQo+PiArDQo+PiArCQkJLyoNCj4+ICsJCQkgKiBXZSBtdXN0IGtlZXAgYmFkIGpvYiBhbGl2 ZSBmb3IgbGF0ZXIgdXNlIGR1cmluZw0KPj4gKwkJCSAqIHJlY292ZXJ5IGJ5IHNvbWUgb2YgdGhl IGRyaXZlcnMNCj4+ICsJCQkgKi8NCj4+ICsJCQlpZiAoYmFkICE9IHNfam9iKQ0KPj4gKwkJCQlz Y2hlZC0+b3BzLT5mcmVlX2pvYihzX2pvYik7DQo+PiAgICAJCX0NCj4+ICAgIAl9DQo+PiAtCXNw aW5fdW5sb2NrX2lycXJlc3RvcmUoJnNjaGVkLT5qb2JfbGlzdF9sb2NrLCBmbGFncyk7DQo+PiAt DQo+PiAtCWlmIChsYXN0X2ZlbmNlKSB7DQo+PiAtCQlkbWFfZmVuY2Vfd2FpdChsYXN0X2ZlbmNl LCBmYWxzZSk7DQo+PiAtCQlkbWFfZmVuY2VfcHV0KGxhc3RfZmVuY2UpOw0KPj4gLQl9DQo+PiAg ICB9DQo+PiAgICANCj4+ICAgIEVYUE9SVF9TWU1CT0woZHJtX3NjaGVkX3N0b3ApOw0KPj4gQEAg LTQxOCwyMSArNDE2LDIyIEBAIEVYUE9SVF9TWU1CT0woZHJtX3NjaGVkX3N0b3ApOw0KPj4gICAg dm9pZCBkcm1fc2NoZWRfc3RhcnQoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCwgYm9v bCBmdWxsX3JlY292ZXJ5KQ0KPj4gICAgew0KPj4gICAgCXN0cnVjdCBkcm1fc2NoZWRfam9iICpz X2pvYiwgKnRtcDsNCj4+ICsJdW5zaWduZWQgbG9uZyBmbGFnczsNCj4+ICAgIAlpbnQgcjsNCj4+ ICAgIA0KPj4gLQlpZiAoIWZ1bGxfcmVjb3ZlcnkpDQo+PiAtCQlnb3RvIHVucGFyazsNCj4+IC0N Cj4+ICAgIAkvKg0KPj4gICAgCSAqIExvY2tpbmcgdGhlIGxpc3QgaXMgbm90IHJlcXVpcmVkIGhl cmUgYXMgdGhlIHNjaGVkIHRocmVhZCBpcyBwYXJrZWQNCj4+IC0JICogc28gbm8gbmV3IGpvYnMg YXJlIGJlaW5nIHB1c2hlZCBpbiB0byBIVyBhbmQgaW4gZHJtX3NjaGVkX3N0b3Agd2UNCj4+IC0J ICogZmx1c2hlZCBhbGwgdGhlIGpvYnMgd2hvIHdlcmUgc3RpbGwgaW4gbWlycm9yIGxpc3QgYnV0 IHdobyBhbHJlYWR5DQo+PiAtCSAqIHNpZ25hbGVkIGFuZCByZW1vdmVkIHRoZW0gc2VsZiBmcm9t IHRoZSBsaXN0LiBBbHNvIGNvbmN1cnJlbnQNCj4+ICsJICogc28gbm8gbmV3IGpvYnMgYXJlIGJl aW5nIGluc2VydGVkIG9yIHJlbW92ZWQuIEFsc28gY29uY3VycmVudA0KPj4gICAgCSAqIEdQVSBy ZWNvdmVycyBjYW4ndCBydW4gaW4gcGFyYWxsZWwuDQo+PiAgICAJICovDQo+PiAgICAJbGlzdF9m b3JfZWFjaF9lbnRyeV9zYWZlKHNfam9iLCB0bXAsICZzY2hlZC0+cmluZ19taXJyb3JfbGlzdCwg bm9kZSkgew0KPj4gICAgCQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSA9IHNfam9iLT5zX2ZlbmNl LT5wYXJlbnQ7DQo+PiAgICANCj4+ICsJCWF0b21pY19pbmMoJnNjaGVkLT5od19ycV9jb3VudCk7 DQo+PiArDQo+PiArCQlpZiAoIWZ1bGxfcmVjb3ZlcnkpDQo+PiArCQkJY29udGludWU7DQo+PiAr DQo+PiAgICAJCWlmIChmZW5jZSkgew0KPj4gICAgCQkJciA9IGRtYV9mZW5jZV9hZGRfY2FsbGJh Y2soZmVuY2UsICZzX2pvYi0+Y2IsDQo+PiAgICAJCQkJCQkgICBkcm1fc2NoZWRfcHJvY2Vzc19q b2IpOw0KPj4gQEAgLTQ0NSw5ICs0NDQsMTIgQEAgdm9pZCBkcm1fc2NoZWRfc3RhcnQoc3RydWN0 IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCwgYm9vbCBmdWxsX3JlY292ZXJ5KQ0KPj4gICAgCQkJ ZHJtX3NjaGVkX3Byb2Nlc3Nfam9iKE5VTEwsICZzX2pvYi0+Y2IpOw0KPj4gICAgCX0NCj4+ICAg IA0KPj4gLQlkcm1fc2NoZWRfc3RhcnRfdGltZW91dChzY2hlZCk7DQo+PiArCWlmIChmdWxsX3Jl Y292ZXJ5KSB7DQo+PiArCQlzcGluX2xvY2tfaXJxc2F2ZSgmc2NoZWQtPmpvYl9saXN0X2xvY2ss IGZsYWdzKTsNCj4+ICsJCWRybV9zY2hlZF9zdGFydF90aW1lb3V0KHNjaGVkKTsNCj4+ICsJCXNw aW5fdW5sb2NrX2lycXJlc3RvcmUoJnNjaGVkLT5qb2JfbGlzdF9sb2NrLCBmbGFncyk7DQo+PiAr CX0NCj4+ICAgIA0KPj4gLXVucGFyazoNCj4+ICAgIAlrdGhyZWFkX3VucGFyayhzY2hlZC0+dGhy ZWFkKTsNCj4+ICAgIH0NCj4+ICAgIEVYUE9SVF9TWU1CT0woZHJtX3NjaGVkX3N0YXJ0KTsNCj4+ IEBAIC00NjQsNyArNDY2LDYgQEAgdm9pZCBkcm1fc2NoZWRfcmVzdWJtaXRfam9icyhzdHJ1Y3Qg ZHJtX2dwdV9zY2hlZHVsZXIgKnNjaGVkKQ0KPj4gICAgCXVpbnQ2NF90IGd1aWx0eV9jb250ZXh0 Ow0KPj4gICAgCWJvb2wgZm91bmRfZ3VpbHR5ID0gZmFsc2U7DQo+PiAgICANCj4+IC0JLypUT0RP IERPIHdlIG5lZWQgc3BpbmxvY2sgaGVyZSA/ICovDQo+PiAgICAJbGlzdF9mb3JfZWFjaF9lbnRy eV9zYWZlKHNfam9iLCB0bXAsICZzY2hlZC0+cmluZ19taXJyb3JfbGlzdCwgbm9kZSkgew0KPj4g ICAgCQlzdHJ1Y3QgZHJtX3NjaGVkX2ZlbmNlICpzX2ZlbmNlID0gc19qb2ItPnNfZmVuY2U7DQo+ PiAgICANCj4+IEBAIC00NzcsNyArNDc4LDYgQEAgdm9pZCBkcm1fc2NoZWRfcmVzdWJtaXRfam9i cyhzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKnNjaGVkKQ0KPj4gICAgCQkJZG1hX2ZlbmNlX3Nl dF9lcnJvcigmc19mZW5jZS0+ZmluaXNoZWQsIC1FQ0FOQ0VMRUQpOw0KPj4gICAgDQo+PiAgICAJ CXNfam9iLT5zX2ZlbmNlLT5wYXJlbnQgPSBzY2hlZC0+b3BzLT5ydW5fam9iKHNfam9iKTsNCj4+ IC0JCWF0b21pY19pbmMoJnNjaGVkLT5od19ycV9jb3VudCk7DQo+PiAgICAJfQ0KPj4gICAgfQ0K Pj4gICAgRVhQT1JUX1NZTUJPTChkcm1fc2NoZWRfcmVzdWJtaXRfam9icyk7DQo+PiBAQCAtNTE0 LDcgKzUxNCw2IEBAIGludCBkcm1fc2NoZWRfam9iX2luaXQoc3RydWN0IGRybV9zY2hlZF9qb2Ig KmpvYiwNCj4+ICAgIAkJcmV0dXJuIC1FTk9NRU07DQo+PiAgICAJam9iLT5pZCA9IGF0b21pYzY0 X2luY19yZXR1cm4oJnNjaGVkLT5qb2JfaWRfY291bnQpOw0KPj4gICAgDQo+PiAtCUlOSVRfV09S Sygmam9iLT5maW5pc2hfd29yaywgZHJtX3NjaGVkX2pvYl9maW5pc2gpOw0KPj4gICAgCUlOSVRf TElTVF9IRUFEKCZqb2ItPm5vZGUpOw0KPj4gICAgDQo+PiAgICAJcmV0dXJuIDA7DQo+PiBAQCAt NTk3LDI0ICs1OTYsNTMgQEAgc3RhdGljIHZvaWQgZHJtX3NjaGVkX3Byb2Nlc3Nfam9iKHN0cnVj dCBkbWFfZmVuY2UgKmYsIHN0cnVjdCBkbWFfZmVuY2VfY2IgKmNiKQ0KPj4gICAgCXN0cnVjdCBk cm1fc2NoZWRfam9iICpzX2pvYiA9IGNvbnRhaW5lcl9vZihjYiwgc3RydWN0IGRybV9zY2hlZF9q b2IsIGNiKTsNCj4+ICAgIAlzdHJ1Y3QgZHJtX3NjaGVkX2ZlbmNlICpzX2ZlbmNlID0gc19qb2It PnNfZmVuY2U7DQo+PiAgICAJc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCA9IHNfZmVu Y2UtPnNjaGVkOw0KPj4gLQl1bnNpZ25lZCBsb25nIGZsYWdzOw0KPj4gLQ0KPj4gLQljYW5jZWxf ZGVsYXllZF93b3JrKCZzY2hlZC0+d29ya190ZHIpOw0KPj4gICAgDQo+PiAgICAJYXRvbWljX2Rl Yygmc2NoZWQtPmh3X3JxX2NvdW50KTsNCj4+ICAgIAlhdG9taWNfZGVjKCZzY2hlZC0+bnVtX2pv YnMpOw0KPj4gICAgDQo+PiAtCXNwaW5fbG9ja19pcnFzYXZlKCZzY2hlZC0+am9iX2xpc3RfbG9j aywgZmxhZ3MpOw0KPj4gLQkvKiByZW1vdmUgam9iIGZyb20gcmluZ19taXJyb3JfbGlzdCAqLw0K Pj4gLQlsaXN0X2RlbF9pbml0KCZzX2pvYi0+bm9kZSk7DQo+PiAtCXNwaW5fdW5sb2NrX2lycXJl c3RvcmUoJnNjaGVkLT5qb2JfbGlzdF9sb2NrLCBmbGFncyk7DQo+PiArCXRyYWNlX2RybV9zY2hl ZF9wcm9jZXNzX2pvYihzX2ZlbmNlKTsNCj4+ICAgIA0KPj4gICAgCWRybV9zY2hlZF9mZW5jZV9m aW5pc2hlZChzX2ZlbmNlKTsNCj4+IC0NCj4+IC0JdHJhY2VfZHJtX3NjaGVkX3Byb2Nlc3Nfam9i KHNfZmVuY2UpOw0KPj4gICAgCXdha2VfdXBfaW50ZXJydXB0aWJsZSgmc2NoZWQtPndha2VfdXBf d29ya2VyKTsNCj4+ICt9DQo+PiArDQo+PiArLyoqDQo+PiArICogZHJtX3NjaGVkX2NsZWFudXBf am9icyAtIGRlc3Ryb3kgZmluaXNoZWQgam9icw0KPj4gKyAqDQo+PiArICogQHNjaGVkOiBzY2hl ZHVsZXIgaW5zdGFuY2UNCj4+ICsgKg0KPj4gKyAqIFJlbW92ZSBhbGwgZmluaXNoZWQgam9icyBm cm9tIHRoZSBtaXJyb3IgbGlzdCBhbmQgZGVzdHJveSB0aGVtLg0KPj4gKyAqLw0KPj4gK3N0YXRp YyB2b2lkIGRybV9zY2hlZF9jbGVhbnVwX2pvYnMoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpz Y2hlZCkNCj4+ICt7DQo+PiArCXVuc2lnbmVkIGxvbmcgZmxhZ3M7DQo+PiArDQo+PiArCS8qIERv bid0IGRlc3Ryb3kgam9icyB3aGlsZSB0aGUgdGltZW91dCB3b3JrZXIgaXMgcnVubmluZyAqLw0K Pj4gKwlpZiAoIWNhbmNlbF9kZWxheWVkX3dvcmsoJnNjaGVkLT53b3JrX3RkcikpDQo+PiArCQly ZXR1cm47DQo+PiArDQo+PiArDQo+PiArCXdoaWxlICghbGlzdF9lbXB0eSgmc2NoZWQtPnJpbmdf bWlycm9yX2xpc3QpKSB7DQo+PiArCQlzdHJ1Y3QgZHJtX3NjaGVkX2pvYiAqam9iOw0KPj4gKw0K Pj4gKwkJam9iID0gbGlzdF9maXJzdF9lbnRyeSgmc2NoZWQtPnJpbmdfbWlycm9yX2xpc3QsDQo+ PiArCQkJCSAgICAgICBzdHJ1Y3QgZHJtX3NjaGVkX2pvYiwgbm9kZSk7DQo+PiArCQlpZiAoIWRt YV9mZW5jZV9pc19zaWduYWxlZCgmam9iLT5zX2ZlbmNlLT5maW5pc2hlZCkpDQo+PiArCQkJYnJl YWs7DQo+PiArDQo+PiArCQlzcGluX2xvY2tfaXJxc2F2ZSgmc2NoZWQtPmpvYl9saXN0X2xvY2ss IGZsYWdzKTsNCj4+ICsJCS8qIHJlbW92ZSBqb2IgZnJvbSByaW5nX21pcnJvcl9saXN0ICovDQo+ PiArCQlsaXN0X2RlbF9pbml0KCZqb2ItPm5vZGUpOw0KPj4gKwkJc3Bpbl91bmxvY2tfaXJxcmVz dG9yZSgmc2NoZWQtPmpvYl9saXN0X2xvY2ssIGZsYWdzKTsNCj4+ICsNCj4+ICsJCXNjaGVkLT5v cHMtPmZyZWVfam9iKGpvYik7DQo+PiArCX0NCj4+ICsNCj4+ICsJLyogcXVldWUgdGltZW91dCBm b3IgbmV4dCBqb2IgKi8NCj4+ICsJc3Bpbl9sb2NrX2lycXNhdmUoJnNjaGVkLT5qb2JfbGlzdF9s b2NrLCBmbGFncyk7DQo+PiArCWRybV9zY2hlZF9zdGFydF90aW1lb3V0KHNjaGVkKTsNCj4+ICsJ c3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc2NoZWQtPmpvYl9saXN0X2xvY2ssIGZsYWdzKTsNCj4+ ICAgIA0KPj4gLQlzY2hlZHVsZV93b3JrKCZzX2pvYi0+ZmluaXNoX3dvcmspOw0KPj4gICAgfQ0K Pj4gICAgDQo+PiAgICAvKioNCj4+IEBAIC02NTYsOSArNjg0LDEwIEBAIHN0YXRpYyBpbnQgZHJt X3NjaGVkX21haW4odm9pZCAqcGFyYW0pDQo+PiAgICAJCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNl Ow0KPj4gICAgDQo+PiAgICAJCXdhaXRfZXZlbnRfaW50ZXJydXB0aWJsZShzY2hlZC0+d2FrZV91 cF93b3JrZXIsDQo+PiArCQkJCQkgKGRybV9zY2hlZF9jbGVhbnVwX2pvYnMoc2NoZWQpLA0KPj4g ICAgCQkJCQkgKCFkcm1fc2NoZWRfYmxvY2tlZChzY2hlZCkgJiYNCj4+ICAgIAkJCQkJICAoZW50 aXR5ID0gZHJtX3NjaGVkX3NlbGVjdF9lbnRpdHkoc2NoZWQpKSkgfHwNCj4+IC0JCQkJCSBrdGhy ZWFkX3Nob3VsZF9zdG9wKCkpOw0KPj4gKwkJCQkJIGt0aHJlYWRfc2hvdWxkX3N0b3AoKSkpOw0K Pj4gICAgDQo+PiAgICAJCWlmICghZW50aXR5KQ0KPj4gICAgCQkJY29udGludWU7DQo+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3YzZC92M2Rfc2NoZWQuYyBiL2RyaXZlcnMvZ3B1L2Ry bS92M2QvdjNkX3NjaGVkLmMNCj4+IGluZGV4IGU3NDBmM2IuLjFhNGFiZTcgMTAwNjQ0DQo+PiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9zY2hlZC5jDQo+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vdjNkL3YzZF9zY2hlZC5jDQo+PiBAQCAtMjMyLDcgKzIzMiw3IEBAIHYzZF9ncHVfcmVz ZXRfZm9yX3RpbWVvdXQoc3RydWN0IHYzZF9kZXYgKnYzZCwgc3RydWN0IGRybV9zY2hlZF9qb2Ig KnNjaGVkX2pvYikNCj4+ICAgIA0KPj4gICAgCS8qIGJsb2NrIHNjaGVkdWxlciAqLw0KPj4gICAg CWZvciAocSA9IDA7IHEgPCBWM0RfTUFYX1FVRVVFUzsgcSsrKQ0KPj4gLQkJZHJtX3NjaGVkX3N0 b3AoJnYzZC0+cXVldWVbcV0uc2NoZWQpOw0KPj4gKwkJZHJtX3NjaGVkX3N0b3AoJnYzZC0+cXVl dWVbcV0uc2NoZWQsIHNjaGVkX2pvYik7DQo+PiAgICANCj4+ICAgIAlpZiAoc2NoZWRfam9iKQ0K Pj4gICAgCQlkcm1fc2NoZWRfaW5jcmVhc2Vfa2FybWEoc2NoZWRfam9iKTsNCj4+IGRpZmYgLS1n aXQgYS9pbmNsdWRlL2RybS9ncHVfc2NoZWR1bGVyLmggYi9pbmNsdWRlL2RybS9ncHVfc2NoZWR1 bGVyLmgNCj4+IGluZGV4IDBkYWNhNGQuLjllZTBmMjcgMTAwNjQ0DQo+PiAtLS0gYS9pbmNsdWRl L2RybS9ncHVfc2NoZWR1bGVyLmgNCj4+ICsrKyBiL2luY2x1ZGUvZHJtL2dwdV9zY2hlZHVsZXIu aA0KPj4gQEAgLTE2Nyw5ICsxNjcsNiBAQCBzdHJ1Y3QgZHJtX3NjaGVkX2ZlbmNlICp0b19kcm1f c2NoZWRfZmVuY2Uoc3RydWN0IGRtYV9mZW5jZSAqZik7DQo+PiAgICAgKiBAc2NoZWQ6IHRoZSBz Y2hlZHVsZXIgaW5zdGFuY2Ugb24gd2hpY2ggdGhpcyBqb2IgaXMgc2NoZWR1bGVkLg0KPj4gICAg ICogQHNfZmVuY2U6IGNvbnRhaW5zIHRoZSBmZW5jZXMgZm9yIHRoZSBzY2hlZHVsaW5nIG9mIGpv Yi4NCj4+ICAgICAqIEBmaW5pc2hfY2I6IHRoZSBjYWxsYmFjayBmb3IgdGhlIGZpbmlzaGVkIGZl bmNlLg0KPj4gLSAqIEBmaW5pc2hfd29yazogc2NoZWR1bGVzIHRoZSBmdW5jdGlvbiBAZHJtX3Nj aGVkX2pvYl9maW5pc2ggb25jZSB0aGUgam9iIGhhcw0KPj4gLSAqICAgICAgICAgICAgICAgZmlu aXNoZWQgdG8gcmVtb3ZlIHRoZSBqb2IgZnJvbSB0aGUNCj4+IC0gKiAgICAgICAgICAgICAgIEBk cm1fZ3B1X3NjaGVkdWxlci5yaW5nX21pcnJvcl9saXN0Lg0KPj4gICAgICogQG5vZGU6IHVzZWQg dG8gYXBwZW5kIHRoaXMgc3RydWN0IHRvIHRoZSBAZHJtX2dwdV9zY2hlZHVsZXIucmluZ19taXJy b3JfbGlzdC4NCj4+ICAgICAqIEBpZDogYSB1bmlxdWUgaWQgYXNzaWduZWQgdG8gZWFjaCBqb2Ig c2NoZWR1bGVkIG9uIHRoZSBzY2hlZHVsZXIuDQo+PiAgICAgKiBAa2FybWE6IGluY3JlbWVudCBv biBldmVyeSBoYW5nIGNhdXNlZCBieSB0aGlzIGpvYi4gSWYgdGhpcyBleGNlZWRzIHRoZSBoYW5n DQo+PiBAQCAtMTg4LDcgKzE4NSw2IEBAIHN0cnVjdCBkcm1fc2NoZWRfam9iIHsNCj4+ICAgIAlz dHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIJKnNjaGVkOw0KPj4gICAgCXN0cnVjdCBkcm1fc2NoZWRf ZmVuY2UJCSpzX2ZlbmNlOw0KPj4gICAgCXN0cnVjdCBkbWFfZmVuY2VfY2IJCWZpbmlzaF9jYjsN Cj4+IC0Jc3RydWN0IHdvcmtfc3RydWN0CQlmaW5pc2hfd29yazsNCj4+ICAgIAlzdHJ1Y3QgbGlz dF9oZWFkCQlub2RlOw0KPj4gICAgCXVpbnQ2NF90CQkJaWQ7DQo+PiAgICAJYXRvbWljX3QJCQlr YXJtYTsNCj4+IEBAIC0yOTYsNyArMjkyLDcgQEAgaW50IGRybV9zY2hlZF9qb2JfaW5pdChzdHJ1 Y3QgZHJtX3NjaGVkX2pvYiAqam9iLA0KPj4gICAgCQkgICAgICAgdm9pZCAqb3duZXIpOw0KPj4g ICAgdm9pZCBkcm1fc2NoZWRfam9iX2NsZWFudXAoc3RydWN0IGRybV9zY2hlZF9qb2IgKmpvYik7 DQo+PiAgICB2b2lkIGRybV9zY2hlZF93YWtldXAoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpz Y2hlZCk7DQo+PiAtdm9pZCBkcm1fc2NoZWRfc3RvcChzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIg KnNjaGVkKTsNCj4+ICt2b2lkIGRybV9zY2hlZF9zdG9wKHN0cnVjdCBkcm1fZ3B1X3NjaGVkdWxl ciAqc2NoZWQsIHN0cnVjdCBkcm1fc2NoZWRfam9iICpiYWQpOw0KPj4gICAgdm9pZCBkcm1fc2No ZWRfc3RhcnQoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCwgYm9vbCBmdWxsX3JlY292 ZXJ5KTsNCj4+ICAgIHZvaWQgZHJtX3NjaGVkX3Jlc3VibWl0X2pvYnMoc3RydWN0IGRybV9ncHVf c2NoZWR1bGVyICpzY2hlZCk7DQo+PiAgICB2b2lkIGRybV9zY2hlZF9pbmNyZWFzZV9rYXJtYShz dHJ1Y3QgZHJtX3NjaGVkX2pvYiAqYmFkKTsNCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18NCj4gYW1kLWdmeCBtYWlsaW5nIGxpc3QNCj4gYW1kLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcNCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9hbWQtZ2Z4DQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Ft ZC1nZng=