From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH v7] drm/i915/execlists: Direct submission of new requests (avoid tasklet/ksoftirqd) Date: Thu, 28 Jun 2018 14:21:06 +0100 Message-ID: <748ff973-2d1e-4ad2-eac4-cecd4fab2fd8@linux.intel.com> References: <20180628123351.31240-9-chris@chris-wilson.co.uk> <20180628131155.31858-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id A08176ED5A for ; Thu, 28 Jun 2018 13:21:08 +0000 (UTC) In-Reply-To: <20180628131155.31858-1-chris@chris-wilson.co.uk> Content-Language: en-GB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDI4LzA2LzIwMTggMTQ6MTEsIENocmlzIFdpbHNvbiB3cm90ZToKPiBCYWNrIGluIGNvbW1p dCAyN2FmNWVlYTU0ZDEgKCJkcm0vaTkxNTogTW92ZSBleGVjbGlzdHMgaXJxIGhhbmRsZXIgdG8g YQo+IGJvdHRvbSBoYWxmIiksIHdlIGNhbWUgdG8gdGhlIGNvbmNsdXNpb24gdGhhdCBydW5uaW5n IG91ciBDU0IgcHJvY2Vzc2luZwo+IGFuZCBFTFNQIHN1Ym1pc3Npb24gZnJvbSBpbnNpZGUgdGhl IGlycSBoYW5kbGVyIHdhcyBhIGJhZCBpZGVhLiBBIHJlYWxseQo+IGJhZCBpZGVhIGFzIHdlIGNv dWxkIGltcG9zZSBuZWFybHkgMXMgbGF0ZW5jeSBvbiBvdGhlciB1c2VycyBvZiB0aGUKPiBzeXN0 ZW0sIG9uIGF2ZXJhZ2UhIERlZmVycmluZyBvdXIgd29yayB0byBhIHRhc2tsZXQgYWxsb3dlZCB1 cyB0byBkbyB0aGUKPiBwcm9jZXNzaW5nIHdpdGggaXJxcyBlbmFibGVkLCByZWR1Y2luZyB0aGUg aW1wYWN0IHRvIGFuIGF2ZXJhZ2Ugb2YgYWJvdXQKPiA1MHVzLgo+IAo+IFdlIGhhdmUgc2luY2Ug ZXJhZGljYXRlZCB0aGUgdXNlIG9mIGZvcmNld2FrZWQgbW1pbyBmcm9tIGluc2lkZSB0aGUgQ1NC Cj4gcHJvY2Vzc2luZyBhbmQgRUxTUCBzdWJtaXNzaW9uLCBicmluZ2luZyB0aGUgaW1wYWN0IGRv d24gdG8gYXJvdW5kIDV1cwo+IChvbiBLYWJ5bGFrZSk7IGFuIG9yZGVyIG9mIG1hZ25pdHVkZSBi ZXR0ZXIgdGhhbiBvdXIgbWVhc3VyZW1lbnRzIDIKPiB5ZWFycyBhZ28gb24gQnJvYWR3ZWxsIGFu ZCBvbmx5IGFib3V0IDJ4IHdvcnNlIG9uIGF2ZXJhZ2UgdGhhbiB0aGUKPiBnZW1fc3lzbGF0ZW5j eSBvbiBhbiB1bmxhZGVuIHN5c3RlbS4KPiAKPiBJbiB0aGlzIGl0ZXJhdGlvbiBvZiB0aGUgdGFz a2xldC12cy1kaXJlY3Qgc3VibWlzc2lvbiBkZWJhdGUsIHdlIHNlZWsgYQo+IGNvbXByb21pc2Ug d2hlcmUgYnkgd2Ugc3VibWl0IG5ldyByZXF1ZXN0cyBpbW1lZGlhdGVseSB0byB0aGUgSFcgYnV0 Cj4gZGVmZXIgcHJvY2Vzc2luZyB0aGUgQ1MgaW50ZXJydXB0IG9udG8gYSB0YXNrbGV0LiBXZSBn YWluIHRoZSBhZHZhbnRhZ2UKPiBvZiBsb3ctbGF0ZW5jeSBhbmQga3NvZnRpcnFkIGF2b2lkYW5j ZSB3aGVuIHdha2luZyB1cCB0aGUgSFcsIHdoaWxlCj4gYXZvaWRpbmcgdGhlIHN5c3RlbS13aWRl IHN0YXJ2YXRpb24gb2Ygb3VyIENTIGlycS1zdG9ybXMuCj4gCj4gQ29tcGFyaW5nIHRoZSBpbXBh Y3Qgb24gdGhlIG1heGltdW0gbGF0ZW5jeSBvYnNlcnZlZCAodGhhdCBpcyB0aGUgdGltZQo+IHN0 b2xlbiBmcm9tIGFuIFJUIHByb2Nlc3MpIG92ZXIgYSAxMjBzIGludGVydmFsLCByZXBlYXRlZCBz ZXZlcmFsIHRpbWVzCj4gKHVzaW5nIGdlbV9zeXNsYXRlbmN5LCBzaW1pbGFyIHRvIFJUJ3MgY3lj bGljdGVzdCkgd2hpbGUgdGhlIHN5c3RlbSBpcwo+IGZ1bGx5IGxhZGVuIHdpdGggaTkxNSBub3Bz LCB3ZSBzZWUgdGhhdCBkaXJlY3Qgc3VibWlzc2lvbiBhbiBhY3R1YWxseQo+IGltcHJvdmUgdGhl IHdvcnNlIGNhc2UuCj4gCj4gTWF4aW11bSBsYXRlbmN5IGluIG1pY3Jvc2Vjb25kcyBvZiBhIHRo aXJkIHBhcnR5IFJUIHRocmVhZAo+IChnZW1fc3lzbGF0ZW5jeSAtdCAxMjAgLWYgMikKPiAgICB4 IEFsd2F5cyB1c2luZyB0YXNrbGV0cyAoYSBjb3VwbGUgb2YgPjEwMDB1cyBvdXRsaWVycyByZW1v dmVkKQo+ICAgICsgT25seSB1c2luZyB0YXNrbGV0cyBmcm9tIENTIGlycSwgZGlyZWN0IHN1Ym1p c3Npb24gb2YgcmVxdWVzdHMKPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwo+IHwgICAgICAgICAgKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 Cj4gfCAgICAgICAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwKPiB8ICAgICAgICAgICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAo+IHwgICAgICAgICAgKyAg ICAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8Cj4gfCAgICAgICAgICArICsgICAgICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwKPiB8ICAgICAgICsgICsgKyAgICAgKyAgeCAgICAgeCAg ICAgeCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAo+IHwgICAgICArKysg KyArICAgICArICB4ICB4ICB4ICB4ICB4ICB4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8Cj4gfCAgICAgICsrKyArICsrICArICsgICp4IHggIHggIHggIHggIHggICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwKPiB8ICAgICAgKysrICsgKysgICsgKiAgKnggeCAg KiAgeCAgeCAgeCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAo+IHwgICAgKyAr KysgKyArKyAgKiAqICsqeHh4ICAqICB4ICB4ICB4eCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8Cj4gfCAgICAqICsrKyArICsrKysqICp4KyoqeHgrICogIHggIHggeHh4eCB4ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKPiB8ICAgKip4KysrKyorKyoqKyp4KngqKioq eCsgKiAreCB4eCB4eHh4IHggICAgICAgICAgeCAgICAgICAgICAgICAgICAgICAgfAo+IHx4KiAq KioqKiorKioqKioqKioqKioqKioqKysqKyoqKnh4eHh4eCogeHgqeCAgICAgeHh4ICsgICAgICAg ICAgICAgICAgeCt8Cj4gfCAgICAgICAgICAgICB8X19fX19fX19fX01BX19fX19fX19fX198ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKPiB8ICAgICAgfF9fX19fX01fX0FfX19f X19fX3wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAo+ICst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rCj4gICAgICBOICAgICAgICAgICBNaW4gICAgICAgICAgIE1heCAgICAg ICAgTWVkaWFuICAgICAgICAgICBBdmcgICAgICAgIFN0ZGRldgo+IHggMTE4ICAgICAgICAgICAg OTEgICAgICAgICAgIDE4NiAgICAgICAgICAgMTI0ICAgICAxMjUuMjg4MTQgICAgIDE2LjI3OTEz Nwo+ICsgMTIwICAgICAgICAgICAgOTIgICAgICAgICAgIDE4NyAgICAgICAgICAgMTA5ICAgICAx MTIuMDA4MzMgICAgIDEzLjQ1ODYxNwo+IERpZmZlcmVuY2UgYXQgOTUuMCUgY29uZmlkZW5jZQo+ IAktMTMuMjc5OCArLy0gMy43OTIxOQo+IAktMTAuNTk5NCUgKy8tIDMuMDI2NzclCj4gCShTdHVk ZW50J3MgdCwgcG9vbGVkIHMgPSAxNC45MjM3KQo+IAo+IEhvd2V2ZXIgdGhlIG1lYW4gbGF0ZW5j eSBpcyBhZHZlcnNlbHkgYWZmZWN0ZWQ6Cj4gCj4gTWVhbiBsYXRlbmN5IGluIG1pY3Jvc2Vjb25k cyBvZiBhIHRoaXJkIHBhcnR5IFJUIHRocmVhZAo+IChnZW1fc3lzbGF0ZW5jeSAtdCAxMjAgLWYg MSkKPiAgICB4IEFsd2F5cyB1c2luZyB0YXNrbGV0cwo+ICAgICsgT25seSB1c2luZyB0YXNrbGV0 cyBmcm9tIENTIGlycSwgZGlyZWN0IHN1Ym1pc3Npb24gb2YgcmVxdWVzdHMKPiArLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKwo+IHwgICAgICAgICAgIHh4eHh4eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArICAgKysgICAgICAgICB8Cj4gfCAgICAgICAgICAgeHh4eHh4ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgICArKyAgICAgICAgIHwKPiB8ICAgICAg ICAgICB4eHh4eHggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKysrICsr ICAgICAgICAgfAo+IHwgICAgICAgICAgIHh4eHh4eHggICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKysrKysgKysgICAgICAgICB8Cj4gfCAgICAgICAgICAgeHh4eHh4eCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArKysrKyArKyAgICAgICAgIHwKPiB8ICAg ICAgICAgICB4eHh4eHh4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrKysr ICsrKyAgICAgICAgfAo+IHwgICAgICAgICAgIHh4eHh4eHggICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsgKysrKysrKysrKyAgICAgICB8Cj4gfCAgICAgICAgICAgeHh4eHh4eHgg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArKyArKysrKysrKysrICAgICAgIHwKPiB8 ICAgICAgICAgICB4eHh4eHh4eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrICsr KysrKysrKysgICAgICAgfAo+IHwgICAgICAgICAgeHh4eHh4eHh4eCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKysrKysrKysrKysrKysrICAgICB8Cj4gfCAgICAgICAgIHh4eHh4eHh4 eHh4ICAgIHggICAgICAgICAgICAgICAgICAgICAgICAgICArKysrKysrKysrKysrKysgICAgIHwK PiB8eCAgICAgICB4eHh4eHh4eHh4eHh4ICAgeCAgICAgICAgICAgKyAgICAgICAgICAgICsgKysr KysrKysrKysrKysrKysrICArfAo+IHwgICAgICAgICAgIHxfX0FfX3wgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4gfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxfX19fQV9fX3wgICAgICAg IHwKPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKwo+ICAgICAgTiAgICAgICAgICAgTWluICAgICAgICAgICBN YXggICAgICAgIE1lZGlhbiAgICAgICAgICAgQXZnICAgICAgICBTdGRkZXYKPiB4IDEyMCAgICAg ICAgIDMuNTA2ICAgICAgICAgMy43MjcgICAgICAgICAzLjYzMSAgICAgMy42MzIxNDE3ICAgIDAu MDI3NzMxMDkKPiArIDEyMCAgICAgICAgIDMuODM0ICAgICAgICAgNC4xNDkgICAgICAgICA0LjAz OSAgICAgNC4wMzc1MTY3ICAgMC4wNDEyMjE2NzYKPiBEaWZmZXJlbmNlIGF0IDk1LjAlIGNvbmZp ZGVuY2UKPiAJMC40MDUzNzUgKy8tIDAuMDA4ODg5MTMKPiAJMTEuMTYwOCUgKy8tIDAuMjQ0NzM1 JQo+IAkoU3R1ZGVudCdzIHQsIHBvb2xlZCBzID0gMC4wMzUxMykKPiAKPiBIb3dldmVyLCBzaW5j ZSB0aGUgbWVhbiBsYXRlbmN5IGNvcnJlc3BvbmRzIHRvIHRoZSBhbW91bnQgb2YgaXJxc29mZgo+ IHByb2Nlc3Npbmcgd2UgaGF2ZSB0byBkbyBmb3IgYSBDUyBpbnRlcnJ1cHQsIHdlIG9ubHkgbmVl ZCB0byBzcGVlZCB0aGF0Cj4gdXAgdG8gYmVuZWZpdCBub3QganVzdCBzeXN0ZW0gbGF0ZW5jeSBi dXQgb3VyIG93biB0aHJvdWdocHV0Lgo+IAo+IHYyOiBSZW1lbWJlciB0byBkZWZlciBzdWJtaXNz aW9ucyB3aGVuIHVuZGVyIHJlc2V0Lgo+IHY0OiBPbmx5IHVzZSBkaXJlY3Qgc3VibWlzc2lvbiBm b3IgbmV3IHJlcXVlc3RzCj4gdjU6IEJlIGF3YXJlIHRoYXQgd2l0aCBtaXhpbmcgZGlyZWN0IHRh c2tsZXQgZXZhbHVhdGlvbiBhbmQgZGVmZXJyZWQKPiB0YXNrbGV0cywgd2UgbWF5IGVuZCB1cCBp ZGxpbmcgYmVmb3JlIHJ1bm5pbmcgdGhlIGRlZmVycmVkIHRhc2tsZXQuCj4gdjY6IFJlbW92ZSB0 aGUgcmVkdWRhbnQgbGlrZWx5KCkgZnJvbSB0YXNrbGV0X2lzX2VuYWJsZWQoKSwgcmVzdHJpY3Qg dGhlCj4gYW5ub3RhdGlvbiB0byByZXNldF9pbl9wcm9ncmVzcygpLgo+IHY3OiBUYWtlIHRoZSBm dWxsIHRpbWVsaW5lLmxvY2sgd2hlbiBlbmFibGluZyBwZXJmX3BtdSBzdGF0cyBhcyB0aGUKPiB0 YXNrbGV0IGlzIG5vIGxvbmdlciBhIHZhbGlkIGd1YXJkLiBBIGNvbnNlcXVlbmNlIGlzIHRoYXQg dGhlIHN0YXRzIGFyZQo+IG5vdyBvbmx5IHZhbGlkIGZvciBlbmdpbmVzIGFsc28gdXNpbmcgdGhl IHRpbWVsaW5lLmxvY2sgdG8gcHJvY2Vzcwo+IHN0YXRlLgo+IAo+IFRlc3RjYXNlOiBpZ3QvZ2Vt X2V4ZWNfbGF0ZW5jeS8qcnRob2cqCj4gUmVmZXJlbmNlczogMjdhZjVlZWE1NGQxICgiZHJtL2k5 MTU6IE1vdmUgZXhlY2xpc3RzIGlycSBoYW5kbGVyIHRvIGEgYm90dG9tIGhhbGYiKQo+IFN1Z2dl c3RlZC1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KPiBTaWdu ZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiBDYzog VHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KPiAtLS0KPiAgIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmggICAgICAgIHwgICA1ICsrCj4gICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyB8ICAgOCArLQo+ICAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfbHJjLmMgICAgICAgfCAxMDIgKysrKysrKysrKysrKysrKy0tLS0tLS0tLQo+ ICAgMyBmaWxlcyBjaGFuZ2VkLCA3NSBpbnNlcnRpb25zKCspLCA0MCBkZWxldGlvbnMoLSkKPiAK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtLmgKPiBpbmRleCAyNjFkYTU3NzgyOWEuLmU0NjU5Mjk1Njg3 MiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5oCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uaAo+IEBAIC04OCw0ICs4OCw5IEBAIHN0YXRp YyBpbmxpbmUgdm9pZCBfX3Rhc2tsZXRfZW5hYmxlX3N5bmNfb25jZShzdHJ1Y3QgdGFza2xldF9z dHJ1Y3QgKnQpCj4gICAJCXRhc2tsZXRfa2lsbCh0KTsKPiAgIH0KPiAgIAo+ICtzdGF0aWMgaW5s aW5lIGJvb2wgX190YXNrbGV0X2lzX2VuYWJsZWQoY29uc3Qgc3RydWN0IHRhc2tsZXRfc3RydWN0 ICp0KQo+ICt7Cj4gKwlyZXR1cm4gIWF0b21pY19yZWFkKCZ0LT5jb3VudCk7Cj4gK30KPiArCj4g ICAjZW5kaWYgLyogX19JOTE1X0dFTV9IX18gKi8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9l bmdpbmVfY3MuYwo+IGluZGV4IGFjZTkzOTU4Njg5ZS4uN2ZjOTdiYzUzNjJkIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKPiBAQCAtMTYxOSw4ICsxNjE5LDggQEAg aW50IGludGVsX2VuYWJsZV9lbmdpbmVfc3RhdHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKQo+ICAgCWlmICghaW50ZWxfZW5naW5lX3N1cHBvcnRzX3N0YXRzKGVuZ2luZSkpCj4gICAJ CXJldHVybiAtRU5PREVWOwo+ICAgCj4gLQl0YXNrbGV0X2Rpc2FibGUoJmV4ZWNsaXN0cy0+dGFz a2xldCk7Cj4gLQl3cml0ZV9zZXFsb2NrX2lycXNhdmUoJmVuZ2luZS0+c3RhdHMubG9jaywgZmxh Z3MpOwo+ICsJc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxhZ3Mp Owo+ICsJd3JpdGVfc2VxbG9jaygmZW5naW5lLT5zdGF0cy5sb2NrLCBmbGFncyk7Cj4gICAKPiAg IAlpZiAodW5saWtlbHkoZW5naW5lLT5zdGF0cy5lbmFibGVkID09IH4wKSkgewo+ICAgCQllcnIg PSAtRUJVU1k7Cj4gQEAgLTE2NDQsOCArMTY0NCw4IEBAIGludCBpbnRlbF9lbmFibGVfZW5naW5l X3N0YXRzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgIAl9Cj4gICAKPiAgIHVu bG9jazoKPiAtCXdyaXRlX3NlcXVubG9ja19pcnFyZXN0b3JlKCZlbmdpbmUtPnN0YXRzLmxvY2ss IGZsYWdzKTsKPiAtCXRhc2tsZXRfZW5hYmxlKCZleGVjbGlzdHMtPnRhc2tsZXQpOwo+ICsJd3Jp dGVfc2VxdW5sb2NrKCZlbmdpbmUtPnN0YXRzLmxvY2spOwo+ICsJc3Bpbl9sb2NrX2lycXJlc3Rv cmUoJmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxhZ3MpOwo+ICAgCj4gICAJcmV0dXJuIGVycjsK PiAgIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+IGluZGV4IDdmOGIyOTY4NGQ5ZC4uYWI4 OWRhYmMyOTY1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiBAQCAtNTYzLDEyICs1 NjMsMTQgQEAgc3RhdGljIHZvaWQgY29tcGxldGVfcHJlZW1wdF9jb250ZXh0KHN0cnVjdCBpbnRl bF9lbmdpbmVfZXhlY2xpc3RzICpleGVjbGlzdHMpCj4gICAJR0VNX0JVR19PTighZXhlY2xpc3Rz X2lzX2FjdGl2ZShleGVjbGlzdHMsIEVYRUNMSVNUU19BQ1RJVkVfUFJFRU1QVCkpOwo+ICAgCj4g ICAJZXhlY2xpc3RzX2NhbmNlbF9wb3J0X3JlcXVlc3RzKGV4ZWNsaXN0cyk7Cj4gLQlleGVjbGlz dHNfdW53aW5kX2luY29tcGxldGVfcmVxdWVzdHMoZXhlY2xpc3RzKTsKPiArCV9fdW53aW5kX2lu Y29tcGxldGVfcmVxdWVzdHMoY29udGFpbmVyX29mKGV4ZWNsaXN0cywKPiArCQkJCQkJICBzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzLAo+ICsJCQkJCQkgIGV4ZWNsaXN0cykpOwo+ICAgCj4gICAJZXhl Y2xpc3RzX2NsZWFyX2FjdGl2ZShleGVjbGlzdHMsIEVYRUNMSVNUU19BQ1RJVkVfUFJFRU1QVCk7 Cj4gICB9Cj4gICAKPiAtc3RhdGljIHZvaWQgX19leGVjbGlzdHNfZGVxdWV1ZShzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gK3N0YXRpYyB2b2lkIGV4ZWNsaXN0c19kZXF1ZXVlKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgIHsKPiAgIAlzdHJ1Y3QgaW50ZWxfZW5n aW5lX2V4ZWNsaXN0cyAqIGNvbnN0IGV4ZWNsaXN0cyA9ICZlbmdpbmUtPmV4ZWNsaXN0czsKPiAg IAlzdHJ1Y3QgZXhlY2xpc3RfcG9ydCAqcG9ydCA9IGV4ZWNsaXN0cy0+cG9ydDsKPiBAQCAtNTc4 LDkgKzU4MCw4IEBAIHN0YXRpYyB2b2lkIF9fZXhlY2xpc3RzX2RlcXVldWUoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKQo+ICAgCXN0cnVjdCByYl9ub2RlICpyYjsKPiAgIAlib29sIHN1 Ym1pdCA9IGZhbHNlOwo+ICAgCj4gLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZlbmdpbmUtPnRpbWVs aW5lLmxvY2spOwo+IC0KPiAtCS8qIEhhcmR3YXJlIHN1Ym1pc3Npb24gaXMgdGhyb3VnaCAyIHBv cnRzLiBDb25jZXB0dWFsbHkgZWFjaCBwb3J0Cj4gKwkvKgo+ICsJICogSGFyZHdhcmUgc3VibWlz c2lvbiBpcyB0aHJvdWdoIDIgcG9ydHMuIENvbmNlcHR1YWxseSBlYWNoIHBvcnQKPiAgIAkgKiBo YXMgYSAoUklOR19TVEFSVCwgUklOR19IRUFELCBSSU5HX1RBSUwpIHR1cGxlLiBSSU5HX1NUQVJU IGlzCj4gICAJICogc3RhdGljIGZvciBhIGNvbnRleHQsIGFuZCB1bmlxdWUgdG8gZWFjaCwgc28g d2Ugb25seSBleGVjdXRlCj4gICAJICogcmVxdWVzdHMgYmVsb25naW5nIHRvIGEgc2luZ2xlIGNv bnRleHQgZnJvbSBlYWNoIHJpbmcuIFJJTkdfSEVBRAo+IEBAIC03NzAsMTUgKzc3MSw2IEBAIHN0 YXRpYyB2b2lkIF9fZXhlY2xpc3RzX2RlcXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKQo+ICAgCQkgICAhcG9ydF9pc3NldChlbmdpbmUtPmV4ZWNsaXN0cy5wb3J0KSk7Cj4gICB9 Cj4gICAKPiAtc3RhdGljIHZvaWQgZXhlY2xpc3RzX2RlcXVldWUoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lKQo+IC17Cj4gLQl1bnNpZ25lZCBsb25nIGZsYWdzOwo+IC0KPiAtCXNwaW5f bG9ja19pcnFzYXZlKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2ssIGZsYWdzKTsKPiAtCV9fZXhlY2xp c3RzX2RlcXVldWUoZW5naW5lKTsKPiAtCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+ dGltZWxpbmUubG9jaywgZmxhZ3MpOwo+IC19Cj4gLQo+ICAgdm9pZAo+ICAgZXhlY2xpc3RzX2Nh bmNlbF9wb3J0X3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICogY29uc3Qg ZXhlY2xpc3RzKQo+ICAgewo+IEBAIC05NTcsNiArOTQ5LDEyIEBAIHN0YXRpYyB2b2lkIGV4ZWNs aXN0c19jYW5jZWxfcmVxdWVzdHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAg CXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxhZ3MpOwo+ ICAgfQo+ICAgCj4gK3N0YXRpYyBpbmxpbmUgYm9vbAo+ICtyZXNldF9pbl9wcm9ncmVzcyhjb25z dCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqZXhlY2xpc3RzKQo+ICt7Cj4gKwlyZXR1 cm4gdW5saWtlbHkoIV9fdGFza2xldF9pc19lbmFibGVkKCZleGVjbGlzdHMtPnRhc2tsZXQpKTsK PiArfQo+ICsKPiAgIHN0YXRpYyB2b2lkIHByb2Nlc3NfY3NiKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSkKPiAgIHsKPiAgIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqIGNv bnN0IGV4ZWNsaXN0cyA9ICZlbmdpbmUtPmV4ZWNsaXN0czsKPiBAQCAtMTEwOCwxOCArMTEwNiw5 IEBAIHN0YXRpYyB2b2lkIHByb2Nlc3NfY3NiKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSkKPiAgIAlleGVjbGlzdHMtPmNzYl9oZWFkID0gaGVhZDsKPiAgIH0KPiAgIAo+IC0vKgo+IC0g KiBDaGVjayB0aGUgdW5yZWFkIENvbnRleHQgU3RhdHVzIEJ1ZmZlcnMgYW5kIG1hbmFnZSB0aGUg c3VibWlzc2lvbiBvZiBuZXcKPiAtICogY29udGV4dHMgdG8gdGhlIEVMU1AgYWNjb3JkaW5nbHku Cj4gLSAqLwo+IC1zdGF0aWMgdm9pZCBleGVjbGlzdHNfc3VibWlzc2lvbl90YXNrbGV0KHVuc2ln bmVkIGxvbmcgZGF0YSkKPiArc3RhdGljIHZvaWQgX19leGVjbGlzdHNfc3VibWlzc2lvbl90YXNr bGV0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmNvbnN0IGVuZ2luZSkKPiAgIHsKPiAtCXN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKiBjb25zdCBlbmdpbmUgPSAoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqKWRhdGE7Cj4gLQo+IC0JR0VNX1RSQUNFKCIlcyBhd2FrZT89JWQsIGFjdGl2ZT0leFxuIiwK PiAtCQkgIGVuZ2luZS0+bmFtZSwKPiAtCQkgIGVuZ2luZS0+aTkxNS0+Z3QuYXdha2UsCj4gLQkJ ICBlbmdpbmUtPmV4ZWNsaXN0cy5hY3RpdmUpOwo+ICsJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZW5n aW5lLT50aW1lbGluZS5sb2NrKTsKPiAgIAo+ICAgCS8qCj4gICAJICogV2UgY2FuIHNraXAgYWNx dWlyaW5nIGludGVsX3J1bnRpbWVfcG1fZ2V0KCkgaGVyZSBhcyBpdCB3YXMgdGFrZW4KPiBAQCAt MTEzNiw2ICsxMTI1LDI4IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19zdWJtaXNzaW9uX3Rhc2ts ZXQodW5zaWduZWQgbG9uZyBkYXRhKQo+ICAgCQlleGVjbGlzdHNfZGVxdWV1ZShlbmdpbmUpOwo+ ICAgfQo+ICAgCj4gKy8qCj4gKyAqIENoZWNrIHRoZSB1bnJlYWQgQ29udGV4dCBTdGF0dXMgQnVm ZmVycyBhbmQgbWFuYWdlIHRoZSBzdWJtaXNzaW9uIG9mIG5ldwo+ICsgKiBjb250ZXh0cyB0byB0 aGUgRUxTUCBhY2NvcmRpbmdseS4KPiArICovCj4gK3N0YXRpYyB2b2lkIGV4ZWNsaXN0c19zdWJt aXNzaW9uX3Rhc2tsZXQodW5zaWduZWQgbG9uZyBkYXRhKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICogY29uc3QgZW5naW5lID0gKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKilkYXRh Owo+ICsJdW5zaWduZWQgbG9uZyBmbGFnczsKPiArCj4gKwlHRU1fVFJBQ0UoIiVzIGF3YWtlPz0l ZCwgYWN0aXZlPSV4XG4iLAo+ICsJCSAgZW5naW5lLT5uYW1lLAo+ICsJCSAgZW5naW5lLT5pOTE1 LT5ndC5hd2FrZSwKPiArCQkgIGVuZ2luZS0+ZXhlY2xpc3RzLmFjdGl2ZSk7Cj4gKwo+ICsJc3Bp bl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxhZ3MpOwo+ICsKPiArCWlm IChlbmdpbmUtPmk5MTUtPmd0LmF3YWtlKSAvKiB3ZSBtYXkgYmUgZGVsYXllZCB1bnRpbCBhZnRl ciB3ZSBpZGxlISAqLwoKTm8gcmFjZXMgYmV0d2VlbiB0aGUgY2hlY2sgYW5kIHRhc2tsZXQgY2Fs bD8gSW4gb3RoZXIgd29yZHMgdGhlIGNvZGUgCnBhdGggd2hpY2ggeW91IHdlcmUgZGVzY3JpYmlu ZyB0aGF0IGNhbiByYWNlIGlzIHRha2luZyB0aGUgdGltZWxpbmUgbG9jaz8KCj4gKwkJX19leGVj bGlzdHNfc3VibWlzc2lvbl90YXNrbGV0KGVuZ2luZSk7Cj4gKwo+ICsJc3Bpbl91bmxvY2tfaXJx cmVzdG9yZSgmZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7Cj4gK30KPiArCj4gICBzdGF0 aWMgdm9pZCBxdWV1ZV9yZXF1ZXN0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKPiAg IAkJCSAgc3RydWN0IGk5MTVfc2NoZWRfbm9kZSAqbm9kZSwKPiAgIAkJCSAgaW50IHByaW8pCj4g QEAgLTExNDQsMTYgKzExNTUsMzAgQEAgc3RhdGljIHZvaWQgcXVldWVfcmVxdWVzdChzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4gICAJCSAgICAgICZsb29rdXBfcHJpb2xpc3QoZW5n aW5lLCBwcmlvKS0+cmVxdWVzdHMpOwo+ICAgfQo+ICAgCj4gLXN0YXRpYyB2b2lkIF9fc3VibWl0 X3F1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgaW50IHByaW8pCj4gK3N0YXRp YyB2b2lkIF9fdXBkYXRlX3F1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgaW50 IHByaW8pCj4gICB7Cj4gICAJZW5naW5lLT5leGVjbGlzdHMucXVldWVfcHJpb3JpdHkgPSBwcmlv Owo+IC0JdGFza2xldF9oaV9zY2hlZHVsZSgmZW5naW5lLT5leGVjbGlzdHMudGFza2xldCk7Cj4g K30KPiArCj4gK3N0YXRpYyB2b2lkIF9fc3VibWl0X3F1ZXVlX2ltbShzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICog Y29uc3QgZXhlY2xpc3RzID0gJmVuZ2luZS0+ZXhlY2xpc3RzOwo+ICsKPiArCWlmIChyZXNldF9p bl9wcm9ncmVzcyhleGVjbGlzdHMpKQo+ICsJCXJldHVybjsgLyogZGVmZXIgdW50aWwgd2UgcmVz dGFydCB0aGUgZW5naW5lIGZvbGxvd2luZyByZXNldCAqLwoKV2UgaGF2ZSBhIHRhc2tsZXQga2lj ayBzb21ld2hlcmUgaW4gdGhhdCBwYXRoPwoKPiArCj4gKwlpZiAoZXhlY2xpc3RzLT50YXNrbGV0 LmZ1bmMgPT0gZXhlY2xpc3RzX3N1Ym1pc3Npb25fdGFza2xldCkKPiArCQlfX2V4ZWNsaXN0c19z dWJtaXNzaW9uX3Rhc2tsZXQoZW5naW5lKTsKPiArCWVsc2UKPiArCQl0YXNrbGV0X2hpX3NjaGVk dWxlKCZleGVjbGlzdHMtPnRhc2tsZXQpOwo+ICAgfQo+ICAgCj4gICBzdGF0aWMgdm9pZCBzdWJt aXRfcXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBpbnQgcHJpbykKPiAgIHsK PiAtCWlmIChwcmlvID4gZW5naW5lLT5leGVjbGlzdHMucXVldWVfcHJpb3JpdHkpCj4gLQkJX19z dWJtaXRfcXVldWUoZW5naW5lLCBwcmlvKTsKPiArCWlmIChwcmlvID4gZW5naW5lLT5leGVjbGlz dHMucXVldWVfcHJpb3JpdHkpIHsKPiArCQlfX3VwZGF0ZV9xdWV1ZShlbmdpbmUsIHByaW8pOwo+ ICsJCV9fc3VibWl0X3F1ZXVlX2ltbShlbmdpbmUpOwo+ICsJfQo+ICAgfQo+ICAgCj4gICBzdGF0 aWMgdm9pZCBleGVjbGlzdHNfc3VibWl0X3JlcXVlc3Qoc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVx dWVzdCkKPiBAQCAtMTE2NSwxMSArMTE5MCwxMiBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfc3Vi bWl0X3JlcXVlc3Qoc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkKPiAgIAlzcGluX2xvY2tf aXJxc2F2ZSgmZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7Cj4gICAKPiAgIAlxdWV1ZV9y ZXF1ZXN0KGVuZ2luZSwgJnJlcXVlc3QtPnNjaGVkLCBycV9wcmlvKHJlcXVlc3QpKTsKPiAtCXN1 Ym1pdF9xdWV1ZShlbmdpbmUsIHJxX3ByaW8ocmVxdWVzdCkpOwo+ICAgCj4gICAJR0VNX0JVR19P TighZW5naW5lLT5leGVjbGlzdHMuZmlyc3QpOwo+ICAgCUdFTV9CVUdfT04obGlzdF9lbXB0eSgm cmVxdWVzdC0+c2NoZWQubGluaykpOwo+ICAgCj4gKwlzdWJtaXRfcXVldWUoZW5naW5lLCBycV9w cmlvKHJlcXVlc3QpKTsKPiArCj4gICAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW5naW5lLT50 aW1lbGluZS5sb2NrLCBmbGFncyk7Cj4gICB9Cj4gICAKPiBAQCAtMTI5Niw4ICsxMzIyLDExIEBA IHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19zY2hlZHVsZShzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1 ZXN0LAo+ICAgCQl9Cj4gICAKPiAgIAkJaWYgKHByaW8gPiBlbmdpbmUtPmV4ZWNsaXN0cy5xdWV1 ZV9wcmlvcml0eSAmJgo+IC0JCSAgICBpOTE1X3N3X2ZlbmNlX2RvbmUoJnNjaGVkX3RvX3JlcXVl c3Qobm9kZSktPnN1Ym1pdCkpCj4gLQkJCV9fc3VibWl0X3F1ZXVlKGVuZ2luZSwgcHJpbyk7Cj4g KwkJICAgIGk5MTVfc3dfZmVuY2VfZG9uZSgmc2NoZWRfdG9fcmVxdWVzdChub2RlKS0+c3VibWl0 KSkgewo+ICsJCQkvKiBkZWZlciBzdWJtaXNzaW9uIHVudGlsIGFmdGVyIGFsbCBvZiBvdXIgdXBk YXRlcyAqLwo+ICsJCQlfX3VwZGF0ZV9xdWV1ZShlbmdpbmUsIHByaW8pOwo+ICsJCQl0YXNrbGV0 X2hpX3NjaGVkdWxlKCZlbmdpbmUtPmV4ZWNsaXN0cy50YXNrbGV0KTsKCl9pbW0gc3VmZml4IG9u IF9fc3VibWl0X3F1ZXVlX2ltbSBzb3VuZHMgdW51c2VkIGlmIHRoZXJlIGlzIG5vIHBsYWluIApf X3N1Ym1pdF9xdWV1ZSwgd2hpY2ggY291bGQgaGF2ZSBiZWVuIHVzZWQgaGVyZS4gQnV0IG1laC4K Cj4gKwkJfQo+ICAgCX0KPiAgIAo+ICAgCXNwaW5fdW5sb2NrX2lycSgmZW5naW5lLT50aW1lbGlu ZS5sb2NrKTsKPiBAQCAtMTg3OCw2ICsxOTA3LDcgQEAgZXhlY2xpc3RzX3Jlc2V0X3ByZXBhcmUo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAgewo+ICAgCXN0cnVjdCBpbnRlbF9l bmdpbmVfZXhlY2xpc3RzICogY29uc3QgZXhlY2xpc3RzID0gJmVuZ2luZS0+ZXhlY2xpc3RzOwo+ ICAgCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QsICphY3RpdmU7Cj4gKwl1bnNpZ25lZCBs b25nIGZsYWdzOwo+ICAgCj4gICAJR0VNX1RSQUNFKCIlc1xuIiwgZW5naW5lLT5uYW1lKTsKPiAg IAo+IEBAIC0xODkyLDYgKzE5MjIsOCBAQCBleGVjbGlzdHNfcmVzZXRfcHJlcGFyZShzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gICAJICovCj4gICAJX190YXNrbGV0X2Rpc2FibGVf c3luY19vbmNlKCZleGVjbGlzdHMtPnRhc2tsZXQpOwo+ICAgCj4gKwlzcGluX2xvY2tfaXJxc2F2 ZSgmZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7Cj4gKwo+ICAgCS8qCj4gICAJICogV2Ug d2FudCB0byBmbHVzaCB0aGUgcGVuZGluZyBjb250ZXh0IHN3aXRjaGVzLCBoYXZpbmcgZGlzYWJs ZWQKPiAgIAkgKiB0aGUgdGFza2xldCBhYm92ZSwgd2UgY2FuIGFzc3VtZSBleGNsdXNpdmUgYWNj ZXNzIHRvIHRoZSBleGVjbGlzdHMuCj4gQEAgLTE5MDksMTUgKzE5NDEsMTIgQEAgZXhlY2xpc3Rz X3Jlc2V0X3ByZXBhcmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAgCWFjdGl2 ZSA9IE5VTEw7Cj4gICAJcmVxdWVzdCA9IHBvcnRfcmVxdWVzdChleGVjbGlzdHMtPnBvcnQpOwo+ ICAgCWlmIChyZXF1ZXN0KSB7Cj4gLQkJdW5zaWduZWQgbG9uZyBmbGFnczsKPiAtCj4gICAJCS8q Cj4gICAJCSAqIFByZXZlbnQgdGhlIGJyZWFkY3J1bWIgZnJvbSBhZHZhbmNpbmcgYmVmb3JlIHdl IGRlY2lkZQo+ICAgCQkgKiB3aGljaCByZXF1ZXN0IGlzIGN1cnJlbnRseSBhY3RpdmUuCj4gICAJ CSAqLwo+ICAgCQlpbnRlbF9lbmdpbmVfc3RvcF9jcyhlbmdpbmUpOwo+ICAgCj4gLQkJc3Bpbl9s b2NrX2lycXNhdmUoJmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxhZ3MpOwo+ICAgCQlsaXN0X2Zv cl9lYWNoX2VudHJ5X2Zyb21fcmV2ZXJzZShyZXF1ZXN0LAo+ICAgCQkJCQkJICZlbmdpbmUtPnRp bWVsaW5lLnJlcXVlc3RzLAo+ICAgCQkJCQkJIGxpbmspIHsKPiBAQCAtMTkyNyw5ICsxOTU2LDEw IEBAIGV4ZWNsaXN0c19yZXNldF9wcmVwYXJlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSkKPiAgIAo+ICAgCQkJYWN0aXZlID0gcmVxdWVzdDsKPiAgIAkJfQo+IC0JCXNwaW5fdW5sb2Nr X2lycXJlc3RvcmUoJmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxhZ3MpOwo+ICAgCX0KPiAgIAo+ ICsJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7 Cj4gKwo+ICAgCXJldHVybiBhY3RpdmU7Cj4gICB9Cj4gICAKPiAKCk11Y2ggZWFzaWVyIHRvIHJl YWQgYW5kIHVuZGVyc3RhbmQgbm93IHRoYXQgaXQgaXMgc21hbGxlciwgdGhhbmtzIQoKSnVzdCBh IGNvdXBsZSBxdWVzdGlvbiBhYm92ZSBhbmQgbm8gb3RoZXIgY29tcGxhaW50cy4KClJlZ2FyZHMs CgpUdnJ0a28KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==