From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: [PATCH 04/41] drm/i915: Remove RPM sequence checking Date: Fri, 21 Oct 2016 13:19:32 +0300 Message-ID: <1477045172.28355.15.camel@intel.com> References: <20161020150423.4560-1-chris@chris-wilson.co.uk> <20161020150423.4560-5-chris@chris-wilson.co.uk> Reply-To: imre.deak@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id E6C716ECC1 for ; Fri, 21 Oct 2016 10:19:37 +0000 (UTC) In-Reply-To: <20161020150423.4560-5-chris@chris-wilson.co.uk> 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 T24gdG8sIDIwMTYtMTAtMjAgYXQgMTY6MDMgKzAxMDAsIENocmlzIFdpbHNvbiB3cm90ZToKPiBX ZSBvbmx5IHVzZWQgdGhlIFJQTSBzZXF1ZW5jZSBjaGVja2luZyBpbnNpZGUgdGhlIGxvd2xldmVs IEdUVAo+IGFjY2Vzc29ycywgd2hlbiB3ZSBoYWQgdG8gcmVseSBvbiBjYWxsZXJzIHRha2luZyB0 aGUgd2FrZXJlZiBvbiBvdXIKPiBiZWhhbGYuIE5vdyB0aGF0IHdlIHRha2UgdGhlIFJQTSB3YWtl cmVmIGluc2lkZSB0aGUgR1RUIG1hbmFnZW1lbnQKPiByb3V0aW5lcyB0aGVtc2VsdmVzLCB3ZSBj YW4gZm9yZ28gdGhlIHNhbml0eWNoZWNrIG9mIHRoZSBjYWxsZXJzLgo+IAo+IFNpZ25lZC1vZmYt Ynk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IENjOiBJbXJlIERl YWsgPGltcmUuZGVha0BpbnRlbC5jb20+CgpSZXZpZXdlZC1ieTogSW1yZSBEZWFrIDxpbXJlLmRl YWtAaW50ZWwuY29tPgoKPiAtLS0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmjC oMKgwqDCoMKgwqDCoMKgwqB8wqDCoDEgLQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fZ3R0LmPCoMKgwqDCoMKgfCA1NSArLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAtLS0tLS0tLS0t LS0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5owqDCoMKgwqDCoMKgwqDCoHwg MTcgLS0tLS0tLS0tLQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uY8KgwqDCoMKg wqDCoMKgwqDCoHzCoMKgMSAtCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1l X3BtLmMgfMKgwqAzICstCj4gwqA1IGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgNzUg ZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCBmNGFmNDA0 NTJkZmQuLmMzODgzNjFhZDcxNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC0x Njg3LDcgKzE2ODcsNiBAQCBzdHJ1Y3Qgc2tsX3dtX2xldmVsIHsKPiDCoCAqLwo+IMKgc3RydWN0 IGk5MTVfcnVudGltZV9wbSB7Cj4gwqAJYXRvbWljX3Qgd2FrZXJlZl9jb3VudDsKPiAtCWF0b21p Y190IGF0b21pY19zZXE7Cj4gwqAJYm9vbCBzdXNwZW5kZWQ7Cj4gwqAJYm9vbCBpcnFzX2VuYWJs ZWQ7Cj4gwqB9Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9n dHQuYwo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPiBpbmRleCAzMzAz NjM1OWMxNzAuLjk0N2Q1YWQ1MWZiNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9ndHQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0 dC5jCj4gQEAgLTIzOTUsMTYgKzIzOTUsMTEgQEAgc3RhdGljIHZvaWQgZ2VuOF9nZ3R0X2luc2Vy dF9wYWdlKHN0cnVjdAo+IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gwqAJZ2VuOF9wdGVfdCBf X2lvbWVtICpwdGUgPQo+IMKgCQkoZ2VuOF9wdGVfdCBfX2lvbWVtICopZGV2X3ByaXYtPmdndHQu Z3NtICsKPiDCoAkJKG9mZnNldCA+PiBQQUdFX1NISUZUKTsKPiAtCWludCBycG1fYXRvbWljX3Nl cTsKPiAtCj4gLQlycG1fYXRvbWljX3NlcSA9IGFzc2VydF9ycG1fYXRvbWljX2JlZ2luKGRldl9w cml2KTsKPiDCoAo+IMKgCWdlbjhfc2V0X3B0ZShwdGUsIGdlbjhfcHRlX2VuY29kZShhZGRyLCBs ZXZlbCkpOwo+IMKgCj4gwqAJSTkxNV9XUklURShHRlhfRkxTSF9DTlRMX0dFTjYsIEdGWF9GTFNI X0NOVExfRU4pOwo+IMKgCVBPU1RJTkdfUkVBRChHRlhfRkxTSF9DTlRMX0dFTjYpOwo+IC0KPiAt CWFzc2VydF9ycG1fYXRvbWljX2VuZChkZXZfcHJpdiwgcnBtX2F0b21pY19zZXEpOwo+IMKgfQo+ IMKgCj4gwqBzdGF0aWMgdm9pZCBnZW44X2dndHRfaW5zZXJ0X2VudHJpZXMoc3RydWN0IGk5MTVf YWRkcmVzc19zcGFjZSAqdm0sCj4gQEAgLTI0MTgsMTEgKzI0MTMsOCBAQCBzdGF0aWMgdm9pZCBn ZW44X2dndHRfaW5zZXJ0X2VudHJpZXMoc3RydWN0Cj4gaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwK PiDCoAlnZW44X3B0ZV90IF9faW9tZW0gKmd0dF9lbnRyaWVzOwo+IMKgCWdlbjhfcHRlX3QgZ3R0 X2VudHJ5Owo+IMKgCWRtYV9hZGRyX3QgYWRkcjsKPiAtCWludCBycG1fYXRvbWljX3NlcTsKPiDC oAlpbnQgaSA9IDA7Cj4gwqAKPiAtCXJwbV9hdG9taWNfc2VxID0gYXNzZXJ0X3JwbV9hdG9taWNf YmVnaW4oZGV2X3ByaXYpOwo+IC0KPiDCoAlndHRfZW50cmllcyA9IChnZW44X3B0ZV90IF9faW9t ZW0gKilnZ3R0LT5nc20gKyAoc3RhcnQgPj4KPiBQQUdFX1NISUZUKTsKPiDCoAo+IMKgCWZvcl9l YWNoX3NndF9kbWEoYWRkciwgc2d0X2l0ZXIsIHN0KSB7Cj4gQEAgLTI0NDYsOCArMjQzOCw2IEBA IHN0YXRpYyB2b2lkIGdlbjhfZ2d0dF9pbnNlcnRfZW50cmllcyhzdHJ1Y3QKPiBpOTE1X2FkZHJl c3Nfc3BhY2UgKnZtLAo+IMKgCcKgKi8KPiDCoAlJOTE1X1dSSVRFKEdGWF9GTFNIX0NOVExfR0VO NiwgR0ZYX0ZMU0hfQ05UTF9FTik7Cj4gwqAJUE9TVElOR19SRUFEKEdGWF9GTFNIX0NOVExfR0VO Nik7Cj4gLQo+IC0JYXNzZXJ0X3JwbV9hdG9taWNfZW5kKGRldl9wcml2LCBycG1fYXRvbWljX3Nl cSk7Cj4gwqB9Cj4gwqAKPiDCoHN0cnVjdCBpbnNlcnRfZW50cmllcyB7Cj4gQEAgLTI0ODYsMTYg KzI0NzYsMTEgQEAgc3RhdGljIHZvaWQgZ2VuNl9nZ3R0X2luc2VydF9wYWdlKHN0cnVjdAo+IGk5 MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gwqAJZ2VuNl9wdGVfdCBfX2lvbWVtICpwdGUgPQo+IMKg CQkoZ2VuNl9wdGVfdCBfX2lvbWVtICopZGV2X3ByaXYtPmdndHQuZ3NtICsKPiDCoAkJKG9mZnNl dCA+PiBQQUdFX1NISUZUKTsKPiAtCWludCBycG1fYXRvbWljX3NlcTsKPiAtCj4gLQlycG1fYXRv bWljX3NlcSA9IGFzc2VydF9ycG1fYXRvbWljX2JlZ2luKGRldl9wcml2KTsKPiDCoAo+IMKgCWlv d3JpdGUzMih2bS0+cHRlX2VuY29kZShhZGRyLCBsZXZlbCwgZmxhZ3MpLCBwdGUpOwo+IMKgCj4g wqAJSTkxNV9XUklURShHRlhfRkxTSF9DTlRMX0dFTjYsIEdGWF9GTFNIX0NOVExfRU4pOwo+IMKg CVBPU1RJTkdfUkVBRChHRlhfRkxTSF9DTlRMX0dFTjYpOwo+IC0KPiAtCWFzc2VydF9ycG1fYXRv bWljX2VuZChkZXZfcHJpdiwgcnBtX2F0b21pY19zZXEpOwo+IMKgfQo+IMKgCj4gwqAvKgo+IEBA IC0yNTE1LDExICsyNTAwLDggQEAgc3RhdGljIHZvaWQgZ2VuNl9nZ3R0X2luc2VydF9lbnRyaWVz KHN0cnVjdAo+IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gwqAJZ2VuNl9wdGVfdCBfX2lvbWVt ICpndHRfZW50cmllczsKPiDCoAlnZW42X3B0ZV90IGd0dF9lbnRyeTsKPiDCoAlkbWFfYWRkcl90 IGFkZHI7Cj4gLQlpbnQgcnBtX2F0b21pY19zZXE7Cj4gwqAJaW50IGkgPSAwOwo+IMKgCj4gLQly cG1fYXRvbWljX3NlcSA9IGFzc2VydF9ycG1fYXRvbWljX2JlZ2luKGRldl9wcml2KTsKPiAtCj4g wqAJZ3R0X2VudHJpZXMgPSAoZ2VuNl9wdGVfdCBfX2lvbWVtICopZ2d0dC0+Z3NtICsgKHN0YXJ0 ID4+Cj4gUEFHRV9TSElGVCk7Cj4gwqAKPiDCoAlmb3JfZWFjaF9zZ3RfZG1hKGFkZHIsIHNndF9p dGVyLCBzdCkgewo+IEBAIC0yNTQyLDggKzI1MjQsNiBAQCBzdGF0aWMgdm9pZCBnZW42X2dndHRf aW5zZXJ0X2VudHJpZXMoc3RydWN0Cj4gaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiDCoAnCoCov Cj4gwqAJSTkxNV9XUklURShHRlhfRkxTSF9DTlRMX0dFTjYsIEdGWF9GTFNIX0NOVExfRU4pOwo+ IMKgCVBPU1RJTkdfUkVBRChHRlhfRkxTSF9DTlRMX0dFTjYpOwo+IC0KPiAtCWFzc2VydF9ycG1f YXRvbWljX2VuZChkZXZfcHJpdiwgcnBtX2F0b21pY19zZXEpOwo+IMKgfQo+IMKgCj4gwqBzdGF0 aWMgdm9pZCBub3BfY2xlYXJfcmFuZ2Uoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4g QEAgLTI1NTQsNyArMjUzNCw2IEBAIHN0YXRpYyB2b2lkIG5vcF9jbGVhcl9yYW5nZShzdHJ1Y3QK PiBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+IMKgc3RhdGljIHZvaWQgZ2VuOF9nZ3R0X2NsZWFy X3JhbmdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+IMKgCQkJCcKgwqB1aW50NjRf dCBzdGFydCwgdWludDY0X3QgbGVuZ3RoKQo+IMKgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNSh2bS0+ZGV2KTsKPiDCoAlzdHJ1Y3QgaTkxNV9nZ3R0ICpn Z3R0ID0gaTkxNV92bV90b19nZ3R0KHZtKTsKPiDCoAl1bnNpZ25lZCBmaXJzdF9lbnRyeSA9IHN0 YXJ0ID4+IFBBR0VfU0hJRlQ7Cj4gwqAJdW5zaWduZWQgbnVtX2VudHJpZXMgPSBsZW5ndGggPj4g UEFHRV9TSElGVDsKPiBAQCAtMjU2Miw5ICsyNTQxLDYgQEAgc3RhdGljIHZvaWQgZ2VuOF9nZ3R0 X2NsZWFyX3JhbmdlKHN0cnVjdAo+IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gwqAJCShnZW44 X3B0ZV90IF9faW9tZW0gKilnZ3R0LT5nc20gKyBmaXJzdF9lbnRyeTsKPiDCoAljb25zdCBpbnQg bWF4X2VudHJpZXMgPSBnZ3R0X3RvdGFsX2VudHJpZXMoZ2d0dCkgLQo+IGZpcnN0X2VudHJ5Owo+ IMKgCWludCBpOwo+IC0JaW50IHJwbV9hdG9taWNfc2VxOwo+IC0KPiAtCXJwbV9hdG9taWNfc2Vx ID0gYXNzZXJ0X3JwbV9hdG9taWNfYmVnaW4oZGV2X3ByaXYpOwo+IMKgCj4gwqAJaWYgKFdBUk4o bnVtX2VudHJpZXMgPiBtYXhfZW50cmllcywKPiDCoAkJwqAiRmlyc3QgZW50cnkgPSAlZDsgTnVt IGVudHJpZXMgPSAlZCAobWF4PSVkKVxuIiwKPiBAQCAtMjU3NiwxNSArMjU1MiwxMiBAQCBzdGF0 aWMgdm9pZCBnZW44X2dndHRfY2xlYXJfcmFuZ2Uoc3RydWN0Cj4gaTkxNV9hZGRyZXNzX3NwYWNl ICp2bSwKPiDCoAlmb3IgKGkgPSAwOyBpIDwgbnVtX2VudHJpZXM7IGkrKykKPiDCoAkJZ2VuOF9z ZXRfcHRlKCZndHRfYmFzZVtpXSwgc2NyYXRjaF9wdGUpOwo+IMKgCXJlYWRsKGd0dF9iYXNlKTsK PiAtCj4gLQlhc3NlcnRfcnBtX2F0b21pY19lbmQoZGV2X3ByaXYsIHJwbV9hdG9taWNfc2VxKTsK PiDCoH0KPiDCoAo+IMKgc3RhdGljIHZvaWQgZ2VuNl9nZ3R0X2NsZWFyX3JhbmdlKHN0cnVjdCBp OTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+IMKgCQkJCcKgwqB1aW50NjRfdCBzdGFydCwKPiDCoAkJ CQnCoMKgdWludDY0X3QgbGVuZ3RoKQo+IMKgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNSh2bS0+ZGV2KTsKPiDCoAlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0 ID0gaTkxNV92bV90b19nZ3R0KHZtKTsKPiDCoAl1bnNpZ25lZCBmaXJzdF9lbnRyeSA9IHN0YXJ0 ID4+IFBBR0VfU0hJRlQ7Cj4gwqAJdW5zaWduZWQgbnVtX2VudHJpZXMgPSBsZW5ndGggPj4gUEFH RV9TSElGVDsKPiBAQCAtMjU5Miw5ICsyNTY1LDYgQEAgc3RhdGljIHZvaWQgZ2VuNl9nZ3R0X2Ns ZWFyX3JhbmdlKHN0cnVjdAo+IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gwqAJCShnZW42X3B0 ZV90IF9faW9tZW0gKilnZ3R0LT5nc20gKyBmaXJzdF9lbnRyeTsKPiDCoAljb25zdCBpbnQgbWF4 X2VudHJpZXMgPSBnZ3R0X3RvdGFsX2VudHJpZXMoZ2d0dCkgLQo+IGZpcnN0X2VudHJ5Owo+IMKg CWludCBpOwo+IC0JaW50IHJwbV9hdG9taWNfc2VxOwo+IC0KPiAtCXJwbV9hdG9taWNfc2VxID0g YXNzZXJ0X3JwbV9hdG9taWNfYmVnaW4oZGV2X3ByaXYpOwo+IMKgCj4gwqAJaWYgKFdBUk4obnVt X2VudHJpZXMgPiBtYXhfZW50cmllcywKPiDCoAkJwqAiRmlyc3QgZW50cnkgPSAlZDsgTnVtIGVu dHJpZXMgPSAlZCAobWF4PSVkKVxuIiwKPiBAQCAtMjYwNyw4ICsyNTc3LDYgQEAgc3RhdGljIHZv aWQgZ2VuNl9nZ3R0X2NsZWFyX3JhbmdlKHN0cnVjdAo+IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0s Cj4gwqAJZm9yIChpID0gMDsgaSA8IG51bV9lbnRyaWVzOyBpKyspCj4gwqAJCWlvd3JpdGUzMihz Y3JhdGNoX3B0ZSwgJmd0dF9iYXNlW2ldKTsKPiDCoAlyZWFkbChndHRfYmFzZSk7Cj4gLQo+IC0J YXNzZXJ0X3JwbV9hdG9taWNfZW5kKGRldl9wcml2LCBycG1fYXRvbWljX3NlcSk7Cj4gwqB9Cj4g wqAKPiDCoHN0YXRpYyB2b2lkIGk5MTVfZ2d0dF9pbnNlcnRfcGFnZShzdHJ1Y3QgaTkxNV9hZGRy ZXNzX3NwYWNlICp2bSwKPiBAQCAtMjYxNywxNiArMjU4NSwxMCBAQCBzdGF0aWMgdm9pZCBpOTE1 X2dndHRfaW5zZXJ0X3BhZ2Uoc3RydWN0Cj4gaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiDCoAkJ CQnCoMKgZW51bSBpOTE1X2NhY2hlX2xldmVsIGNhY2hlX2xldmVsLAo+IMKgCQkJCcKgwqB1MzIg dW51c2VkKQo+IMKgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNSh2bS0+ZGV2KTsKPiDCoAl1bnNpZ25lZCBpbnQgZmxhZ3MgPSAoY2FjaGVfbGV2ZWwgPT0g STkxNV9DQUNIRV9OT05FKSA/Cj4gwqAJCUFHUF9VU0VSX01FTU9SWSA6IEFHUF9VU0VSX0NBQ0hF RF9NRU1PUlk7Cj4gLQlpbnQgcnBtX2F0b21pY19zZXE7Cj4gLQo+IC0JcnBtX2F0b21pY19zZXEg PSBhc3NlcnRfcnBtX2F0b21pY19iZWdpbihkZXZfcHJpdik7Cj4gwqAKPiDCoAlpbnRlbF9ndHRf aW5zZXJ0X3BhZ2UoYWRkciwgb2Zmc2V0ID4+IFBBR0VfU0hJRlQsIGZsYWdzKTsKPiAtCj4gLQlh c3NlcnRfcnBtX2F0b21pY19lbmQoZGV2X3ByaXYsIHJwbV9hdG9taWNfc2VxKTsKPiDCoH0KPiDC oAo+IMKgc3RhdGljIHZvaWQgaTkxNV9nZ3R0X2luc2VydF9lbnRyaWVzKHN0cnVjdCBpOTE1X2Fk ZHJlc3Nfc3BhY2UgKnZtLAo+IEBAIC0yNjM0LDMzICsyNTk2LDE4IEBAIHN0YXRpYyB2b2lkIGk5 MTVfZ2d0dF9pbnNlcnRfZW50cmllcyhzdHJ1Y3QKPiBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ IMKgCQkJCcKgwqDCoMKgwqB1aW50NjRfdCBzdGFydCwKPiDCoAkJCQnCoMKgwqDCoMKgZW51bSBp OTE1X2NhY2hlX2xldmVsCj4gY2FjaGVfbGV2ZWwsIHUzMiB1bnVzZWQpCj4gwqB7Cj4gLQlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHZtLT5kZXYpOwo+IMKgCXVu c2lnbmVkIGludCBmbGFncyA9IChjYWNoZV9sZXZlbCA9PSBJOTE1X0NBQ0hFX05PTkUpID8KPiDC oAkJQUdQX1VTRVJfTUVNT1JZIDogQUdQX1VTRVJfQ0FDSEVEX01FTU9SWTsKPiAtCWludCBycG1f YXRvbWljX3NlcTsKPiAtCj4gLQlycG1fYXRvbWljX3NlcSA9IGFzc2VydF9ycG1fYXRvbWljX2Jl Z2luKGRldl9wcml2KTsKPiDCoAo+IMKgCWludGVsX2d0dF9pbnNlcnRfc2dfZW50cmllcyhwYWdl cywgc3RhcnQgPj4gUEFHRV9TSElGVCwKPiBmbGFncyk7Cj4gwqAKPiAtCWFzc2VydF9ycG1fYXRv bWljX2VuZChkZXZfcHJpdiwgcnBtX2F0b21pY19zZXEpOwo+IC0KPiDCoH0KPiDCoAo+IMKgc3Rh dGljIHZvaWQgaTkxNV9nZ3R0X2NsZWFyX3JhbmdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2Ug KnZtLAo+IMKgCQkJCcKgwqB1aW50NjRfdCBzdGFydCwKPiDCoAkJCQnCoMKgdWludDY0X3QgbGVu Z3RoKQo+IMKgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NSh2bS0+ZGV2KTsKPiAtCXVuc2lnbmVkIGZpcnN0X2VudHJ5ID0gc3RhcnQgPj4gUEFHRV9TSElG VDsKPiAtCXVuc2lnbmVkIG51bV9lbnRyaWVzID0gbGVuZ3RoID4+IFBBR0VfU0hJRlQ7Cj4gLQlp bnQgcnBtX2F0b21pY19zZXE7Cj4gLQo+IC0JcnBtX2F0b21pY19zZXEgPSBhc3NlcnRfcnBtX2F0 b21pY19iZWdpbihkZXZfcHJpdik7Cj4gLQo+IC0JaW50ZWxfZ3R0X2NsZWFyX3JhbmdlKGZpcnN0 X2VudHJ5LCBudW1fZW50cmllcyk7Cj4gLQo+IC0JYXNzZXJ0X3JwbV9hdG9taWNfZW5kKGRldl9w cml2LCBycG1fYXRvbWljX3NlcSk7Cj4gKwlpbnRlbF9ndHRfY2xlYXJfcmFuZ2Uoc3RhcnQgPj4g UEFHRV9TSElGVCwgbGVuZ3RoID4+Cj4gUEFHRV9TSElGVCk7Cj4gwqB9Cj4gwqAKPiDCoHN0YXRp YyBpbnQgZ2d0dF9iaW5kX3ZtYShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCj4gaW5kZXggYzA2YTMzZTBmZjE5Li45NWE3ZDMwMDVhNzQgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC0xNjY0LDIzICsxNjY0LDYgQEAgYXNzZXJ0X3Jw bV93YWtlbG9ja19oZWxkKHN0cnVjdAo+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+IMKg CQlEUk1fREVCVUdfRFJJVkVSKCJSUE0gd2FrZWxvY2sgcmVmIG5vdCBoZWxkIGR1cmluZwo+IEhX IGFjY2VzcyIpOwo+IMKgfQo+IMKgCj4gLXN0YXRpYyBpbmxpbmUgaW50Cj4gLWFzc2VydF9ycG1f YXRvbWljX2JlZ2luKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAtewo+IC0J aW50IHNlcSA9IGF0b21pY19yZWFkKCZkZXZfcHJpdi0+cG0uYXRvbWljX3NlcSk7Cj4gLQo+IC0J YXNzZXJ0X3JwbV93YWtlbG9ja19oZWxkKGRldl9wcml2KTsKPiAtCj4gLQlyZXR1cm4gc2VxOwo+ IC19Cj4gLQo+IC1zdGF0aWMgaW5saW5lIHZvaWQKPiAtYXNzZXJ0X3JwbV9hdG9taWNfZW5kKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50Cj4gYmVnaW5fc2VxKQo+IC17Cj4g LQlXQVJOX09OQ0UoYXRvbWljX3JlYWQoJmRldl9wcml2LT5wbS5hdG9taWNfc2VxKSAhPQo+IGJl Z2luX3NlcSwKPiAtCQnCoMKgIkhXIGFjY2VzcyBvdXRzaWRlIG9mIFJQTSBhdG9taWMgc2VjdGlv blxuIik7Cj4gLX0KPiAtCj4gwqAvKioKPiDCoCAqIGRpc2FibGVfcnBtX3dha2VyZWZfYXNzZXJ0 cyAtIGRpc2FibGUgdGhlIFJQTSBhc3NlcnQgY2hlY2tzCj4gwqAgKiBAZGV2X3ByaXY6IGk5MTUg ZGV2aWNlIGluc3RhbmNlCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3BtLmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiBpbmRleCAwYTllN2Yy MDQ1ZDQuLmYyMTJiNzFmNWJkYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9wbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+IEBAIC04 MDQ3LDUgKzgwNDcsNCBAQCB2b2lkIGludGVsX3BtX3NldHVwKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCj4gwqAKPiDCoAlkZXZfcHJpdi0+cG0uc3VzcGVuZGVkID0gZmFsc2U7Cj4gwqAJYXRvbWlj X3NldCgmZGV2X3ByaXYtPnBtLndha2VyZWZfY291bnQsIDApOwo+IC0JYXRvbWljX3NldCgmZGV2 X3ByaXYtPnBtLmF0b21pY19zZXEsIDApOwo+IMKgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3J1bnRpbWVfcG0uYwo+IGluZGV4IGVlNTZhODc1NmMwNy4uODJlZGJhMmYzNTg5IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwo+IEBAIC0yNzM2LDggKzI3 MzYsNyBAQCB2b2lkIGludGVsX3J1bnRpbWVfcG1fcHV0KHN0cnVjdAo+IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQo+IMKgCXN0cnVjdCBkZXZpY2UgKmtkZXYgPSAmcGRldi0+ZGV2Owo+IMKg Cj4gwqAJYXNzZXJ0X3JwbV93YWtlbG9ja19oZWxkKGRldl9wcml2KTsKPiAtCWlmIChhdG9taWNf ZGVjX2FuZF90ZXN0KCZkZXZfcHJpdi0+cG0ud2FrZXJlZl9jb3VudCkpCj4gLQkJYXRvbWljX2lu YygmZGV2X3ByaXYtPnBtLmF0b21pY19zZXEpOwo+ICsJYXRvbWljX2RlYygmZGV2X3ByaXYtPnBt Lndha2VyZWZfY291bnQpOwo+IMKgCj4gwqAJcG1fcnVudGltZV9tYXJrX2xhc3RfYnVzeShrZGV2 KTsKPiDCoAlwbV9ydW50aW1lX3B1dF9hdXRvc3VzcGVuZChrZGV2KTsKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==