From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH v4 3/5] drm/scheduler: rework job destruction Date: Wed, 17 Apr 2019 19:17:36 +0200 Message-ID: References: <1555438986-18303-1-git-send-email-andrey.grodzovsky@amd.com> <1555438986-18303-3-git-send-email-andrey.grodzovsky@amd.com> <6fb0faa1-666c-24d2-bc5c-282c32d07aab@amd.com> Reply-To: christian.koenig@amd.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <6fb0faa1-666c-24d2-bc5c-282c32d07aab@amd.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: "Grodzovsky, Andrey" , "dri-devel@lists.freedesktop.org" , "amd-gfx@lists.freedesktop.org" , "eric@anholt.net" , "etnaviv@lists.freedesktop.org" Cc: "Kazlauskas, Nicholas" , "Koenig, Christian" List-Id: amd-gfx.lists.freedesktop.org SSBjYW4ndCByZXZpZXcgdGhpcyBwYXRjaCwgc2luY2UgSSdtIG9uZSBvZiB0aGUgYXV0aG9ycyBv ZiBpdCwgYnV0IGluIApnZW5lcmFsIHlvdXIgY2hhbmdlcyBsb29rIGdvb2QgdG8gbWUgbm93LgoK Rm9yIHBhdGNoICM1IEkgdGhpbmsgaXQgbWlnaHQgYmUgY2xlYW5lciBpZiB3ZSBtb3ZlIGluY3Jl bWVudGluZyBvZiB0aGUgCmh3X3JxX2NvdW50IHdoaWxlIHN0YXJ0aW5nIHRoZSBzY2hlZHVsZXIg YWdhaW4uCgpSZWdhcmRzLApDaHJpc3RpYW4uCgpBbSAxNy4wNC4xOSB1bSAxNjozNiBzY2hyaWVi IEdyb2R6b3Zza3ksIEFuZHJleToKPiBQaW5nIG9uIHRoaXMgcGF0Y2ggYW5kIHBhdGNoIDUuIFRo ZSByZXN0IGFscmVhZHkgUkJlZC4KPgo+IEFuZHJleQo+Cj4gT24gNC8xNi8xOSAyOjIzIFBNLCBB bmRyZXkgR3JvZHpvdnNreSB3cm90ZToKPj4gRnJvbTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0 aWFuLmtvZW5pZ0BhbWQuY29tPgo+Pgo+PiBXZSBub3cgZGVzdHJveSBmaW5pc2hlZCBqb2JzIGZy b20gdGhlIHdvcmtlciB0aHJlYWQgdG8gbWFrZSBzdXJlIHRoYXQKPj4gd2UgbmV2ZXIgZGVzdHJv eSBhIGpvYiBjdXJyZW50bHkgaW4gdGltZW91dCBwcm9jZXNzaW5nLgo+PiBCeSB0aGlzIHdlIGF2 b2lkIGhvbGRpbmcgbG9jayBhcm91bmQgcmluZyBtaXJyb3IgbGlzdCBpbiBkcm1fc2NoZWRfc3Rv cAo+PiB3aGljaCBzaG91bGQgc29sdmUgYSBkZWFkbG9jayByZXBvcnRlZCBieSBhIHVzZXIuCj4+ Cj4+IHYyOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlLgo+PiB2NDogTW92ZSBndWlsdHkgam9iIGZy ZWUgaW50byBzY2hlZCBjb2RlLgo+Pgo+PiBCdWd6aWxsYTogaHR0cHM6Ly9idWdzLmZyZWVkZXNr dG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NjkyCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IENocmlz dGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KPj4gU2lnbmVkLW9mZi1ieTog QW5kcmV5IEdyb2R6b3Zza3kgPGFuZHJleS5ncm9kem92c2t5QGFtZC5jb20+Cj4+IC0tLQo+PiAg ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMgfCAgIDkgKy0KPj4g ICAgZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9kdW1wLmMgICAgIHwgICA0IC0KPj4g ICAgZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9zY2hlZC5jICAgIHwgICAyICstCj4+ ICAgIGRyaXZlcnMvZ3B1L2RybS9saW1hL2xpbWFfc2NoZWQuYyAgICAgICAgICB8ICAgMiArLQo+ PiAgICBkcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3Rfam9iLmMgICAgfCAgIDIgKy0K Pj4gICAgZHJpdmVycy9ncHUvZHJtL3NjaGVkdWxlci9zY2hlZF9tYWluLmMgICAgIHwgMTQ1ICsr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCj4+ICAgIGRyaXZlcnMvZ3B1L2RybS92M2QvdjNk X3NjaGVkLmMgICAgICAgICAgICB8ICAgMiArLQo+PiAgICBpbmNsdWRlL2RybS9ncHVfc2NoZWR1 bGVyLmggICAgICAgICAgICAgICAgfCAgIDYgKy0KPj4gICAgOCBmaWxlcyBjaGFuZ2VkLCA5NCBp bnNlcnRpb25zKCspLCA3OCBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9kZXZpY2UuYwo+PiBpbmRleCA3Y2VlMjY5Li5hMGUxNjVjIDEwMDY0NAo+ PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMKPj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jCj4+IEBAIC0zMzM0 LDcgKzMzMzQsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV9kZXZpY2VfcHJlX2FzaWNfcmVzZXQoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4+ICAgIAkJaWYgKCFyaW5nIHx8ICFyaW5nLT5zY2hl ZC50aHJlYWQpCj4+ICAgIAkJCWNvbnRpbnVlOwo+PiAgICAKPj4gLQkJZHJtX3NjaGVkX3N0b3Ao JnJpbmctPnNjaGVkKTsKPj4gKwkJZHJtX3NjaGVkX3N0b3AoJnJpbmctPnNjaGVkLCAmam9iLT5i YXNlKTsKPj4gICAgCj4+ICAgIAkJLyogYWZ0ZXIgYWxsIGh3IGpvYnMgYXJlIHJlc2V0LCBodyBm ZW5jZSBpcyBtZWFuaW5nbGVzcywgc28gZm9yY2VfY29tcGxldGlvbiAqLwo+PiAgICAJCWFtZGdw dV9mZW5jZV9kcml2ZXJfZm9yY2VfY29tcGxldGlvbihyaW5nKTsKPj4gQEAgLTMzNDMsOCArMzM0 Myw2IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2RldmljZV9wcmVfYXNpY19yZXNldChzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldiwKPj4gICAgCWlmKGpvYikKPj4gICAgCQlkcm1fc2NoZWRfaW5jcmVh c2Vfa2FybWEoJmpvYi0+YmFzZSk7Cj4+ICAgIAo+PiAtCj4+IC0KPj4gICAgCWlmICghYW1kZ3B1 X3NyaW92X3ZmKGFkZXYpKSB7Cj4+ICAgIAo+PiAgICAJCWlmICghbmVlZF9mdWxsX3Jlc2V0KQo+ PiBAQCAtMzQ4Miw4ICszNDgwLDcgQEAgc3RhdGljIGludCBhbWRncHVfZG9fYXNpY19yZXNldChz dHJ1Y3QgYW1kZ3B1X2hpdmVfaW5mbyAqaGl2ZSwKPj4gICAgCXJldHVybiByOwo+PiAgICB9Cj4+ ICAgIAo+PiAtc3RhdGljIHZvaWQgYW1kZ3B1X2RldmljZV9wb3N0X2FzaWNfcmVzZXQoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4+IC0JCQkJCSAgc3RydWN0IGFtZGdwdV9qb2IgKmpvYikK Pj4gK3N0YXRpYyB2b2lkIGFtZGdwdV9kZXZpY2VfcG9zdF9hc2ljX3Jlc2V0KHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2KQo+PiAgICB7Cj4+ICAgIAlpbnQgaTsKPj4gICAgCj4+IEBAIC0zNjIz LDcgKzM2MjAsNyBAQCBpbnQgYW1kZ3B1X2RldmljZV9ncHVfcmVjb3ZlcihzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiwKPj4gICAgCj4+ICAgIAkvKiBQb3N0IEFTSUMgcmVzZXQgZm9yIGFsbCBk ZXZzIC4qLwo+PiAgICAJbGlzdF9mb3JfZWFjaF9lbnRyeSh0bXBfYWRldiwgZGV2aWNlX2xpc3Rf aGFuZGxlLCBnbWMueGdtaS5oZWFkKSB7Cj4+IC0JCWFtZGdwdV9kZXZpY2VfcG9zdF9hc2ljX3Jl c2V0KHRtcF9hZGV2LCB0bXBfYWRldiA9PSBhZGV2ID8gam9iIDogTlVMTCk7Cj4+ICsJCWFtZGdw dV9kZXZpY2VfcG9zdF9hc2ljX3Jlc2V0KHRtcF9hZGV2KTsKPj4gICAgCj4+ICAgIAkJaWYgKHIp IHsKPj4gICAgCQkJLyogYmFkIG5ld3MsIGhvdyB0byB0ZWxsIGl0IHRvIHVzZXJzcGFjZSA/ICov Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2R1bXAuYyBi L2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZHVtcC5jCj4+IGluZGV4IDMzODU0Yzku LjU3NzhkOWMgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZf ZHVtcC5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZHVtcC5jCj4+ IEBAIC0xMzUsMTMgKzEzNSwxMSBAQCB2b2lkIGV0bmF2aXZfY29yZV9kdW1wKHN0cnVjdCBldG5h dml2X2dwdSAqZ3B1KQo+PiAgICAJCSAgICBtbXVfc2l6ZSArIGdwdS0+YnVmZmVyLnNpemU7Cj4+ ICAgIAo+PiAgICAJLyogQWRkIGluIHRoZSBhY3RpdmUgY29tbWFuZCBidWZmZXJzICovCj4+IC0J c3Bpbl9sb2NrX2lycXNhdmUoJmdwdS0+c2NoZWQuam9iX2xpc3RfbG9jaywgZmxhZ3MpOwo+PiAg ICAJbGlzdF9mb3JfZWFjaF9lbnRyeShzX2pvYiwgJmdwdS0+c2NoZWQucmluZ19taXJyb3JfbGlz dCwgbm9kZSkgewo+PiAgICAJCXN1Ym1pdCA9IHRvX2V0bmF2aXZfc3VibWl0KHNfam9iKTsKPj4g ICAgCQlmaWxlX3NpemUgKz0gc3VibWl0LT5jbWRidWYuc2l6ZTsKPj4gICAgCQluX29iaisrOwo+ PiAgICAJfQo+PiAtCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmdwdS0+c2NoZWQuam9iX2xpc3Rf bG9jaywgZmxhZ3MpOwo+PiAgICAKPj4gICAgCS8qIEFkZCBpbiB0aGUgYWN0aXZlIGJ1ZmZlciBv YmplY3RzICovCj4+ICAgIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHZyYW0sICZncHUtPm1tdS0+bWFw cGluZ3MsIG1tdV9ub2RlKSB7Cj4+IEBAIC0xODMsMTQgKzE4MSwxMiBAQCB2b2lkIGV0bmF2aXZf Y29yZV9kdW1wKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1KQo+PiAgICAJCQkgICAgICBncHUtPmJ1 ZmZlci5zaXplLAo+PiAgICAJCQkgICAgICBldG5hdml2X2NtZGJ1Zl9nZXRfdmEoJmdwdS0+YnVm ZmVyKSk7Cj4+ICAgIAo+PiAtCXNwaW5fbG9ja19pcnFzYXZlKCZncHUtPnNjaGVkLmpvYl9saXN0 X2xvY2ssIGZsYWdzKTsKPj4gICAgCWxpc3RfZm9yX2VhY2hfZW50cnkoc19qb2IsICZncHUtPnNj aGVkLnJpbmdfbWlycm9yX2xpc3QsIG5vZGUpIHsKPj4gICAgCQlzdWJtaXQgPSB0b19ldG5hdml2 X3N1Ym1pdChzX2pvYik7Cj4+ICAgIAkJZXRuYXZpdl9jb3JlX2R1bXBfbWVtKCZpdGVyLCBFVERV TVBfQlVGX0NNRCwKPj4gICAgCQkJCSAgICAgIHN1Ym1pdC0+Y21kYnVmLnZhZGRyLCBzdWJtaXQt PmNtZGJ1Zi5zaXplLAo+PiAgICAJCQkJICAgICAgZXRuYXZpdl9jbWRidWZfZ2V0X3ZhKCZzdWJt aXQtPmNtZGJ1ZikpOwo+PiAgICAJfQo+PiAtCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmdwdS0+ c2NoZWQuam9iX2xpc3RfbG9jaywgZmxhZ3MpOwo+PiAgICAKPj4gICAgCS8qIFJlc2VydmUgc3Bh Y2UgZm9yIHRoZSBib21hcCAqLwo+PiAgICAJaWYgKG5fYm9tYXBfcGFnZXMpIHsKPj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfc2NoZWQuYyBiL2RyaXZlcnMv Z3B1L2RybS9ldG5hdml2L2V0bmF2aXZfc2NoZWQuYwo+PiBpbmRleCA2ZDI0ZmVhLi5hODEzYzgy IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X3NjaGVkLmMK Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9zY2hlZC5jCj4+IEBAIC0x MDksNyArMTA5LDcgQEAgc3RhdGljIHZvaWQgZXRuYXZpdl9zY2hlZF90aW1lZG91dF9qb2Ioc3Ry dWN0IGRybV9zY2hlZF9qb2IgKnNjaGVkX2pvYikKPj4gICAgCX0KPj4gICAgCj4+ICAgIAkvKiBi bG9jayBzY2hlZHVsZXIgKi8KPj4gLQlkcm1fc2NoZWRfc3RvcCgmZ3B1LT5zY2hlZCk7Cj4+ICsJ ZHJtX3NjaGVkX3N0b3AoJmdwdS0+c2NoZWQsIHNjaGVkX2pvYik7Cj4+ICAgIAo+PiAgICAJaWYo c2NoZWRfam9iKQo+PiAgICAJCWRybV9zY2hlZF9pbmNyZWFzZV9rYXJtYShzY2hlZF9qb2IpOwo+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2xpbWEvbGltYV9zY2hlZC5jIGIvZHJpdmVy cy9ncHUvZHJtL2xpbWEvbGltYV9zY2hlZC5jCj4+IGluZGV4IDk3YmQ5YzEuLmRmOTg5MzEgMTAw NjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9saW1hL2xpbWFfc2NoZWQuYwo+PiArKysgYi9k cml2ZXJzL2dwdS9kcm0vbGltYS9saW1hX3NjaGVkLmMKPj4gQEAgLTMwMCw3ICszMDAsNyBAQCBz dGF0aWMgc3RydWN0IGRtYV9mZW5jZSAqbGltYV9zY2hlZF9ydW5fam9iKHN0cnVjdCBkcm1fc2No ZWRfam9iICpqb2IpCj4+ICAgIHN0YXRpYyB2b2lkIGxpbWFfc2NoZWRfaGFuZGxlX2Vycm9yX3Rh c2soc3RydWN0IGxpbWFfc2NoZWRfcGlwZSAqcGlwZSwKPj4gICAgCQkJCQkgc3RydWN0IGxpbWFf c2NoZWRfdGFzayAqdGFzaykKPj4gICAgewo+PiAtCWRybV9zY2hlZF9zdG9wKCZwaXBlLT5iYXNl KTsKPj4gKwlkcm1fc2NoZWRfc3RvcCgmcGlwZS0+YmFzZSwgJnRhc2stPmJhc2UpOwo+PiAgICAK Pj4gICAgCWlmICh0YXNrKQo+PiAgICAJCWRybV9zY2hlZF9pbmNyZWFzZV9rYXJtYSgmdGFzay0+ YmFzZSk7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3Rf am9iLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3Rfam9iLmMKPj4gaW5kZXgg MGE3ZWQwNC4uYzYzMzZiNyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0 L3BhbmZyb3N0X2pvYi5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9z dF9qb2IuYwo+PiBAQCAtMzg1LDcgKzM4NSw3IEBAIHN0YXRpYyB2b2lkIHBhbmZyb3N0X2pvYl90 aW1lZG91dChzdHJ1Y3QgZHJtX3NjaGVkX2pvYiAqc2NoZWRfam9iKQo+PiAgICAJCXNjaGVkX2pv Yik7Cj4+ICAgIAo+PiAgICAJZm9yIChpID0gMDsgaSA8IE5VTV9KT0JfU0xPVFM7IGkrKykKPj4g LQkJZHJtX3NjaGVkX3N0b3AoJnBmZGV2LT5qcy0+cXVldWVbaV0uc2NoZWQpOwo+PiArCQlkcm1f c2NoZWRfc3RvcCgmcGZkZXYtPmpzLT5xdWV1ZVtpXS5zY2hlZCwgc2NoZWRfam9iKTsKPj4gICAg Cj4+ICAgIAlpZiAoc2NoZWRfam9iKQo+PiAgICAJCWRybV9zY2hlZF9pbmNyZWFzZV9rYXJtYShz Y2hlZF9qb2IpOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3NjaGVkdWxlci9zY2hl ZF9tYWluLmMgYi9kcml2ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL3NjaGVkX21haW4uYwo+PiBpbmRl eCAxOWZjNjAxLi4yMWU4NzM0IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vc2NoZWR1 bGVyL3NjaGVkX21haW4uYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL3NjaGVk X21haW4uYwo+PiBAQCAtMjY1LDMyICsyNjUsNiBAQCB2b2lkIGRybV9zY2hlZF9yZXN1bWVfdGlt ZW91dChzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKnNjaGVkLAo+PiAgICB9Cj4+ICAgIEVYUE9S VF9TWU1CT0woZHJtX3NjaGVkX3Jlc3VtZV90aW1lb3V0KTsKPj4gICAgCj4+IC0vKiBqb2JfZmlu aXNoIGlzIGNhbGxlZCBhZnRlciBodyBmZW5jZSBzaWduYWxlZAo+PiAtICovCj4+IC1zdGF0aWMg dm9pZCBkcm1fc2NoZWRfam9iX2ZpbmlzaChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4+IC17 Cj4+IC0Jc3RydWN0IGRybV9zY2hlZF9qb2IgKnNfam9iID0gY29udGFpbmVyX29mKHdvcmssIHN0 cnVjdCBkcm1fc2NoZWRfam9iLAo+PiAtCQkJCQkJICAgZmluaXNoX3dvcmspOwo+PiAtCXN0cnVj dCBkcm1fZ3B1X3NjaGVkdWxlciAqc2NoZWQgPSBzX2pvYi0+c2NoZWQ7Cj4+IC0JdW5zaWduZWQg bG9uZyBmbGFnczsKPj4gLQo+PiAtCS8qCj4+IC0JICogQ2FuY2VsaW5nIHRoZSB0aW1lb3V0IHdp dGhvdXQgcmVtb3Zpbmcgb3VyIGpvYiBmcm9tIHRoZSByaW5nIG1pcnJvcgo+PiAtCSAqIGxpc3Qg aXMgc2FmZSwgYXMgd2Ugd2lsbCBvbmx5IGVuZCB1cCBpbiB0aGlzIHdvcmtlciBpZiBvdXIgam9i cwo+PiAtCSAqIGZpbmlzaGVkIGZlbmNlIGhhcyBiZWVuIHNpZ25hbGVkLiBTbyBldmVuIGlmIHNv bWUgYW5vdGhlciB3b3JrZXIKPj4gLQkgKiBtYW5hZ2VzIHRvIGZpbmQgdGhpcyBqb2IgYXMgdGhl IG5leHQgam9iIGluIHRoZSBsaXN0LCB0aGUgZmVuY2UKPj4gLQkgKiBzaWduYWxlZCBjaGVjayBi ZWxvdyB3aWxsIHByZXZlbnQgdGhlIHRpbWVvdXQgdG8gYmUgcmVzdGFydGVkLgo+PiAtCSAqLwo+ PiAtCWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmc2NoZWQtPndvcmtfdGRyKTsKPj4gLQo+PiAt CXNwaW5fbG9ja19pcnFzYXZlKCZzY2hlZC0+am9iX2xpc3RfbG9jaywgZmxhZ3MpOwo+PiAtCS8q IHF1ZXVlIFREUiBmb3IgbmV4dCBqb2IgKi8KPj4gLQlkcm1fc2NoZWRfc3RhcnRfdGltZW91dChz Y2hlZCk7Cj4+IC0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc2NoZWQtPmpvYl9saXN0X2xvY2ss IGZsYWdzKTsKPj4gLQo+PiAtCXNjaGVkLT5vcHMtPmZyZWVfam9iKHNfam9iKTsKPj4gLX0KPj4g LQo+PiAgICBzdGF0aWMgdm9pZCBkcm1fc2NoZWRfam9iX2JlZ2luKHN0cnVjdCBkcm1fc2NoZWRf am9iICpzX2pvYikKPj4gICAgewo+PiAgICAJc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hl ZCA9IHNfam9iLT5zY2hlZDsKPj4gQEAgLTMxNSw2ICsyODksMTMgQEAgc3RhdGljIHZvaWQgZHJt X3NjaGVkX2pvYl90aW1lZG91dChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4+ICAgIAlpZiAo am9iKQo+PiAgICAJCWpvYi0+c2NoZWQtPm9wcy0+dGltZWRvdXRfam9iKGpvYik7Cj4+ICAgIAo+ PiArCS8qCj4+ICsJICogR3VpbHR5IGpvYiBkaWQgY29tcGxldGUgYW5kIGhlbmNlIG5lZWRzIHRv IGJlIG1hbnVhbGx5IHJlbW92ZWQKPj4gKwkgKiBTZWUgZHJtX3NjaGVkX3N0b3AgZG9jLgo+PiAr CSAqLwo+PiArCWlmIChsaXN0X2VtcHR5KCZqb2ItPm5vZGUpKQo+PiArCQlqb2ItPnNjaGVkLT5v cHMtPmZyZWVfam9iKGpvYik7Cj4+ICsKPj4gICAgCXNwaW5fbG9ja19pcnFzYXZlKCZzY2hlZC0+ am9iX2xpc3RfbG9jaywgZmxhZ3MpOwo+PiAgICAJZHJtX3NjaGVkX3N0YXJ0X3RpbWVvdXQoc2No ZWQpOwo+PiAgICAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc2NoZWQtPmpvYl9saXN0X2xvY2ss IGZsYWdzKTsKPj4gQEAgLTM3MSwyMyArMzUyLDI2IEBAIEVYUE9SVF9TWU1CT0woZHJtX3NjaGVk X2luY3JlYXNlX2thcm1hKTsKPj4gICAgICogQHNjaGVkOiBzY2hlZHVsZXIgaW5zdGFuY2UKPj4g ICAgICogQGJhZDogYmFkIHNjaGVkdWxlciBqb2IKPj4gICAgICoKPj4gKyAqIFN0b3AgdGhlIHNj aGVkdWxlciBhbmQgYWxzbyByZW1vdmVzIGFuZCBmcmVlcyBhbGwgY29tcGxldGVkIGpvYnMuCj4+ ICsgKiBOb3RlOiBiYWQgam9iIHdpbGwgbm90IGJlIGZyZWVkIGFzIGl0IG1pZ2h0IGJlIHVzZWQg bGF0ZXIgYW5kIHNvIGl0J3MKPj4gKyAqIGNhbGxlcnMgcmVzcG9uc2liaWxpdHkgdG8gcmVsZWFz ZSBpdCBtYW51YWxseSBpZiBpdCdzIG5vdCBwYXJ0IG9mIHRoZQo+PiArICogbWlycm9yIGxpc3Qg YW55IG1vcmUuCj4+ICsgKgo+PiAgICAgKi8KPj4gLXZvaWQgZHJtX3NjaGVkX3N0b3Aoc3RydWN0 IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCkKPj4gK3ZvaWQgZHJtX3NjaGVkX3N0b3Aoc3RydWN0 IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCwgc3RydWN0IGRybV9zY2hlZF9qb2IgKmJhZCkKPj4g ICAgewo+PiAtCXN0cnVjdCBkcm1fc2NoZWRfam9iICpzX2pvYjsKPj4gKwlzdHJ1Y3QgZHJtX3Nj aGVkX2pvYiAqc19qb2IsICp0bXA7Cj4+ICAgIAl1bnNpZ25lZCBsb25nIGZsYWdzOwo+PiAtCXN0 cnVjdCBkbWFfZmVuY2UgKmxhc3RfZmVuY2UgPSAgTlVMTDsKPj4gICAgCj4+ICAgIAlrdGhyZWFk X3Bhcmsoc2NoZWQtPnRocmVhZCk7Cj4+ICAgIAo+PiAgICAJLyoKPj4gLQkgKiBWZXJpZnkgYWxs IHRoZSBzaWduYWxlZCBqb2JzIGluIG1pcnJvciBsaXN0IGFyZSByZW1vdmVkIGZyb20gdGhlIHJp bmcKPj4gLQkgKiBieSB3YWl0aW5nIGZvciB0aGUgbGF0ZXN0IGpvYiB0byBlbnRlciB0aGUgbGlz dC4gVGhpcyBzaG91bGQgaW5zdXJlIHRoYXQKPj4gLQkgKiBhbHNvIGFsbCB0aGUgcHJldmlvdXMg am9icyB0aGF0IHdlcmUgaW4gZmxpZ2h0IGFsc28gYWxyZWFkeSBzaW5nYWxlZAo+PiAtCSAqIGFu ZCByZW1vdmVkIGZyb20gdGhlIGxpc3QuCj4+ICsJICogSXRlcmF0ZSB0aGUgam9iIGxpc3QgZnJv bSBsYXRlciB0byAgZWFybGllciBvbmUgYW5kIGVpdGhlciBkZWFjdGl2ZQo+PiArCSAqIHRoZWly IEhXIGNhbGxiYWNrcyBvciByZW1vdmUgdGhlbSBmcm9tIG1pcnJvciBsaXN0IGlmIHRoZXkgYWxy ZWFkeQo+PiArCSAqIHNpZ25hbGVkLgo+PiArCSAqIFRoaXMgaXRlcmF0aW9uIGlzIHRocmVhZCBz YWZlIGFzIHNjaGVkIHRocmVhZCBpcyBzdG9wcGVkLgo+PiAgICAJICovCj4+IC0Jc3Bpbl9sb2Nr X2lycXNhdmUoJnNjaGVkLT5qb2JfbGlzdF9sb2NrLCBmbGFncyk7Cj4+IC0JbGlzdF9mb3JfZWFj aF9lbnRyeV9yZXZlcnNlKHNfam9iLCAmc2NoZWQtPnJpbmdfbWlycm9yX2xpc3QsIG5vZGUpIHsK Pj4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmVfcmV2ZXJzZShzX2pvYiwgdG1wLCAmc2NoZWQt PnJpbmdfbWlycm9yX2xpc3QsIG5vZGUpIHsKPj4gICAgCQlpZiAoc19qb2ItPnNfZmVuY2UtPnBh cmVudCAmJgo+PiAgICAJCSAgICBkbWFfZmVuY2VfcmVtb3ZlX2NhbGxiYWNrKHNfam9iLT5zX2Zl bmNlLT5wYXJlbnQsCj4+ICAgIAkJCQkJICAgICAgJnNfam9iLT5jYikpIHsKPj4gQEAgLTM5NSwx NiArMzc5LDMwIEBAIHZvaWQgZHJtX3NjaGVkX3N0b3Aoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVy ICpzY2hlZCkKPj4gICAgCQkJc19qb2ItPnNfZmVuY2UtPnBhcmVudCA9IE5VTEw7Cj4+ICAgIAkJ CWF0b21pY19kZWMoJnNjaGVkLT5od19ycV9jb3VudCk7Cj4+ICAgIAkJfSBlbHNlIHsKPj4gLQkJ CSBsYXN0X2ZlbmNlID0gZG1hX2ZlbmNlX2dldCgmc19qb2ItPnNfZmVuY2UtPmZpbmlzaGVkKTsK Pj4gLQkJCSBicmVhazsKPj4gKwkJCS8qCj4+ICsJCQkgKiByZW1vdmUgam9iIGZyb20gcmluZ19t aXJyb3JfbGlzdC4KPj4gKwkJCSAqIExvY2tpbmcgaGVyZSBpcyBmb3IgY29uY3VycmVudCByZXN1 bWUgdGltZW91dAo+PiArCQkJICovCj4+ICsJCQlzcGluX2xvY2tfaXJxc2F2ZSgmc2NoZWQtPmpv Yl9saXN0X2xvY2ssIGZsYWdzKTsKPj4gKwkJCWxpc3RfZGVsX2luaXQoJnNfam9iLT5ub2RlKTsK Pj4gKwkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNjaGVkLT5qb2JfbGlzdF9sb2NrLCBmbGFn cyk7Cj4+ICsKPj4gKwkJCS8qCj4+ICsJCQkgKiBXYWl0IGZvciBqb2IncyBIVyBmZW5jZSBjYWxs YmFjayB0byBmaW5pc2ggdXNpbmcgc19qb2IKPj4gKwkJCSAqIGJlZm9yZSByZWxlYXNpbmcgaXQu Cj4+ICsJCQkgKgo+PiArCQkJICogSm9iIGlzIHN0aWxsIGFsaXZlIHNvIGZlbmNlIHJlZmNvdW50 IGF0IGxlYXN0IDEKPj4gKwkJCSAqLwo+PiArCQkJZG1hX2ZlbmNlX3dhaXQoJnNfam9iLT5zX2Zl bmNlLT5maW5pc2hlZCwgZmFsc2UpOwo+PiArCj4+ICsJCQkvKgo+PiArCQkJICogV2UgbXVzdCBr ZWVwIGJhZCBqb2IgYWxpdmUgZm9yIGxhdGVyIHVzZSBkdXJpbmcKPj4gKwkJCSAqIHJlY292ZXJ5 IGJ5IHNvbWUgb2YgdGhlIGRyaXZlcnMKPj4gKwkJCSAqLwo+PiArCQkJaWYgKGJhZCAhPSBzX2pv YikKPj4gKwkJCQlzY2hlZC0+b3BzLT5mcmVlX2pvYihzX2pvYik7Cj4+ICAgIAkJfQo+PiAgICAJ fQo+PiAtCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNjaGVkLT5qb2JfbGlzdF9sb2NrLCBmbGFn cyk7Cj4+IC0KPj4gLQlpZiAobGFzdF9mZW5jZSkgewo+PiAtCQlkbWFfZmVuY2Vfd2FpdChsYXN0 X2ZlbmNlLCBmYWxzZSk7Cj4+IC0JCWRtYV9mZW5jZV9wdXQobGFzdF9mZW5jZSk7Cj4+IC0JfQo+ PiAgICB9Cj4+ICAgIAo+PiAgICBFWFBPUlRfU1lNQk9MKGRybV9zY2hlZF9zdG9wKTsKPj4gQEAg LTQxOCw2ICs0MTYsNyBAQCBFWFBPUlRfU1lNQk9MKGRybV9zY2hlZF9zdG9wKTsKPj4gICAgdm9p ZCBkcm1fc2NoZWRfc3RhcnQoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCwgYm9vbCBm dWxsX3JlY292ZXJ5KQo+PiAgICB7Cj4+ICAgIAlzdHJ1Y3QgZHJtX3NjaGVkX2pvYiAqc19qb2Is ICp0bXA7Cj4+ICsJdW5zaWduZWQgbG9uZyBmbGFnczsKPj4gICAgCWludCByOwo+PiAgICAKPj4g ICAgCWlmICghZnVsbF9yZWNvdmVyeSkKPj4gQEAgLTQyNSw5ICs0MjQsNyBAQCB2b2lkIGRybV9z Y2hlZF9zdGFydChzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKnNjaGVkLCBib29sIGZ1bGxfcmVj b3ZlcnkpCj4+ICAgIAo+PiAgICAJLyoKPj4gICAgCSAqIExvY2tpbmcgdGhlIGxpc3QgaXMgbm90 IHJlcXVpcmVkIGhlcmUgYXMgdGhlIHNjaGVkIHRocmVhZCBpcyBwYXJrZWQKPj4gLQkgKiBzbyBu byBuZXcgam9icyBhcmUgYmVpbmcgcHVzaGVkIGluIHRvIEhXIGFuZCBpbiBkcm1fc2NoZWRfc3Rv cCB3ZQo+PiAtCSAqIGZsdXNoZWQgYWxsIHRoZSBqb2JzIHdobyB3ZXJlIHN0aWxsIGluIG1pcnJv ciBsaXN0IGJ1dCB3aG8gYWxyZWFkeQo+PiAtCSAqIHNpZ25hbGVkIGFuZCByZW1vdmVkIHRoZW0g c2VsZiBmcm9tIHRoZSBsaXN0LiBBbHNvIGNvbmN1cnJlbnQKPj4gKwkgKiBzbyBubyBuZXcgam9i cyBhcmUgYmVpbmcgaW5zZXJ0ZWQgb3IgcmVtb3ZlZC4gQWxzbyBjb25jdXJyZW50Cj4+ICAgIAkg KiBHUFUgcmVjb3ZlcnMgY2FuJ3QgcnVuIGluIHBhcmFsbGVsLgo+PiAgICAJICovCj4+ICAgIAls aXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoc19qb2IsIHRtcCwgJnNjaGVkLT5yaW5nX21pcnJvcl9s aXN0LCBub2RlKSB7Cj4+IEBAIC00NDUsNyArNDQyLDkgQEAgdm9pZCBkcm1fc2NoZWRfc3RhcnQo c3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCwgYm9vbCBmdWxsX3JlY292ZXJ5KQo+PiAg ICAJCQlkcm1fc2NoZWRfcHJvY2Vzc19qb2IoTlVMTCwgJnNfam9iLT5jYik7Cj4+ICAgIAl9Cj4+ ICAgIAo+PiArCXNwaW5fbG9ja19pcnFzYXZlKCZzY2hlZC0+am9iX2xpc3RfbG9jaywgZmxhZ3Mp Owo+PiAgICAJZHJtX3NjaGVkX3N0YXJ0X3RpbWVvdXQoc2NoZWQpOwo+PiArCXNwaW5fdW5sb2Nr X2lycXJlc3RvcmUoJnNjaGVkLT5qb2JfbGlzdF9sb2NrLCBmbGFncyk7Cj4+ICAgIAo+PiAgICB1 bnBhcms6Cj4+ICAgIAlrdGhyZWFkX3VucGFyayhzY2hlZC0+dGhyZWFkKTsKPj4gQEAgLTQ2NCw3 ICs0NjMsNiBAQCB2b2lkIGRybV9zY2hlZF9yZXN1Ym1pdF9qb2JzKHN0cnVjdCBkcm1fZ3B1X3Nj aGVkdWxlciAqc2NoZWQpCj4+ICAgIAl1aW50NjRfdCBndWlsdHlfY29udGV4dDsKPj4gICAgCWJv b2wgZm91bmRfZ3VpbHR5ID0gZmFsc2U7Cj4+ICAgIAo+PiAtCS8qVE9ETyBETyB3ZSBuZWVkIHNw aW5sb2NrIGhlcmUgPyAqLwo+PiAgICAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHNfam9iLCB0 bXAsICZzY2hlZC0+cmluZ19taXJyb3JfbGlzdCwgbm9kZSkgewo+PiAgICAJCXN0cnVjdCBkcm1f c2NoZWRfZmVuY2UgKnNfZmVuY2UgPSBzX2pvYi0+c19mZW5jZTsKPj4gICAgCj4+IEBAIC01MTQs NyArNTEyLDYgQEAgaW50IGRybV9zY2hlZF9qb2JfaW5pdChzdHJ1Y3QgZHJtX3NjaGVkX2pvYiAq am9iLAo+PiAgICAJCXJldHVybiAtRU5PTUVNOwo+PiAgICAJam9iLT5pZCA9IGF0b21pYzY0X2lu Y19yZXR1cm4oJnNjaGVkLT5qb2JfaWRfY291bnQpOwo+PiAgICAKPj4gLQlJTklUX1dPUksoJmpv Yi0+ZmluaXNoX3dvcmssIGRybV9zY2hlZF9qb2JfZmluaXNoKTsKPj4gICAgCUlOSVRfTElTVF9I RUFEKCZqb2ItPm5vZGUpOwo+PiAgICAKPj4gICAgCXJldHVybiAwOwo+PiBAQCAtNTk3LDI0ICs1 OTQsNTMgQEAgc3RhdGljIHZvaWQgZHJtX3NjaGVkX3Byb2Nlc3Nfam9iKHN0cnVjdCBkbWFfZmVu Y2UgKmYsIHN0cnVjdCBkbWFfZmVuY2VfY2IgKmNiKQo+PiAgICAJc3RydWN0IGRybV9zY2hlZF9q b2IgKnNfam9iID0gY29udGFpbmVyX29mKGNiLCBzdHJ1Y3QgZHJtX3NjaGVkX2pvYiwgY2IpOwo+ PiAgICAJc3RydWN0IGRybV9zY2hlZF9mZW5jZSAqc19mZW5jZSA9IHNfam9iLT5zX2ZlbmNlOwo+ PiAgICAJc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCA9IHNfZmVuY2UtPnNjaGVkOwo+ PiAtCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4+IC0KPj4gLQljYW5jZWxfZGVsYXllZF93b3JrKCZz Y2hlZC0+d29ya190ZHIpOwo+PiAgICAKPj4gICAgCWF0b21pY19kZWMoJnNjaGVkLT5od19ycV9j b3VudCk7Cj4+ICAgIAlhdG9taWNfZGVjKCZzY2hlZC0+bnVtX2pvYnMpOwo+PiAgICAKPj4gLQlz cGluX2xvY2tfaXJxc2F2ZSgmc2NoZWQtPmpvYl9saXN0X2xvY2ssIGZsYWdzKTsKPj4gLQkvKiBy ZW1vdmUgam9iIGZyb20gcmluZ19taXJyb3JfbGlzdCAqLwo+PiAtCWxpc3RfZGVsX2luaXQoJnNf am9iLT5ub2RlKTsKPj4gLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzY2hlZC0+am9iX2xpc3Rf bG9jaywgZmxhZ3MpOwo+PiArCXRyYWNlX2RybV9zY2hlZF9wcm9jZXNzX2pvYihzX2ZlbmNlKTsK Pj4gICAgCj4+ICAgIAlkcm1fc2NoZWRfZmVuY2VfZmluaXNoZWQoc19mZW5jZSk7Cj4+IC0KPj4g LQl0cmFjZV9kcm1fc2NoZWRfcHJvY2Vzc19qb2Ioc19mZW5jZSk7Cj4+ICAgIAl3YWtlX3VwX2lu dGVycnVwdGlibGUoJnNjaGVkLT53YWtlX3VwX3dvcmtlcik7Cj4+ICt9Cj4+ICsKPj4gKy8qKgo+ PiArICogZHJtX3NjaGVkX2NsZWFudXBfam9icyAtIGRlc3Ryb3kgZmluaXNoZWQgam9icwo+PiAr ICoKPj4gKyAqIEBzY2hlZDogc2NoZWR1bGVyIGluc3RhbmNlCj4+ICsgKgo+PiArICogUmVtb3Zl IGFsbCBmaW5pc2hlZCBqb2JzIGZyb20gdGhlIG1pcnJvciBsaXN0IGFuZCBkZXN0cm95IHRoZW0u Cj4+ICsgKi8KPj4gK3N0YXRpYyB2b2lkIGRybV9zY2hlZF9jbGVhbnVwX2pvYnMoc3RydWN0IGRy bV9ncHVfc2NoZWR1bGVyICpzY2hlZCkKPj4gK3sKPj4gKwl1bnNpZ25lZCBsb25nIGZsYWdzOwo+ PiArCj4+ICsJLyogRG9uJ3QgZGVzdHJveSBqb2JzIHdoaWxlIHRoZSB0aW1lb3V0IHdvcmtlciBp cyBydW5uaW5nICovCj4+ICsJaWYgKCFjYW5jZWxfZGVsYXllZF93b3JrKCZzY2hlZC0+d29ya190 ZHIpKQo+PiArCQlyZXR1cm47Cj4+ICsKPj4gKwo+PiArCXdoaWxlICghbGlzdF9lbXB0eSgmc2No ZWQtPnJpbmdfbWlycm9yX2xpc3QpKSB7Cj4+ICsJCXN0cnVjdCBkcm1fc2NoZWRfam9iICpqb2I7 Cj4+ICsKPj4gKwkJam9iID0gbGlzdF9maXJzdF9lbnRyeSgmc2NoZWQtPnJpbmdfbWlycm9yX2xp c3QsCj4+ICsJCQkJICAgICAgIHN0cnVjdCBkcm1fc2NoZWRfam9iLCBub2RlKTsKPj4gKwkJaWYg KCFkbWFfZmVuY2VfaXNfc2lnbmFsZWQoJmpvYi0+c19mZW5jZS0+ZmluaXNoZWQpKQo+PiArCQkJ YnJlYWs7Cj4+ICsKPj4gKwkJc3Bpbl9sb2NrX2lycXNhdmUoJnNjaGVkLT5qb2JfbGlzdF9sb2Nr LCBmbGFncyk7Cj4+ICsJCS8qIHJlbW92ZSBqb2IgZnJvbSByaW5nX21pcnJvcl9saXN0ICovCj4+ ICsJCWxpc3RfZGVsX2luaXQoJmpvYi0+bm9kZSk7Cj4+ICsJCXNwaW5fdW5sb2NrX2lycXJlc3Rv cmUoJnNjaGVkLT5qb2JfbGlzdF9sb2NrLCBmbGFncyk7Cj4+ICsKPj4gKwkJc2NoZWQtPm9wcy0+ ZnJlZV9qb2Ioam9iKTsKPj4gKwl9Cj4+ICsKPj4gKwkvKiBxdWV1ZSB0aW1lb3V0IGZvciBuZXh0 IGpvYiAqLwo+PiArCXNwaW5fbG9ja19pcnFzYXZlKCZzY2hlZC0+am9iX2xpc3RfbG9jaywgZmxh Z3MpOwo+PiArCWRybV9zY2hlZF9zdGFydF90aW1lb3V0KHNjaGVkKTsKPj4gKwlzcGluX3VubG9j a19pcnFyZXN0b3JlKCZzY2hlZC0+am9iX2xpc3RfbG9jaywgZmxhZ3MpOwo+PiAgICAKPj4gLQlz Y2hlZHVsZV93b3JrKCZzX2pvYi0+ZmluaXNoX3dvcmspOwo+PiAgICB9Cj4+ICAgIAo+PiAgICAv KioKPj4gQEAgLTY1Niw5ICs2ODIsMTAgQEAgc3RhdGljIGludCBkcm1fc2NoZWRfbWFpbih2b2lk ICpwYXJhbSkKPj4gICAgCQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKPj4gICAgCj4+ICAgIAkJ d2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxlKHNjaGVkLT53YWtlX3VwX3dvcmtlciwKPj4gKwkJCQkJ IChkcm1fc2NoZWRfY2xlYW51cF9qb2JzKHNjaGVkKSwKPj4gICAgCQkJCQkgKCFkcm1fc2NoZWRf YmxvY2tlZChzY2hlZCkgJiYKPj4gICAgCQkJCQkgIChlbnRpdHkgPSBkcm1fc2NoZWRfc2VsZWN0 X2VudGl0eShzY2hlZCkpKSB8fAo+PiAtCQkJCQkga3RocmVhZF9zaG91bGRfc3RvcCgpKTsKPj4g KwkJCQkJIGt0aHJlYWRfc2hvdWxkX3N0b3AoKSkpOwo+PiAgICAKPj4gICAgCQlpZiAoIWVudGl0 eSkKPj4gICAgCQkJY29udGludWU7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdjNk L3YzZF9zY2hlZC5jIGIvZHJpdmVycy9ncHUvZHJtL3YzZC92M2Rfc2NoZWQuYwo+PiBpbmRleCBl NzQwZjNiLi4xYTRhYmU3IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9z Y2hlZC5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92M2QvdjNkX3NjaGVkLmMKPj4gQEAgLTIz Miw3ICsyMzIsNyBAQCB2M2RfZ3B1X3Jlc2V0X2Zvcl90aW1lb3V0KHN0cnVjdCB2M2RfZGV2ICp2 M2QsIHN0cnVjdCBkcm1fc2NoZWRfam9iICpzY2hlZF9qb2IpCj4+ICAgIAo+PiAgICAJLyogYmxv Y2sgc2NoZWR1bGVyICovCj4+ICAgIAlmb3IgKHEgPSAwOyBxIDwgVjNEX01BWF9RVUVVRVM7IHEr KykKPj4gLQkJZHJtX3NjaGVkX3N0b3AoJnYzZC0+cXVldWVbcV0uc2NoZWQpOwo+PiArCQlkcm1f c2NoZWRfc3RvcCgmdjNkLT5xdWV1ZVtxXS5zY2hlZCwgc2NoZWRfam9iKTsKPj4gICAgCj4+ICAg IAlpZiAoc2NoZWRfam9iKQo+PiAgICAJCWRybV9zY2hlZF9pbmNyZWFzZV9rYXJtYShzY2hlZF9q b2IpOwo+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZ3B1X3NjaGVkdWxlci5oIGIvaW5jbHVk ZS9kcm0vZ3B1X3NjaGVkdWxlci5oCj4+IGluZGV4IDBkYWNhNGQuLjllZTBmMjcgMTAwNjQ0Cj4+ IC0tLSBhL2luY2x1ZGUvZHJtL2dwdV9zY2hlZHVsZXIuaAo+PiArKysgYi9pbmNsdWRlL2RybS9n cHVfc2NoZWR1bGVyLmgKPj4gQEAgLTE2Nyw5ICsxNjcsNiBAQCBzdHJ1Y3QgZHJtX3NjaGVkX2Zl bmNlICp0b19kcm1fc2NoZWRfZmVuY2Uoc3RydWN0IGRtYV9mZW5jZSAqZik7Cj4+ICAgICAqIEBz Y2hlZDogdGhlIHNjaGVkdWxlciBpbnN0YW5jZSBvbiB3aGljaCB0aGlzIGpvYiBpcyBzY2hlZHVs ZWQuCj4+ICAgICAqIEBzX2ZlbmNlOiBjb250YWlucyB0aGUgZmVuY2VzIGZvciB0aGUgc2NoZWR1 bGluZyBvZiBqb2IuCj4+ICAgICAqIEBmaW5pc2hfY2I6IHRoZSBjYWxsYmFjayBmb3IgdGhlIGZp bmlzaGVkIGZlbmNlLgo+PiAtICogQGZpbmlzaF93b3JrOiBzY2hlZHVsZXMgdGhlIGZ1bmN0aW9u IEBkcm1fc2NoZWRfam9iX2ZpbmlzaCBvbmNlIHRoZSBqb2IgaGFzCj4+IC0gKiAgICAgICAgICAg ICAgIGZpbmlzaGVkIHRvIHJlbW92ZSB0aGUgam9iIGZyb20gdGhlCj4+IC0gKiAgICAgICAgICAg ICAgIEBkcm1fZ3B1X3NjaGVkdWxlci5yaW5nX21pcnJvcl9saXN0Lgo+PiAgICAgKiBAbm9kZTog dXNlZCB0byBhcHBlbmQgdGhpcyBzdHJ1Y3QgdG8gdGhlIEBkcm1fZ3B1X3NjaGVkdWxlci5yaW5n X21pcnJvcl9saXN0Lgo+PiAgICAgKiBAaWQ6IGEgdW5pcXVlIGlkIGFzc2lnbmVkIHRvIGVhY2gg am9iIHNjaGVkdWxlZCBvbiB0aGUgc2NoZWR1bGVyLgo+PiAgICAgKiBAa2FybWE6IGluY3JlbWVu dCBvbiBldmVyeSBoYW5nIGNhdXNlZCBieSB0aGlzIGpvYi4gSWYgdGhpcyBleGNlZWRzIHRoZSBo YW5nCj4+IEBAIC0xODgsNyArMTg1LDYgQEAgc3RydWN0IGRybV9zY2hlZF9qb2Igewo+PiAgICAJ c3RydWN0IGRybV9ncHVfc2NoZWR1bGVyCSpzY2hlZDsKPj4gICAgCXN0cnVjdCBkcm1fc2NoZWRf ZmVuY2UJCSpzX2ZlbmNlOwo+PiAgICAJc3RydWN0IGRtYV9mZW5jZV9jYgkJZmluaXNoX2NiOwo+ PiAtCXN0cnVjdCB3b3JrX3N0cnVjdAkJZmluaXNoX3dvcms7Cj4+ICAgIAlzdHJ1Y3QgbGlzdF9o ZWFkCQlub2RlOwo+PiAgICAJdWludDY0X3QJCQlpZDsKPj4gICAgCWF0b21pY190CQkJa2FybWE7 Cj4+IEBAIC0yOTYsNyArMjkyLDcgQEAgaW50IGRybV9zY2hlZF9qb2JfaW5pdChzdHJ1Y3QgZHJt X3NjaGVkX2pvYiAqam9iLAo+PiAgICAJCSAgICAgICB2b2lkICpvd25lcik7Cj4+ICAgIHZvaWQg ZHJtX3NjaGVkX2pvYl9jbGVhbnVwKHN0cnVjdCBkcm1fc2NoZWRfam9iICpqb2IpOwo+PiAgICB2 b2lkIGRybV9zY2hlZF93YWtldXAoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCk7Cj4+ IC12b2lkIGRybV9zY2hlZF9zdG9wKHN0cnVjdCBkcm1fZ3B1X3NjaGVkdWxlciAqc2NoZWQpOwo+ PiArdm9pZCBkcm1fc2NoZWRfc3RvcChzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKnNjaGVkLCBz dHJ1Y3QgZHJtX3NjaGVkX2pvYiAqYmFkKTsKPj4gICAgdm9pZCBkcm1fc2NoZWRfc3RhcnQoc3Ry dWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCwgYm9vbCBmdWxsX3JlY292ZXJ5KTsKPj4gICAg dm9pZCBkcm1fc2NoZWRfcmVzdWJtaXRfam9icyhzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKnNj aGVkKTsKPj4gICAgdm9pZCBkcm1fc2NoZWRfaW5jcmVhc2Vfa2FybWEoc3RydWN0IGRybV9zY2hl ZF9qb2IgKmJhZCk7CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2 ZWw=