From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lionel Landwerlin Subject: Re: [PATCH] drm/i915: Unshare the idle-barrier from other kernel requests Date: Thu, 25 Jul 2019 13:26:27 +0300 Message-ID: References: <20190725074305.22754-1-chris@chris-wilson.co.uk> <20190725093810.19159-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 mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 708716E6D3 for ; Thu, 25 Jul 2019 10:26:43 +0000 (UTC) In-Reply-To: <20190725093810.19159-1-chris@chris-wilson.co.uk> Content-Language: en-US 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 T24gMjUvMDcvMjAxOSAxMjozOCwgQ2hyaXMgV2lsc29uIHdyb3RlOgo+IFVuZGVyIHNvbWUgY2ly Y3Vtc3RhbmNlcyAoc2VlIGludGVsX2NvbnRleHRfcHJlcGFyZV9yZW1vdGVfcmVxdWVzdCksIHdl Cj4gbWF5IHVzZSBhIHJlcXVlc3QgYWxvbmcgYSBrZXJuZWwgY29udGV4dCB0byBtb2RpZnkgdGhl IGxvZ2ljYWwgc3RhdGUgb2YKPiBhbm90aGVyLiBUbyBrZWVwIHRoZSB0YXJnZXQgY29udGV4dCBp biBwbGFjZSB3aGlsZSB0aGUgcmVxdWVzdCBleGVjdXRlcywKPiB3ZSB0YWtlIGFuIGFjdGl2ZSBy ZWZlcmVuY2Ugb24gaXQgdXNpbmcgdGhlIGtlcm5lbCB0aW1lbGluZS4gVGhpcyBpcyB0aGUKPiBz YW1lIHRpbWVsaW5lIGFzIHdlIHVzZSBmb3IgdGhlIGlkbGUtYmFycmllciwgYW5kIHNvIHdlIGVu ZCB1cCByZXVzaW5nCj4gdGhlIHNhbWUgYWN0aXZlIG5vZGUuIEV4Y2VwdCB0aGF0IHRoZSBpZGxl IGJhcnJpZXIgaXMgc3BlY2lhbCBhbmQgY2Fubm90Cj4gYmUgcmV1c2VkIGluIHRoaXMgbWFubmVy ISBHaXZlIHRoZSBpZGxlLWJhcnJpZXIgYSByZXNlcnZlZCB0aW1lbGluZQo+IGluZGV4ICgwKSBz byB0aGF0IGl0IHdpbGwgYWx3YXlzIGJlIHVuaXF1ZSAoZ2l2ZSBvciB0YWtlIHdlIG1heSBpc3N1 ZQo+IG11bHRpcGxlIGlkbGUgYmFycmllcnMgYWNyb3NzIG11bHRpcGxlIGVuZ2luZXMpLgo+Cj4g UmVwb3J0ZWQtYnk6IExpb25lbCBMYW5kd2VybGluIDxsaW9uZWwuZy5sYW5kd2VybGluQGludGVs LmNvbT4KPiBGaXhlczogY2U0NzZjODBiOGJmICgiZHJtL2k5MTU6IEtlZXAgY29udGV4dHMgcGlu bmVkIHVudGlsIGFmdGVyIHRoZSBuZXh0IGtlcm5lbCBjb250ZXh0IHN3aXRjaCIpCj4gRml4ZXM6 IGE5ODc3ZGEyZDYyOSAoImRybS9pOTE1L29hOiBSZWNvbmZpZ3VyZSBjb250ZXh0cyBvbiB0aGUg Zmx5IikKPiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5j by51az4KPiBDYzogTGlvbmVsIExhbmR3ZXJsaW4gPGxpb25lbC5nLmxhbmR3ZXJsaW5AaW50ZWwu Y29tPgo+IENjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgoKCk5v dCBodWdlbHkgc3RyZXNzZWQgdGVzdGVkLCBidXQgc2VlbXMgdG8gc29sdmUgdGhlIHByb2JsZW0g SSdtIHNlZWluZyA6CgoKVGVzdGVkLWJ5OiBMaW9uZWwgTGFuZHdlcmxpbiA8bGlvbmVsLmcubGFu ZHdlcmxpbkBpbnRlbC5jb20+CgoKVGhhbmtzIQoKCj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9pbnRlbF9jb250ZXh0LmMgICAgICAgfCAgNDIgKystCj4gICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC9pbnRlbF9jb250ZXh0LmggICAgICAgfCAgMTMgKy0KPiAgIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2NvbnRleHQuYyAgICB8IDMyMSArKysrKysrKysrKysrKysr KysKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfYWN0aXZlLmMgICAgICAgICAgICB8ICA2 NyArKystCj4gICAuLi4vZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfbGl2ZV9zZWxmdGVzdHMuaCAg fCAgIDMgKy0KPiAgIDUgZmlsZXMgY2hhbmdlZCwgNDA4IGluc2VydGlvbnMoKyksIDM4IGRlbGV0 aW9ucygtKQo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3Nl bGZ0ZXN0X2NvbnRleHQuYwo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L2ludGVsX2NvbnRleHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2NvbnRleHQu Ywo+IGluZGV4IDkyOTJiNmNhNWU5Yy4uYmMyMDE2MWJhYjlmIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2NvbnRleHQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L2ludGVsX2NvbnRleHQuYwo+IEBAIC0xNjIsMTggKzE2Miw4IEBAIHN0YXRpYyBp bnQgX19pbnRlbF9jb250ZXh0X2FjdGl2ZShzdHJ1Y3QgaTkxNV9hY3RpdmUgKmFjdGl2ZSkKPiAg IAlpZiAoZXJyKQo+ICAgCQlnb3RvIGVycl9yaW5nOwo+ICAgCj4gLQkvKiBQcmVhbGxvY2F0ZSB0 cmFja2luZyBub2RlcyAqLwo+IC0JaWYgKCFpOTE1X2dlbV9jb250ZXh0X2lzX2tlcm5lbChjZS0+ Z2VtX2NvbnRleHQpKSB7Cj4gLQkJZXJyID0gaTkxNV9hY3RpdmVfYWNxdWlyZV9wcmVhbGxvY2F0 ZV9iYXJyaWVyKCZjZS0+YWN0aXZlLAo+IC0JCQkJCQkJICAgICAgY2UtPmVuZ2luZSk7Cj4gLQkJ aWYgKGVycikKPiAtCQkJZ290byBlcnJfc3RhdGU7Cj4gLQl9Cj4gLQo+ICAgCXJldHVybiAwOwo+ ICAgCj4gLWVycl9zdGF0ZToKPiAtCV9fY29udGV4dF91bnBpbl9zdGF0ZShjZS0+c3RhdGUpOwo+ ICAgZXJyX3Jpbmc6Cj4gICAJaW50ZWxfcmluZ191bnBpbihjZS0+cmluZyk7Cj4gICBlcnJfcHV0 Ogo+IEBAIC0xODEsNiArMTcxLDM0IEBAIHN0YXRpYyBpbnQgX19pbnRlbF9jb250ZXh0X2FjdGl2 ZShzdHJ1Y3QgaTkxNV9hY3RpdmUgKmFjdGl2ZSkKPiAgIAlyZXR1cm4gZXJyOwo+ICAgfQo+ICAg Cj4gK2ludCBpbnRlbF9jb250ZXh0X2FjdGl2ZV9hY3F1aXJlKHN0cnVjdCBpbnRlbF9jb250ZXh0 ICpjZSkKPiArewo+ICsJaW50IGVycjsKPiArCj4gKwllcnIgPSBpOTE1X2FjdGl2ZV9hY3F1aXJl KCZjZS0+YWN0aXZlKTsKPiArCWlmIChlcnIpCj4gKwkJcmV0dXJuIGVycjsKPiArCj4gKwkvKiBQ cmVhbGxvY2F0ZSB0cmFja2luZyBub2RlcyAqLwo+ICsJaWYgKGNlLT5zdGF0ZSAmJiAhaTkxNV9n ZW1fY29udGV4dF9pc19rZXJuZWwoY2UtPmdlbV9jb250ZXh0KSkgewo+ICsJCWVyciA9IGk5MTVf YWN0aXZlX2FjcXVpcmVfcHJlYWxsb2NhdGVfYmFycmllcigmY2UtPmFjdGl2ZSwKPiArCQkJCQkJ CSAgICAgIGNlLT5lbmdpbmUpOwo+ICsJCWlmIChlcnIpIHsKPiArCQkJaTkxNV9hY3RpdmVfcmVs ZWFzZSgmY2UtPmFjdGl2ZSk7Cj4gKwkJCXJldHVybiBlcnI7Cj4gKwkJfQo+ICsJfQo+ICsKPiAr CXJldHVybiAwOwo+ICt9Cj4gKwo+ICt2b2lkIGludGVsX2NvbnRleHRfYWN0aXZlX3JlbGVhc2Uo c3RydWN0IGludGVsX2NvbnRleHQgKmNlKQo+ICt7Cj4gKwkvKiBOb2RlcyBwcmVhbGxvY2F0ZWQg aW4gaW50ZWxfY29udGV4dF9hY3RpdmUoKSAqLwo+ICsJaTkxNV9hY3RpdmVfYWNxdWlyZV9iYXJy aWVyKCZjZS0+YWN0aXZlKTsKPiArCWk5MTVfYWN0aXZlX3JlbGVhc2UoJmNlLT5hY3RpdmUpOwo+ ICt9Cj4gKwo+ICAgdm9pZAo+ICAgaW50ZWxfY29udGV4dF9pbml0KHN0cnVjdCBpbnRlbF9jb250 ZXh0ICpjZSwKPiAgIAkJICAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKPiBAQCAtMjg0 LDMgKzMwMiw3IEBAIHN0cnVjdCBpOTE1X3JlcXVlc3QgKmludGVsX2NvbnRleHRfY3JlYXRlX3Jl cXVlc3Qoc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQo+ICAgCj4gICAJcmV0dXJuIHJxOwo+ICAg fQo+ICsKPiArI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X1NFTEZURVNUKQo+ICsjaW5j bHVkZSAic2VsZnRlc3RfY29udGV4dC5jIgo+ICsjZW5kaWYKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvaW50ZWxfY29udGV4dC5oCj4gaW5kZXggMjNjN2U0YzBjZTdjLi4wN2Y5OTI0ZGU0OGYgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dC5oCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dC5oCj4gQEAgLTEwNCwxNyAr MTA0LDggQEAgc3RhdGljIGlubGluZSB2b2lkIGludGVsX2NvbnRleHRfZXhpdChzdHJ1Y3QgaW50 ZWxfY29udGV4dCAqY2UpCj4gICAJCWNlLT5vcHMtPmV4aXQoY2UpOwo+ICAgfQo+ICAgCj4gLXN0 YXRpYyBpbmxpbmUgaW50IGludGVsX2NvbnRleHRfYWN0aXZlX2FjcXVpcmUoc3RydWN0IGludGVs X2NvbnRleHQgKmNlKQo+IC17Cj4gLQlyZXR1cm4gaTkxNV9hY3RpdmVfYWNxdWlyZSgmY2UtPmFj dGl2ZSk7Cj4gLX0KPiAtCj4gLXN0YXRpYyBpbmxpbmUgdm9pZCBpbnRlbF9jb250ZXh0X2FjdGl2 ZV9yZWxlYXNlKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKPiAtewo+IC0JLyogTm9kZXMgcHJl YWxsb2NhdGVkIGluIGludGVsX2NvbnRleHRfYWN0aXZlKCkgKi8KPiAtCWk5MTVfYWN0aXZlX2Fj cXVpcmVfYmFycmllcigmY2UtPmFjdGl2ZSk7Cj4gLQlpOTE1X2FjdGl2ZV9yZWxlYXNlKCZjZS0+ YWN0aXZlKTsKPiAtfQo+ICtpbnQgaW50ZWxfY29udGV4dF9hY3RpdmVfYWNxdWlyZShzdHJ1Y3Qg aW50ZWxfY29udGV4dCAqY2UpOwo+ICt2b2lkIGludGVsX2NvbnRleHRfYWN0aXZlX3JlbGVhc2Uo c3RydWN0IGludGVsX2NvbnRleHQgKmNlKTsKPiAgIAo+ICAgc3RhdGljIGlubGluZSBzdHJ1Y3Qg aW50ZWxfY29udGV4dCAqaW50ZWxfY29udGV4dF9nZXQoc3RydWN0IGludGVsX2NvbnRleHQgKmNl KQo+ICAgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9j b250ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9jb250ZXh0LmMKPiBu ZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uNGQyNTFmYWFmY2MwCj4g LS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2Nv bnRleHQuYwo+IEBAIC0wLDAgKzEsMzIxIEBACj4gKy8qCj4gKyAqIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBHUEwtMi4wCj4gKyAqCj4gKyAqIENvcHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBv cmF0aW9uCj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgImk5MTVfc2VsZnRlc3QuaCIKPiArI2luY2x1 ZGUgImludGVsX2d0LmgiCj4gKwo+ICsjaW5jbHVkZSAiZ2VtL3NlbGZ0ZXN0cy9tb2NrX2NvbnRl eHQuaCIKPiArI2luY2x1ZGUgInNlbGZ0ZXN0cy9pZ3RfZmx1c2hfdGVzdC5oIgo+ICsjaW5jbHVk ZSAic2VsZnRlc3RzL21vY2tfZHJtLmgiCj4gKwo+ICtzdGF0aWMgaW50IHJlcXVlc3Rfc3luYyhz dHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKPiArewo+ICsJbG9uZyB0aW1lb3V0Owo+ICsJaW50IGVy ciA9IDA7Cj4gKwo+ICsJaTkxNV9yZXF1ZXN0X2dldChycSk7Cj4gKwo+ICsJaTkxNV9yZXF1ZXN0 X2FkZChycSk7Cj4gKwl0aW1lb3V0ID0gaTkxNV9yZXF1ZXN0X3dhaXQocnEsIDAsIEhaIC8gMTAp Owo+ICsJaWYgKHRpbWVvdXQgPCAwKQo+ICsJCWVyciA9IHRpbWVvdXQ7Cj4gKwllbHNlCj4gKwkJ aTkxNV9yZXF1ZXN0X3JldGlyZV91cHRvKHJxKTsKPiArCj4gKwlpOTE1X3JlcXVlc3RfcHV0KHJx KTsKPiArCj4gKwlyZXR1cm4gZXJyOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGNvbnRleHRfc3lu YyhzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF90aW1lbGlu ZSAqdGwgPSBjZS0+cmluZy0+dGltZWxpbmU7Cj4gKwlpbnQgZXJyID0gMDsKPiArCj4gKwlkbyB7 Cj4gKwkJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7Cj4gKwkJbG9uZyB0aW1lb3V0Owo+ICsKPiAr CQlyY3VfcmVhZF9sb2NrKCk7Cj4gKwkJcnEgPSByY3VfZGVyZWZlcmVuY2UodGwtPmxhc3RfcmVx dWVzdC5yZXF1ZXN0KTsKPiArCQlpZiAocnEpCj4gKwkJCXJxID0gaTkxNV9yZXF1ZXN0X2dldF9y Y3UocnEpOwo+ICsJCXJjdV9yZWFkX3VubG9jaygpOwo+ICsJCWlmICghcnEpCj4gKwkJCWJyZWFr Owo+ICsKPiArCQl0aW1lb3V0ID0gaTkxNV9yZXF1ZXN0X3dhaXQocnEsIDAsIEhaIC8gMTApOwo+ ICsJCWlmICh0aW1lb3V0IDwgMCkKPiArCQkJZXJyID0gdGltZW91dDsKPiArCQllbHNlCj4gKwkJ CWk5MTVfcmVxdWVzdF9yZXRpcmVfdXB0byhycSk7Cj4gKwo+ICsJCWk5MTVfcmVxdWVzdF9wdXQo cnEpOwo+ICsJfSB3aGlsZSAoIWVycik7Cj4gKwo+ICsJcmV0dXJuIGVycjsKPiArfQo+ICsKPiAr c3RhdGljIGludCBfX2xpdmVfYWN0aXZlX2NvbnRleHQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lLAo+ICsJCQkJIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpmaXhtZSkKPiArewo+ICsJ c3RydWN0IGludGVsX2NvbnRleHQgKmNlOwo+ICsJaW50IHBhc3M7Cj4gKwlpbnQgZXJyOwo+ICsK PiArCS8qCj4gKwkgKiBXZSBrZWVwIGFjdGl2ZSBjb250ZXh0cyBhbGl2ZSB1bnRpbCBhZnRlciBh IHN1YnNlcXVlbnQgY29udGV4dAo+ICsJICogc3dpdGNoIGFzIHRoZSBmaW5hbCB3cml0ZSBmcm9t IHRoZSBjb250ZXh0LXNhdmUgd2lsbCBiZSBhZnRlcgo+ICsJICogd2UgcmV0aXJlIHRoZSBmaW5h bCByZXF1ZXN0LiBXZSB0cmFjayB3aGVuIHdlIHVucGluIHRoZSBjb250ZXh0LAo+ICsJICogdW5k ZXIgdGhlIHByZXN1bXB0aW9uIHRoYXQgdGhlIGZpbmFsIHBpbiBpcyBmcm9tIHRoZSBsYXN0IHJl cXVlc3QsCj4gKwkgKiBhbmQgaW5zdGVhZCBvZiBpbW1lZGlhdGVseSB1bnBpbm5pbmcgdGhlIGNv bnRleHQsIHdlIGFkZCBhIHRhc2sKPiArCSAqIHRvIHVucGluIHRoZSBjb250ZXh0IGZyb20gdGhl IG5leHQgaWRsZS1iYXJyaWVyLgo+ICsJICoKPiArCSAqIFRoaXMgdGVzdCBtYWtlcyBzdXJlIHRo YXQgdGhlIGNvbnRleHQgaXMga2VwdCBhbGl2ZSB1bnRpbCBhCj4gKwkgKiBzdWJzZXF1ZW50IGlk bGUtYmFycmllciAoZW1pdHRlZCB3aGVuIHRoZSBlbmdpbmUgd2FrZXJlZiBoaXRzIDAKPiArCSAq IHdpdGggbm8gbW9yZSBvdXRzdGFuZGluZyByZXF1ZXN0cykuCj4gKwkgKi8KPiArCj4gKwlpZiAo aW50ZWxfZW5naW5lX3BtX2lzX2F3YWtlKGVuZ2luZSkpIHsKPiArCQlwcl9lcnIoIiVzIGlzIGF3 YWtlIGJlZm9yZSBzdGFydGluZyAlcyFcbiIsCj4gKwkJICAgICAgIGVuZ2luZS0+bmFtZSwgX19m dW5jX18pOwo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsJfQo+ICsKPiArCWNlID0gaW50ZWxfY29u dGV4dF9jcmVhdGUoZml4bWUsIGVuZ2luZSk7Cj4gKwlpZiAoIWNlKQo+ICsJCXJldHVybiAtRU5P TUVNOwo+ICsKPiArCWZvciAocGFzcyA9IDA7IHBhc3MgPD0gMjsgcGFzcysrKSB7Cj4gKwkJc3Ry dWN0IGk5MTVfcmVxdWVzdCAqcnE7Cj4gKwo+ICsJCXJxID0gaW50ZWxfY29udGV4dF9jcmVhdGVf cmVxdWVzdChjZSk7Cj4gKwkJaWYgKElTX0VSUihycSkpIHsKPiArCQkJZXJyID0gUFRSX0VSUihy cSk7Cj4gKwkJCWdvdG8gZXJyOwo+ICsJCX0KPiArCj4gKwkJZXJyID0gcmVxdWVzdF9zeW5jKHJx KTsKPiArCQlpZiAoZXJyKQo+ICsJCQlnb3RvIGVycjsKPiArCj4gKwkJLyogQ29udGV4dCB3aWxs IGJlIGtlcHQgYWN0aXZlIHVudGlsIGFmdGVyIGFuIGlkbGUtYmFycmllci4gKi8KPiArCQlpZiAo aTkxNV9hY3RpdmVfaXNfaWRsZSgmY2UtPmFjdGl2ZSkpIHsKPiArCQkJcHJfZXJyKCJjb250ZXh0 IGlzIG5vdCBhY3RpdmU7IGV4cGVjdGVkIGlkbGUtYmFycmllciAocGFzcyAlZClcbiIsIHBhc3Mp Owo+ICsJCQllcnIgPSAtRUlOVkFMOwo+ICsJCQlnb3RvIGVycjsKPiArCQl9Cj4gKwo+ICsJCWlm ICghaW50ZWxfZW5naW5lX3BtX2lzX2F3YWtlKGVuZ2luZSkpIHsKPiArCQkJcHJfZXJyKCIlcyBp cyBhc2xlZXAgYmVmb3JlIGlkbGUtYmFycmllciAlcyFcbiIsCj4gKwkJCSAgICAgICBlbmdpbmUt Pm5hbWUsIF9fZnVuY19fKTsKPiArCQkJZXJyID0gLUVJTlZBTDsKPiArCQkJZ290byBlcnI7Cj4g KwkJfQo+ICsJfQo+ICsKPiArCS8qIE5vdyBtYWtlIHN1cmUgb3VyIGlkbGUtYmFycmllcnMgYXJl IGZsdXNoZWQgKi8KPiArCWVyciA9IGNvbnRleHRfc3luYyhlbmdpbmUtPmtlcm5lbF9jb250ZXh0 KTsKPiArCWlmIChlcnIpCj4gKwkJZ290byBlcnI7Cj4gKwo+ICsJaWYgKCFpOTE1X2FjdGl2ZV9p c19pZGxlKCZjZS0+YWN0aXZlKSkgewo+ICsJCXByX2VycigiY29udGV4dCBpcyBzdGlsbCBhY3Rp dmUhIik7Cj4gKwkJZXJyID0gLUVJTlZBTDsKPiArCX0KPiArCj4gKwlpZiAoaW50ZWxfZW5naW5l X3BtX2lzX2F3YWtlKGVuZ2luZSkpIHsKPiArCQlzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IGRybV9k ZWJ1Z19wcmludGVyKF9fZnVuY19fKTsKPiArCj4gKwkJaW50ZWxfZW5naW5lX2R1bXAoZW5naW5l LCAmcCwKPiArCQkJCSAgIiVzIGlzIHN0aWxsIGF3YWtlIGFmdGVyIGlkbGUtYmFycmllcnNcbiIs Cj4gKwkJCQkgIGVuZ2luZS0+bmFtZSk7Cj4gKwkJR0VNX1RSQUNFX0RVTVAoKTsKPiArCj4gKwkJ ZXJyID0gLUVJTlZBTDsKPiArCQlnb3RvIGVycjsKPiArCX0KPiArCj4gK2VycjoKPiArCWludGVs X2NvbnRleHRfcHV0KGNlKTsKPiArCXJldHVybiBlcnI7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQg bGl2ZV9hY3RpdmVfY29udGV4dCh2b2lkICphcmcpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9ndCAq Z3QgPSBhcmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Cj4gKwlzdHJ1Y3Qg aTkxNV9nZW1fY29udGV4dCAqZml4bWU7Cj4gKwllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKPiAr CXN0cnVjdCBkcm1fZmlsZSAqZmlsZTsKPiArCWludCBlcnIgPSAwOwo+ICsKPiArCWZpbGUgPSBt b2NrX2ZpbGUoZ3QtPmk5MTUpOwo+ICsJaWYgKElTX0VSUihmaWxlKSkKPiArCQlyZXR1cm4gUFRS X0VSUihmaWxlKTsKPiArCj4gKwltdXRleF9sb2NrKCZndC0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRl eCk7Cj4gKwo+ICsJZml4bWUgPSBsaXZlX2NvbnRleHQoZ3QtPmk5MTUsIGZpbGUpOwo+ICsJaWYg KCFmaXhtZSkgewo+ICsJCWVyciA9IC1FTk9NRU07Cj4gKwkJZ290byB1bmxvY2s7Cj4gKwl9Cj4g Kwo+ICsJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKSB7Cj4gKwkJZXJyID0g X19saXZlX2FjdGl2ZV9jb250ZXh0KGVuZ2luZSwgZml4bWUpOwo+ICsJCWlmIChlcnIpCj4gKwkJ CWJyZWFrOwo+ICsKPiArCQllcnIgPSBpZ3RfZmx1c2hfdGVzdChndC0+aTkxNSwgSTkxNV9XQUlU X0xPQ0tFRCk7Cj4gKwkJaWYgKGVycikKPiArCQkJYnJlYWs7Cj4gKwl9Cj4gKwo+ICt1bmxvY2s6 Cj4gKwltdXRleF91bmxvY2soJmd0LT5pOTE1LT5kcm0uc3RydWN0X211dGV4KTsKPiArCW1vY2tf ZmlsZV9mcmVlKGd0LT5pOTE1LCBmaWxlKTsKPiArCXJldHVybiBlcnI7Cj4gK30KPiArCj4gK3N0 YXRpYyBpbnQgX19saXZlX3JlbW90ZV9jb250ZXh0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSwKPiArCQkJCSBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqZml4bWUpCj4gK3sKPiArCXN0 cnVjdCBpbnRlbF9jb250ZXh0ICpsb2NhbCwgKnJlbW90ZTsKPiArCXN0cnVjdCBpOTE1X3JlcXVl c3QgKnJxOwo+ICsJaW50IHBhc3M7Cj4gKwlpbnQgZXJyOwo+ICsKPiArCS8qCj4gKwkgKiBDaGVj ayB0aGF0IG91ciBpZGxlIGJhcnJpZXJzIGRvIG5vdCBpbnRlcmZlcmUgd2l0aCBub3JtYWwKPiAr CSAqIGFjdGl2aXR5IHRyYWNraW5nLiBJbiBwYXJ0aWN1bGFyLCBjaGVjayB0aGF0IG9wZXJhdGlu Zwo+ICsJICogb24gdGhlIGNvbnRleHQgaW1hZ2UgcmVtb3RlbHkgKGludGVsX2NvbnRleHRfcHJl cGFyZV9yZW1vdGVfcmVxdWVzdCkKPiArCSAqIHdoaWNoIGluc2VydHMgZm9yaWVnbiBmZW5jZXMg aW50byBpbnRlbF9jb250ZXh0LmFjdGl2ZSBhcmUgbm90Cj4gKwkgKiBjbG9iYmVyZWQuCj4gKwkg Ki8KPiArCj4gKwlyZW1vdGUgPSBpbnRlbF9jb250ZXh0X2NyZWF0ZShmaXhtZSwgZW5naW5lKTsK PiArCWlmICghcmVtb3RlKQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ICsKPiArCWxvY2FsID0gaW50 ZWxfY29udGV4dF9jcmVhdGUoZml4bWUsIGVuZ2luZSk7Cj4gKwlpZiAoIWxvY2FsKSB7Cj4gKwkJ ZXJyID0gLUVOT01FTTsKPiArCQlnb3RvIGVycl9yZW1vdGU7Cj4gKwl9Cj4gKwo+ICsJZm9yIChw YXNzID0gMDsgcGFzcyA8PSAyOyBwYXNzKyspIHsKPiArCQllcnIgPSBpbnRlbF9jb250ZXh0X3Bp bihyZW1vdGUpOwo+ICsJCWlmIChlcnIpCj4gKwkJCWdvdG8gZXJyX2xvY2FsOwo+ICsKPiArCQly cSA9IGludGVsX2NvbnRleHRfY3JlYXRlX3JlcXVlc3QobG9jYWwpOwo+ICsJCWlmIChJU19FUlIo cnEpKSB7Cj4gKwkJCWVyciA9IFBUUl9FUlIocnEpOwo+ICsJCQlnb3RvIGVycl91bnBpbjsKPiAr CQl9Cj4gKwo+ICsJCWVyciA9IGludGVsX2NvbnRleHRfcHJlcGFyZV9yZW1vdGVfcmVxdWVzdChy ZW1vdGUsIHJxKTsKPiArCQlpZiAoZXJyKSB7Cj4gKwkJCWk5MTVfcmVxdWVzdF9hZGQocnEpOwo+ ICsJCQlnb3RvIGVycl91bnBpbjsKPiArCQl9Cj4gKwo+ICsJCWVyciA9IHJlcXVlc3Rfc3luYyhy cSk7Cj4gKwkJaWYgKGVycikKPiArCQkJZ290byBlcnJfdW5waW47Cj4gKwo+ICsJCWludGVsX2Nv bnRleHRfdW5waW4ocmVtb3RlKTsKPiArCQllcnIgPSBpbnRlbF9jb250ZXh0X3BpbihyZW1vdGUp Owo+ICsJCWlmIChlcnIpCj4gKwkJCWdvdG8gZXJyX2xvY2FsOwo+ICsKPiArCQlycSA9IGk5MTVf cmVxdWVzdF9jcmVhdGUoZW5naW5lLT5rZXJuZWxfY29udGV4dCk7Cj4gKwkJaWYgKElTX0VSUihy cSkpIHsKPiArCQkJZXJyID0gUFRSX0VSUihycSk7Cj4gKwkJCWdvdG8gZXJyX3VucGluOwo+ICsJ CX0KPiArCj4gKwkJZXJyID0gaW50ZWxfY29udGV4dF9wcmVwYXJlX3JlbW90ZV9yZXF1ZXN0KHJl bW90ZSwgcnEpOwo+ICsJCWlmIChlcnIpIHsKPiArCQkJaTkxNV9yZXF1ZXN0X2FkZChycSk7Cj4g KwkJCWdvdG8gZXJyX3VucGluOwo+ICsJCX0KPiArCj4gKwkJZXJyID0gcmVxdWVzdF9zeW5jKHJx KTsKPiArCQlpZiAoZXJyKQo+ICsJCQlnb3RvIGVycl91bnBpbjsKPiArCj4gKwkJaW50ZWxfY29u dGV4dF91bnBpbihyZW1vdGUpOwo+ICsKPiArCQlpZiAoaTkxNV9hY3RpdmVfaXNfaWRsZSgmcmVt b3RlLT5hY3RpdmUpKSB7Cj4gKwkJCXByX2VycigicmVtb3RlIGNvbnRleHQgaXMgbm90IGFjdGl2 ZTsgZXhwZWN0ZWQgaWRsZS1iYXJyaWVyIChwYXNzICVkKVxuIiwgcGFzcyk7Cj4gKwkJCWVyciA9 IC1FSU5WQUw7Cj4gKwkJCWdvdG8gZXJyX2xvY2FsOwo+ICsJCX0KPiArCX0KPiArCj4gKwlnb3Rv IGVycl9sb2NhbDsKPiArCj4gK2Vycl91bnBpbjoKPiArCWludGVsX2NvbnRleHRfdW5waW4ocmVt b3RlKTsKPiArZXJyX2xvY2FsOgo+ICsJaW50ZWxfY29udGV4dF9wdXQobG9jYWwpOwo+ICtlcnJf cmVtb3RlOgo+ICsJaW50ZWxfY29udGV4dF9wdXQocmVtb3RlKTsKPiArCXJldHVybiBlcnI7Cj4g K30KPiArCj4gK3N0YXRpYyBpbnQgbGl2ZV9yZW1vdGVfY29udGV4dCh2b2lkICphcmcpCj4gK3sK PiArCXN0cnVjdCBpbnRlbF9ndCAqZ3QgPSBhcmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmU7Cj4gKwlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqZml4bWU7Cj4gKwllbnVtIGlu dGVsX2VuZ2luZV9pZCBpZDsKPiArCXN0cnVjdCBkcm1fZmlsZSAqZmlsZTsKPiArCWludCBlcnIg PSAwOwo+ICsKPiArCWZpbGUgPSBtb2NrX2ZpbGUoZ3QtPmk5MTUpOwo+ICsJaWYgKElTX0VSUihm aWxlKSkKPiArCQlyZXR1cm4gUFRSX0VSUihmaWxlKTsKPiArCj4gKwltdXRleF9sb2NrKCZndC0+ aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gKwo+ICsJZml4bWUgPSBsaXZlX2NvbnRleHQoZ3Qt Pmk5MTUsIGZpbGUpOwo+ICsJaWYgKCFmaXhtZSkgewo+ICsJCWVyciA9IC1FTk9NRU07Cj4gKwkJ Z290byB1bmxvY2s7Cj4gKwl9Cj4gKwo+ICsJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5 MTUsIGlkKSB7Cj4gKwkJZXJyID0gX19saXZlX3JlbW90ZV9jb250ZXh0KGVuZ2luZSwgZml4bWUp Owo+ICsJCWlmIChlcnIpCj4gKwkJCWJyZWFrOwo+ICsKPiArCQllcnIgPSBpZ3RfZmx1c2hfdGVz dChndC0+aTkxNSwgSTkxNV9XQUlUX0xPQ0tFRCk7Cj4gKwkJaWYgKGVycikKPiArCQkJYnJlYWs7 Cj4gKwl9Cj4gKwo+ICt1bmxvY2s6Cj4gKwltdXRleF91bmxvY2soJmd0LT5pOTE1LT5kcm0uc3Ry dWN0X211dGV4KTsKPiArCW1vY2tfZmlsZV9mcmVlKGd0LT5pOTE1LCBmaWxlKTsKPiArCXJldHVy biBlcnI7Cj4gK30KPiArCj4gK2ludCBpbnRlbF9jb250ZXh0X2xpdmVfc2VsZnRlc3RzKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ICt7Cj4gKwlzdGF0aWMgY29uc3Qgc3RydWN0IGk5 MTVfc3VidGVzdCB0ZXN0c1tdID0gewo+ICsJCVNVQlRFU1QobGl2ZV9hY3RpdmVfY29udGV4dCks Cj4gKwkJU1VCVEVTVChsaXZlX3JlbW90ZV9jb250ZXh0KSwKPiArCX07Cj4gKwlzdHJ1Y3QgaW50 ZWxfZ3QgKmd0ID0gJmk5MTUtPmd0Owo+ICsKPiArCWlmIChpbnRlbF9ndF9pc193ZWRnZWQoZ3Qp KQo+ICsJCXJldHVybiAwOwo+ICsKPiArCXJldHVybiBpbnRlbF9ndF9saXZlX3N1YnRlc3RzKHRl c3RzLCBndCk7Cj4gK30KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9h Y3RpdmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfYWN0aXZlLmMKPiBpbmRleCAxM2Yz MDRhMjlmYzguLmUwNGFmYjUxOTI2NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2FjdGl2ZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9hY3RpdmUu Ywo+IEBAIC0xODQsNiArMTg0LDcgQEAgYWN0aXZlX2luc3RhbmNlKHN0cnVjdCBpOTE1X2FjdGl2 ZSAqcmVmLCB1NjQgaWR4KQo+ICAgCXJlZi0+Y2FjaGUgPSBub2RlOwo+ICAgCW11dGV4X3VubG9j aygmcmVmLT5tdXRleCk7Cj4gICAKPiArCUJVSUxEX0JVR19PTihvZmZzZXRvZih0eXBlb2YoKm5v ZGUpLCBiYXNlKSk7Cj4gICAJcmV0dXJuICZub2RlLT5iYXNlOwo+ICAgfQo+ICAgCj4gQEAgLTIx Miw2ICsyMTMsOCBAQCBpbnQgaTkxNV9hY3RpdmVfcmVmKHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVm LAo+ICAgCXN0cnVjdCBpOTE1X2FjdGl2ZV9yZXF1ZXN0ICphY3RpdmU7Cj4gICAJaW50IGVycjsK PiAgIAo+ICsJR0VNX0JVR19PTighdGltZWxpbmUpOyAvKiByZXNlcnZlZCBmb3IgaWRsZS1iYXJy aWVyICovCj4gKwo+ICAgCS8qIFByZXZlbnQgcmVhcGluZyBpbiBjYXNlIHdlIG1hbGxvYy93YWl0 IHdoaWxlIGJ1aWxkaW5nIHRoZSB0cmVlICovCj4gICAJZXJyID0gaTkxNV9hY3RpdmVfYWNxdWly ZShyZWYpOwo+ICAgCWlmIChlcnIpCj4gQEAgLTIyMiw2ICsyMjUsNyBAQCBpbnQgaTkxNV9hY3Rp dmVfcmVmKHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmLAo+ICAgCQllcnIgPSAtRU5PTUVNOwo+ICAg CQlnb3RvIG91dDsKPiAgIAl9Cj4gKwlHRU1fQlVHX09OKElTX0VSUihhY3RpdmUtPnJlcXVlc3Qp KTsKPiAgIAo+ICAgCWlmICghaTkxNV9hY3RpdmVfcmVxdWVzdF9pc3NldChhY3RpdmUpKQo+ICAg CQlhdG9taWNfaW5jKCZyZWYtPmNvdW50KTsKPiBAQCAtMzQyLDYgKzM0NiwzNCBAQCB2b2lkIGk5 MTVfYWN0aXZlX2Zpbmkoc3RydWN0IGk5MTVfYWN0aXZlICpyZWYpCj4gICB9Cj4gICAjZW5kaWYK PiAgIAo+ICtzdGF0aWMgc3RydWN0IGFjdGl2ZV9ub2RlICppZGxlX2JhcnJpZXIoc3RydWN0IGk5 MTVfYWN0aXZlICpyZWYpCj4gK3sKPiArCXN0cnVjdCBhY3RpdmVfbm9kZSAqaWRsZSA9IE5VTEw7 Cj4gKwlzdHJ1Y3QgcmJfbm9kZSAqcmI7Cj4gKwo+ICsJaWYgKFJCX0VNUFRZX1JPT1QoJnJlZi0+ dHJlZSkpCj4gKwkJcmV0dXJuIE5VTEw7Cj4gKwo+ICsJbXV0ZXhfbG9jaygmcmVmLT5tdXRleCk7 Cj4gKwlmb3IgKHJiID0gcmJfZmlyc3QoJnJlZi0+dHJlZSk7IHJiOyByYiA9IHJiX25leHQocmIp KSB7Cj4gKwkJc3RydWN0IGFjdGl2ZV9ub2RlICpub2RlOwo+ICsKPiArCQlub2RlID0gcmJfZW50 cnkocmIsIHR5cGVvZigqbm9kZSksIG5vZGUpOwo+ICsJCWlmIChub2RlLT50aW1lbGluZSkKPiAr CQkJYnJlYWs7Cj4gKwo+ICsJCWlmICghaTkxNV9hY3RpdmVfcmVxdWVzdF9pc3NldCgmbm9kZS0+ YmFzZSkpIHsKPiArCQkJR0VNX0JVR19PTighbGlzdF9lbXB0eSgmbm9kZS0+YmFzZS5saW5rKSk7 Cj4gKwkJCXJiX2VyYXNlKHJiLCAmcmVmLT50cmVlKTsKPiArCQkJaWRsZSA9IG5vZGU7Cj4gKwkJ CWJyZWFrOwo+ICsJCX0KPiArCX0KPiArCW11dGV4X3VubG9jaygmcmVmLT5tdXRleCk7Cj4gKwo+ ICsJcmV0dXJuIGlkbGU7Cj4gK30KPiArCj4gICBpbnQgaTkxNV9hY3RpdmVfYWNxdWlyZV9wcmVh bGxvY2F0ZV9iYXJyaWVyKHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmLAo+ICAgCQkJCQkgICAgc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAgewo+IEBAIC0zNTIsMjIgKzM4NCwyOSBA QCBpbnQgaTkxNV9hY3RpdmVfYWNxdWlyZV9wcmVhbGxvY2F0ZV9iYXJyaWVyKHN0cnVjdCBpOTE1 X2FjdGl2ZSAqcmVmLAo+ICAgCj4gICAJR0VNX0JVR19PTighZW5naW5lLT5tYXNrKTsKPiAgIAlm b3JfZWFjaF9lbmdpbmVfbWFza2VkKGVuZ2luZSwgaTkxNSwgZW5naW5lLT5tYXNrLCB0bXApIHsK PiAtCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqa2N0eCA9IGVuZ2luZS0+a2VybmVsX2NvbnRleHQ7 Cj4gICAJCXN0cnVjdCBhY3RpdmVfbm9kZSAqbm9kZTsKPiAgIAo+IC0JCW5vZGUgPSBrbWVtX2Nh Y2hlX2FsbG9jKGdsb2JhbC5zbGFiX2NhY2hlLCBHRlBfS0VSTkVMKTsKPiAtCQlpZiAodW5saWtl bHkoIW5vZGUpKSB7Cj4gLQkJCWVyciA9IC1FTk9NRU07Cj4gLQkJCWdvdG8gdW53aW5kOwo+ICsJ CW5vZGUgPSBpZGxlX2JhcnJpZXIocmVmKTsKPiArCQlpZiAoIW5vZGUpIHsKPiArCQkJbm9kZSA9 IGttZW1fY2FjaGVfYWxsb2MoZ2xvYmFsLnNsYWJfY2FjaGUsCj4gKwkJCQkJCUdGUF9LRVJORUwg fAo+ICsJCQkJCQlfX0dGUF9SRVRSWV9NQVlGQUlMIHwKPiArCQkJCQkJX19HRlBfTk9XQVJOKTsK PiArCQkJaWYgKHVubGlrZWx5KCFub2RlKSkgewo+ICsJCQkJZXJyID0gLUVOT01FTTsKPiArCQkJ CWdvdG8gdW53aW5kOwo+ICsJCQl9Cj4gKwo+ICsJCQlub2RlLT5yZWYgPSByZWY7Cj4gKwkJCW5v ZGUtPnRpbWVsaW5lID0gMDsKPiArCQkJbm9kZS0+YmFzZS5yZXRpcmUgPSBub2RlX3JldGlyZTsK PiAgIAkJfQo+ICAgCj4gLQkJaTkxNV9hY3RpdmVfcmVxdWVzdF9pbml0KCZub2RlLT5iYXNlLAo+ IC0JCQkJCSAodm9pZCAqKWVuZ2luZSwgbm9kZV9yZXRpcmUpOwo+IC0JCW5vZGUtPnRpbWVsaW5l ID0ga2N0eC0+cmluZy0+dGltZWxpbmUtPmZlbmNlX2NvbnRleHQ7Cj4gLQkJbm9kZS0+cmVmID0g cmVmOwo+ICsJCWludGVsX2VuZ2luZV9wbV9nZXQoZW5naW5lKTsKPiArCj4gKwkJUkNVX0lOSVRf UE9JTlRFUihub2RlLT5iYXNlLnJlcXVlc3QsICh2b2lkICopZW5naW5lKTsKPiAgIAkJYXRvbWlj X2luYygmcmVmLT5jb3VudCk7Cj4gICAKPiAtCQlpbnRlbF9lbmdpbmVfcG1fZ2V0KGVuZ2luZSk7 Cj4gICAJCWxsaXN0X2FkZCgoc3RydWN0IGxsaXN0X25vZGUgKikmbm9kZS0+YmFzZS5saW5rLAo+ ICAgCQkJICAmcmVmLT5iYXJyaWVycyk7Cj4gICAJfQo+IEBAIC00MDIsNiArNDQxLDcgQEAgdm9p ZCBpOTE1X2FjdGl2ZV9hY3F1aXJlX2JhcnJpZXIoc3RydWN0IGk5MTVfYWN0aXZlICpyZWYpCj4g ICAKPiAgIAkJbm9kZSA9IGNvbnRhaW5lcl9vZigoc3RydWN0IGxpc3RfaGVhZCAqKXBvcywKPiAg IAkJCQkgICAgdHlwZW9mKCpub2RlKSwgYmFzZS5saW5rKTsKPiArCQlHRU1fQlVHX09OKG5vZGUt PnRpbWVsaW5lKTsKPiAgIAo+ICAgCQllbmdpbmUgPSAodm9pZCAqKXJjdV9hY2Nlc3NfcG9pbnRl cihub2RlLT5iYXNlLnJlcXVlc3QpOwo+ICAgCQlSQ1VfSU5JVF9QT0lOVEVSKG5vZGUtPmJhc2Uu cmVxdWVzdCwgRVJSX1BUUigtRUFHQUlOKSk7Cj4gQEAgLTQxMCwxMiArNDUwLDcgQEAgdm9pZCBp OTE1X2FjdGl2ZV9hY3F1aXJlX2JhcnJpZXIoc3RydWN0IGk5MTVfYWN0aXZlICpyZWYpCj4gICAJ CXAgPSAmcmVmLT50cmVlLnJiX25vZGU7Cj4gICAJCXdoaWxlICgqcCkgewo+ICAgCQkJcGFyZW50 ID0gKnA7Cj4gLQkJCWlmIChyYl9lbnRyeShwYXJlbnQsCj4gLQkJCQkgICAgIHN0cnVjdCBhY3Rp dmVfbm9kZSwKPiAtCQkJCSAgICAgbm9kZSktPnRpbWVsaW5lIDwgbm9kZS0+dGltZWxpbmUpCj4g LQkJCQlwID0gJnBhcmVudC0+cmJfcmlnaHQ7Cj4gLQkJCWVsc2UKPiAtCQkJCXAgPSAmcGFyZW50 LT5yYl9sZWZ0Owo+ICsJCQlwID0gJnBhcmVudC0+cmJfbGVmdDsKPiAgIAkJfQo+ICAgCQlyYl9s aW5rX25vZGUoJm5vZGUtPm5vZGUsIHBhcmVudCwgcCk7Cj4gICAJCXJiX2luc2VydF9jb2xvcigm bm9kZS0+bm9kZSwgJnJlZi0+dHJlZSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L3NlbGZ0ZXN0cy9pOTE1X2xpdmVfc2VsZnRlc3RzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9zZWxmdGVzdHMvaTkxNV9saXZlX3NlbGZ0ZXN0cy5oCj4gaW5kZXggMmIzMWE0ZWUwYjRjLi5h ODQxZDNmOWJlZGMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3Rz L2k5MTVfbGl2ZV9zZWxmdGVzdHMuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0 ZXN0cy9pOTE1X2xpdmVfc2VsZnRlc3RzLmgKPiBAQCAtMTUsNiArMTUsNyBAQCBzZWxmdGVzdCh3 b3JrYXJvdW5kcywgaW50ZWxfd29ya2Fyb3VuZHNfbGl2ZV9zZWxmdGVzdHMpCj4gICBzZWxmdGVz dCh0aW1lbGluZXMsIGludGVsX3RpbWVsaW5lX2xpdmVfc2VsZnRlc3RzKQo+ICAgc2VsZnRlc3Qo cmVxdWVzdHMsIGk5MTVfcmVxdWVzdF9saXZlX3NlbGZ0ZXN0cykKPiAgIHNlbGZ0ZXN0KGFjdGl2 ZSwgaTkxNV9hY3RpdmVfbGl2ZV9zZWxmdGVzdHMpCj4gK3NlbGZ0ZXN0KGd0X2NvbnRleHRzLCBp bnRlbF9jb250ZXh0X2xpdmVfc2VsZnRlc3RzKQo+ICAgc2VsZnRlc3Qob2JqZWN0cywgaTkxNV9n ZW1fb2JqZWN0X2xpdmVfc2VsZnRlc3RzKQo+ICAgc2VsZnRlc3QobW1hbiwgaTkxNV9nZW1fbW1h bl9saXZlX3NlbGZ0ZXN0cykKPiAgIHNlbGZ0ZXN0KGRtYWJ1ZiwgaTkxNV9nZW1fZG1hYnVmX2xp dmVfc2VsZnRlc3RzKQo+IEBAIC0yNCw3ICsyNSw3IEBAIHNlbGZ0ZXN0KGd0dCwgaTkxNV9nZW1f Z3R0X2xpdmVfc2VsZnRlc3RzKQo+ICAgc2VsZnRlc3QoZ2VtLCBpOTE1X2dlbV9saXZlX3NlbGZ0 ZXN0cykKPiAgIHNlbGZ0ZXN0KGV2aWN0LCBpOTE1X2dlbV9ldmljdF9saXZlX3NlbGZ0ZXN0cykK PiAgIHNlbGZ0ZXN0KGh1Z2VwYWdlcywgaTkxNV9nZW1faHVnZV9wYWdlX2xpdmVfc2VsZnRlc3Rz KQo+IC1zZWxmdGVzdChjb250ZXh0cywgaTkxNV9nZW1fY29udGV4dF9saXZlX3NlbGZ0ZXN0cykK PiArc2VsZnRlc3QoZ2VtX2NvbnRleHRzLCBpOTE1X2dlbV9jb250ZXh0X2xpdmVfc2VsZnRlc3Rz KQo+ICAgc2VsZnRlc3QoYmx0LCBpOTE1X2dlbV9vYmplY3RfYmx0X2xpdmVfc2VsZnRlc3RzKQo+ ICAgc2VsZnRlc3QoY2xpZW50LCBpOTE1X2dlbV9jbGllbnRfYmx0X2xpdmVfc2VsZnRlc3RzKQo+ ICAgc2VsZnRlc3QocmVzZXQsIGludGVsX3Jlc2V0X2xpdmVfc2VsZnRlc3RzKQoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==