From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Michal Wajdeczko" Subject: Re: [PATCH 1/2] drm/i915/guc: init GuC descriptors after GuC load Date: Tue, 02 Oct 2018 13:02:25 +0200 Message-ID: References: <20181001201754.31716-1-daniele.ceraolospurio@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed"; DelSp="yes" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5075E88F61 for ; Tue, 2 Oct 2018 11:02:28 +0000 (UTC) In-Reply-To: <20181001201754.31716-1-daniele.ceraolospurio@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org, Daniele Ceraolo Spurio List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCAwMSBPY3QgMjAxOCAyMjoxNzo1MyArMDIwMCwgRGFuaWVsZSBDZXJhb2xvIFNwdXJp byAgCjxkYW5pZWxlLmNlcmFvbG9zcHVyaW9AaW50ZWwuY29tPiB3cm90ZToKCj4gR3VDIHN0b3Jl cyBzb21lIGRhdGEgaW4gdGhlcmUsIHdoaWNoIG1pZ2h0IGJlIHN0YWxlIGFmdGVyIGEgcmVzZXQu Cj4gV2UgYWxyZWFkeSByZXNldCB0aGUgV1EgaGVhZCBhbmQgdGFpbCwgYnV0IG1vcmUgdGhpbmdz IGFyZSBiZWluZyBtb3ZlZAo+IHRvIHRoZSBkZXNjcmlwdG9yIHdpdGggdGhlIGludGVyZmFjZSB1 cGRhdGVzLiBJbnN0ZWFkIG9mIHRyeWluZyB0byB0cmFjawo+IHRoZW0gb25lIGJ5IG9uZSwgYWx3 YXlzIG1lbXNldCBhbmQgaW5pdCB0aGUgZGVzY3JpcHRvcnMgZnJvbSBzY3JhdGNoCj4gYWZ0ZXIg R3VDIGlzIGxvYWRlZC4KPiBUaGUgY29kZSBpcyBhbHNvIHJlb3JnYW5pemVkIHNvIHRoYXQgdGhl IGFib3ZlIG9wZXJhdGlvbnMgYW5kIHRoZQo+IGRvb3JiZWxsIGNyZWF0aW9uIGFyZSBncm91cGVk IGFzICJjbGllbnQgZW5hYmxpbmciCj4KPiBDYzogTWljaGFsIFdhamRlY3prbyA8bWljaGFsLndh amRlY3prb0BpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogRGFuaWVsZSBDZXJhb2xvIFNwdXJp byA8ZGFuaWVsZS5jZXJhb2xvc3B1cmlvQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uYyB8IDEyNyArKysrKysrKysrLS0tLS0tLS0t LQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91Y19mdy5oICAgICAgICAgIHwgICA3ICst Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9ndWMuYyAgfCAgMTcgKyst Cj4gIDMgZmlsZXMgY2hhbmdlZCwgNzggaW5zZXJ0aW9ucygrKSwgNzMgZGVsZXRpb25zKC0pCj4K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX3N1Ym1pc3Npb24u YyAgCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfc3VibWlzc2lvbi5jCj4gaW5k ZXggYWM4NjJiNDJmNmExLi4wODA2YWRiYWE4NjQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2d1Y19zdWJtaXNzaW9uLmMKPiBAQCAtMjgyLDggKzI4Miw3IEBAIF9fZ2V0X3By b2Nlc3NfZGVzYyhzdHJ1Y3QgaW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50KQo+ICAvKgo+ICAgKiBJ bml0aWFsaXNlIHRoZSBwcm9jZXNzIGRlc2NyaXB0b3Igc2hhcmVkIHdpdGggdGhlIEd1QyBmaXJt d2FyZS4KPiAgICovCj4gLXN0YXRpYyB2b2lkIGd1Y19wcm9jX2Rlc2NfaW5pdChzdHJ1Y3QgaW50 ZWxfZ3VjICpndWMsCj4gLQkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50 KQo+ICtzdGF0aWMgdm9pZCBndWNfcHJvY19kZXNjX2luaXQoc3RydWN0IGludGVsX2d1Y19jbGll bnQgKmNsaWVudCkKPiAgewo+ICAJc3RydWN0IGd1Y19wcm9jZXNzX2Rlc2MgKmRlc2M7Cj4gQEAg LTM0MSw5ICszNDAsOSBAQCBzdGF0aWMgdm9pZCBndWNfc3RhZ2VfZGVzY19wb29sX2Rlc3Ryb3ko c3RydWN0ICAKPiBpbnRlbF9ndWMgKmd1YykKPiAgICogZGF0YSBzdHJ1Y3R1cmVzIHJlbGF0aW5n IHRvIHRoaXMgY2xpZW50IChkb29yYmVsbCwgcHJvY2VzcyAgCj4gZGVzY3JpcHRvciwKPiAgICog d3JpdGUgcXVldWUsIGV0YykuCj4gICAqLwo+IC1zdGF0aWMgdm9pZCBndWNfc3RhZ2VfZGVzY19p bml0KHN0cnVjdCBpbnRlbF9ndWMgKmd1YywKPiAtCQkJCXN0cnVjdCBpbnRlbF9ndWNfY2xpZW50 ICpjbGllbnQpCj4gK3N0YXRpYyB2b2lkIGd1Y19zdGFnZV9kZXNjX2luaXQoc3RydWN0IGludGVs X2d1Y19jbGllbnQgKmNsaWVudCkKPiAgewo+ICsJc3RydWN0IGludGVsX2d1YyAqZ3VjID0gY2xp ZW50LT5ndWM7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBndWNfdG9f aTkxNShndWMpOwo+ICAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwo+ICAJc3RydWN0 IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCA9IGNsaWVudC0+b3duZXI7Cj4gQEAgLTQyNCw4ICs0MjMs NyBAQCBzdGF0aWMgdm9pZCBndWNfc3RhZ2VfZGVzY19pbml0KHN0cnVjdCBpbnRlbF9ndWMgIAo+ ICpndWMsCj4gIAlkZXNjLT5kZXNjX3ByaXZhdGUgPSBwdHJfdG9fdTY0KGNsaWVudCk7Cj4gIH0K PiAtc3RhdGljIHZvaWQgZ3VjX3N0YWdlX2Rlc2NfZmluaShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMs Cj4gLQkJCQlzdHJ1Y3QgaW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50KQo+ICtzdGF0aWMgdm9pZCBn dWNfc3RhZ2VfZGVzY19maW5pKHN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQpCj4gIHsK PiAgCXN0cnVjdCBndWNfc3RhZ2VfZGVzYyAqZGVzYzsKPiBAQCAtNDg2LDE0ICs0ODQsNiBAQCBz dGF0aWMgdm9pZCBndWNfd3FfaXRlbV9hcHBlbmQoc3RydWN0ICAKPiBpbnRlbF9ndWNfY2xpZW50 ICpjbGllbnQsCj4gIAlXUklURV9PTkNFKGRlc2MtPnRhaWwsICh3cV9vZmYgKyB3cWlfc2l6ZSkg JiAoR1VDX1dRX1NJWkUgLSAxKSk7Cj4gIH0KPiAtc3RhdGljIHZvaWQgZ3VjX3Jlc2V0X3dxKHN0 cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQpCj4gLXsKPiAtCXN0cnVjdCBndWNfcHJvY2Vz c19kZXNjICpkZXNjID0gX19nZXRfcHJvY2Vzc19kZXNjKGNsaWVudCk7Cj4gLQo+IC0JZGVzYy0+ aGVhZCA9IDA7Cj4gLQlkZXNjLT50YWlsID0gMDsKPiAtfQo+IC0KPiAgc3RhdGljIHZvaWQgZ3Vj X3JpbmdfZG9vcmJlbGwoc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNsaWVudCkKPiAgewo+ICAJ c3RydWN0IGd1Y19kb29yYmVsbF9pbmZvICpkYjsKPiBAQCAtODk4LDQ1ICs4ODgsNiBAQCBzdGF0 aWMgYm9vbCBndWNfdmVyaWZ5X2Rvb3JiZWxscyhzdHJ1Y3QgaW50ZWxfZ3VjICAKPiAqZ3VjKQo+ ICAJcmV0dXJuIHRydWU7Cj4gIH0KPiAtc3RhdGljIGludCBndWNfY2xpZW50c19kb29yYmVsbF9p bml0KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKPiAtewo+IC0JaW50IHJldDsKPiAtCj4gLQlyZXQg PSBjcmVhdGVfZG9vcmJlbGwoZ3VjLT5leGVjYnVmX2NsaWVudCk7Cj4gLQlpZiAocmV0KQo+IC0J CXJldHVybiByZXQ7Cj4gLQo+IC0JaWYgKGd1Yy0+cHJlZW1wdF9jbGllbnQpIHsKPiAtCQlyZXQg PSBjcmVhdGVfZG9vcmJlbGwoZ3VjLT5wcmVlbXB0X2NsaWVudCk7Cj4gLQkJaWYgKHJldCkgewo+ IC0JCQlkZXN0cm95X2Rvb3JiZWxsKGd1Yy0+ZXhlY2J1Zl9jbGllbnQpOwo+IC0JCQlyZXR1cm4g cmV0Owo+IC0JCX0KPiAtCX0KPiAtCj4gLQlyZXR1cm4gMDsKPiAtfQo+IC0KPiAtc3RhdGljIHZv aWQgZ3VjX2NsaWVudHNfZG9vcmJlbGxfZmluaShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCj4gLXsK PiAtCS8qCj4gLQkgKiBCeSB0aGUgdGltZSB3ZSdyZSBoZXJlLCBHdUMgaGFzIGFscmVhZHkgYmVl biByZXNldC4KPiAtCSAqIEluc3RlYWQgb2YgdHJ5aW5nIChpbiB2YWluKSB0byBjb21tdW5pY2F0 ZSB3aXRoIGl0LCBsZXQncyBqdXN0Cj4gLQkgKiBjbGVhbnVwIHRoZSBkb29yYmVsbCBIVyBhbmQg b3VyIGludGVybmFsIHN0YXRlLgo+IC0JICovCj4gLQlpZiAoZ3VjLT5wcmVlbXB0X2NsaWVudCkg ewo+IC0JCV9fZGVzdHJveV9kb29yYmVsbChndWMtPnByZWVtcHRfY2xpZW50KTsKPiAtCQlfX3Vw ZGF0ZV9kb29yYmVsbF9kZXNjKGd1Yy0+cHJlZW1wdF9jbGllbnQsCj4gLQkJCQkgICAgICAgR1VD X0RPT1JCRUxMX0lOVkFMSUQpOwo+IC0JfQo+IC0KPiAtCWlmIChndWMtPmV4ZWNidWZfY2xpZW50 KSB7Cj4gLQkJX19kZXN0cm95X2Rvb3JiZWxsKGd1Yy0+ZXhlY2J1Zl9jbGllbnQpOwo+IC0JCV9f dXBkYXRlX2Rvb3JiZWxsX2Rlc2MoZ3VjLT5leGVjYnVmX2NsaWVudCwKPiAtCQkJCSAgICAgICBH VUNfRE9PUkJFTExfSU5WQUxJRCk7Cj4gLQl9Cj4gLX0KPiAtCj4gIC8qKgo+ICAgKiBndWNfY2xp ZW50X2FsbG9jKCkgLSBBbGxvY2F0ZSBhbiBpbnRlbF9ndWNfY2xpZW50Cj4gICAqIEBkZXZfcHJp djoJZHJpdmVyIHByaXZhdGUgZGF0YSBzdHJ1Y3R1cmUKPiBAQCAtMTAwOSw5ICs5NjAsNiBAQCBn dWNfY2xpZW50X2FsbG9jKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCWVs c2UKPiAgCQljbGllbnQtPnByb2NfZGVzY19vZmZzZXQgPSAoR1VDX0RCX1NJWkUgLyAyKTsKPiAt CWd1Y19wcm9jX2Rlc2NfaW5pdChndWMsIGNsaWVudCk7Cj4gLQlndWNfc3RhZ2VfZGVzY19pbml0 KGd1YywgY2xpZW50KTsKPiAtCj4gIAlyZXQgPSByZXNlcnZlX2Rvb3JiZWxsKGNsaWVudCk7Cj4g IAlpZiAocmV0KQo+ICAJCWdvdG8gZXJyX3ZhZGRyOwo+IEBAIC0xMDM3LDcgKzk4NSw2IEBAIGd1 Y19jbGllbnRfYWxsb2Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICBzdGF0 aWMgdm9pZCBndWNfY2xpZW50X2ZyZWUoc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNsaWVudCkK PiAgewo+ICAJdW5yZXNlcnZlX2Rvb3JiZWxsKGNsaWVudCk7Cj4gLQlndWNfc3RhZ2VfZGVzY19m aW5pKGNsaWVudC0+Z3VjLCBjbGllbnQpOwo+ICAJaTkxNV92bWFfdW5waW5fYW5kX3JlbGVhc2Uo JmNsaWVudC0+dm1hLCBJOTE1X1ZNQV9SRUxFQVNFX01BUCk7Cj4gIAlpZGFfc2ltcGxlX3JlbW92 ZSgmY2xpZW50LT5ndWMtPnN0YWdlX2lkcywgY2xpZW50LT5zdGFnZV9pZCk7Cj4gIAlrZnJlZShj bGllbnQpOwo+IEBAIC0xMTA0LDYgKzEwNTEsNjQgQEAgc3RhdGljIHZvaWQgZ3VjX2NsaWVudHNf ZGVzdHJveShzdHJ1Y3QgaW50ZWxfZ3VjICAKPiAqZ3VjKQo+ICAJCWd1Y19jbGllbnRfZnJlZShj bGllbnQpOwo+ICB9Cj4gK3N0YXRpYyBpbnQgX19ndWNfY2xpZW50X2VuYWJsZShzdHJ1Y3QgaW50 ZWxfZ3VjX2NsaWVudCAqY2xpZW50KQo+ICt7Cj4gKwlpbnQgcmV0ID0gMDsKCmluaXRpYWxpemF0 aW9uIGlzIG5vdCBuZWVkZWQgaGVyZQoKPiArCj4gKwlndWNfcHJvY19kZXNjX2luaXQoY2xpZW50 KTsKPiArCWd1Y19zdGFnZV9kZXNjX2luaXQoY2xpZW50KTsKPiArCj4gKwlyZXQgPSBjcmVhdGVf ZG9vcmJlbGwoY2xpZW50KTsKPiArCWlmIChyZXQpCj4gKwkJZ3VjX3N0YWdlX2Rlc2NfZmluaShj bGllbnQpOwo+ICsKPiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIF9fZ3Vj X2NsaWVudF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQpCj4gK3sKPiAr CS8qCj4gKwkgKiBCeSB0aGUgdGltZSB3ZSdyZSBoZXJlLCBHdUMgbWF5IGhhdmUgYWxyZWFkeSBi ZWVuIHJlc2V0LiBpZiB0aGF0IGlzCj4gKwkgKiB0aGUgY2FzZSwgaW5zdGVhZCBvZiB0cnlpbmcg KGluIHZhaW4pIHRvIGNvbW11bmljYXRlIHdpdGggaXQsIGxldCdzCj4gKwkgKiBqdXN0IGNsZWFu dXAgdGhlIGRvb3JiZWxsIEhXIGFuZCBvdXIgaW50ZXJuYWwgc3RhdGUuCj4gKwkgKi8KPiArCgpl eHRyYSBuZXcgbGluZQoKPiArCWlmIChpbnRlbF91Y19md19pc19sb2FkZWQoJmNsaWVudC0+Z3Vj LT5mdykpCgp3aGF0IGFib3V0IGFkZGluZyBvbmUgbW9yZSBoZWxwZXIgaW4gaW50ZWxfZ3VjLmg6 CgpzdGF0aWMgaW5saW5lIGJvb2wgaW50ZWxfZ3VjX2lzX2FsaXZlKHN0cnVjdCBpbnRlbF9ndWMg Kmd1YykKewoJcmV0dXJuIGludGVsX3VjX2Z3X2lzX2xvYWRlZCgmZ3VjLT5mdyk7Cn0KCmFuZCB1 c2UgaXQgaGVyZSBhczoKCglpZiAoaW50ZWxfZ3VjX2lzX2FsaXZlKGNsaWVudC0+Z3VjKSkKCj4g KwkJZGVzdHJveV9kb29yYmVsbChjbGllbnQpOwo+ICsJZWxzZQo+ICsJCV9fZGVzdHJveV9kb29y YmVsbChjbGllbnQpOwo+ICsKPiArCWd1Y19zdGFnZV9kZXNjX2ZpbmkoY2xpZW50KTsKPiArfQo+ ICsKPiArc3RhdGljIGludCBndWNfY2xpZW50c19lbmFibGUoc3RydWN0IGludGVsX2d1YyAqZ3Vj KQo+ICt7Cj4gKwlpbnQgcmV0ID0gMDsKCmluaXRpYWxpemF0aW9uIGlzIG5vdCBuZWVkZWQgaGVy ZQoKPiArCj4gKwlyZXQgPSBfX2d1Y19jbGllbnRfZW5hYmxlKGd1Yy0+ZXhlY2J1Zl9jbGllbnQp Owo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiArCWlmIChndWMtPnByZWVtcHRf Y2xpZW50KSB7Cj4gKwkJcmV0ID0gX19ndWNfY2xpZW50X2VuYWJsZShndWMtPnByZWVtcHRfY2xp ZW50KTsKPiArCQlpZiAocmV0KSB7Cj4gKwkJCV9fZ3VjX2NsaWVudF9kaXNhYmxlKGd1Yy0+ZXhl Y2J1Zl9jbGllbnQpOwo+ICsJCQlyZXR1cm4gcmV0Owo+ICsJCX0KPiArCX0KPiArCj4gKwlyZXR1 cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgZ3VjX2NsaWVudHNfZGlzYWJsZShzdHJ1Y3Qg aW50ZWxfZ3VjICpndWMpCj4gK3sKPiArCWlmIChndWMtPnByZWVtcHRfY2xpZW50KQo+ICsJCV9f Z3VjX2NsaWVudF9kaXNhYmxlKGd1Yy0+cHJlZW1wdF9jbGllbnQpOwo+ICsKPiArCWlmIChndWMt PmV4ZWNidWZfY2xpZW50KQo+ICsJCV9fZ3VjX2NsaWVudF9kaXNhYmxlKGd1Yy0+ZXhlY2J1Zl9j bGllbnQpOwo+ICt9Cj4gKwo+ICAvKgo+ICAgKiBTZXQgdXAgdGhlIG1lbW9yeSByZXNvdXJjZXMg dG8gYmUgc2hhcmVkIHdpdGggdGhlIEd1QyAodmlhIHRoZSBHR1RUKQo+ICAgKiBhdCBmaXJtd2Fy ZSBsb2FkaW5nIHRpbWUuCj4gQEAgLTEyODcsMTUgKzEyOTIsMTEgQEAgaW50IGludGVsX2d1Y19z dWJtaXNzaW9uX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZ3VjICAKPiAqZ3VjKQo+IAlHRU1fQlVHX09O KCFndWMtPmV4ZWNidWZfY2xpZW50KTsKPiAtCWd1Y19yZXNldF93cShndWMtPmV4ZWNidWZfY2xp ZW50KTsKPiAtCWlmIChndWMtPnByZWVtcHRfY2xpZW50KQo+IC0JCWd1Y19yZXNldF93cShndWMt PnByZWVtcHRfY2xpZW50KTsKPiAtCj4gIAllcnIgPSBpbnRlbF9ndWNfc2FtcGxlX2ZvcmNld2Fr ZShndWMpOwo+ICAJaWYgKGVycikKPiAgCQlyZXR1cm4gZXJyOwo+IC0JZXJyID0gZ3VjX2NsaWVu dHNfZG9vcmJlbGxfaW5pdChndWMpOwo+ICsJZXJyID0gZ3VjX2NsaWVudHNfZW5hYmxlKGd1Yyk7 Cj4gIAlpZiAoZXJyKQo+ICAJCXJldHVybiBlcnI7Cj4gQEAgLTEzMTcsNyArMTMxOCw3IEBAIHZv aWQgaW50ZWxfZ3VjX3N1Ym1pc3Npb25fZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZ3VjICAKPiAqZ3Vj KQo+ICAJR0VNX0JVR19PTihkZXZfcHJpdi0+Z3QuYXdha2UpOyAvKiBHVCBzaG91bGQgYmUgcGFy a2VkIGZpcnN0ICovCj4gCWd1Y19pbnRlcnJ1cHRzX3JlbGVhc2UoZGV2X3ByaXYpOwo+IC0JZ3Vj X2NsaWVudHNfZG9vcmJlbGxfZmluaShndWMpOwo+ICsJZ3VjX2NsaWVudHNfZGlzYWJsZShndWMp Owo+ICB9Cj4gI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X1NFTEZURVNUKQo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91Y19mdy5oICAKPiBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3VjX2Z3LmgKPiBpbmRleCA4NzkxMGFhODMyNjcuLjBlM2JkNTgw ZTI2NyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91Y19mdy5oCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdWNfZncuaAo+IEBAIC0xMTUsOSArMTE1 LDE0IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF91Y19md19pc19zZWxlY3RlZChzdHJ1Y3Qg IAo+IGludGVsX3VjX2Z3ICp1Y19mdykKPiAgCXJldHVybiB1Y19mdy0+cGF0aCAhPSBOVUxMOwo+ ICB9Cj4gK3N0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF91Y19md19pc19sb2FkZWQoc3RydWN0IGlu dGVsX3VjX2Z3ICp1Y19mdykKPiArewo+ICsJcmV0dXJuIHVjX2Z3LT5sb2FkX3N0YXR1cyA9PSBJ TlRFTF9VQ19GSVJNV0FSRV9TVUNDRVNTOwo+ICt9Cj4gKwo+ICBzdGF0aWMgaW5saW5lIHZvaWQg aW50ZWxfdWNfZndfc2FuaXRpemUoc3RydWN0IGludGVsX3VjX2Z3ICp1Y19mdykKPiAgewo+IC0J aWYgKHVjX2Z3LT5sb2FkX3N0YXR1cyA9PSBJTlRFTF9VQ19GSVJNV0FSRV9TVUNDRVNTKQo+ICsJ aWYgKGludGVsX3VjX2Z3X2lzX2xvYWRlZCh1Y19mdykpCj4gIAkJdWNfZnctPmxvYWRfc3RhdHVz ID0gSU5URUxfVUNfRklSTVdBUkVfUEVORElORzsKPiAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfZ3VjLmMgIAo+IGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvc2VsZnRlc3RzL2ludGVsX2d1Yy5jCj4gaW5kZXggMGMwYWI4MmI2MjI4Li5iZjI3MTYy ZmIzMjcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVs X2d1Yy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX2d1Yy5j Cj4gQEAgLTE1OSw2ICsxNTksNyBAQCBzdGF0aWMgaW50IGlndF9ndWNfY2xpZW50cyh2b2lkICph cmdzKQo+ICAJICogR2V0IHJpZCBvZiBjbGllbnRzIGNyZWF0ZWQgZHVyaW5nIGRyaXZlciBsb2Fk IGJlY2F1c2UgdGhlIHRlc3Qgd2lsbAo+ICAJICogcmVjcmVhdGUgdGhlbS4KPiAgCSAqLwo+ICsJ Z3VjX2NsaWVudHNfZGlzYWJsZShndWMpOwo+ICAJZ3VjX2NsaWVudHNfZGVzdHJveShndWMpOwo+ ICAJaWYgKGd1Yy0+ZXhlY2J1Zl9jbGllbnQgfHwgZ3VjLT5wcmVlbXB0X2NsaWVudCkgewo+ICAJ CXByX2VycigiZ3VjX2NsaWVudHNfZGVzdHJveSBsaWVkIVxuIik7Cj4gQEAgLTE5Nyw4ICsxOTgs OCBAQCBzdGF0aWMgaW50IGlndF9ndWNfY2xpZW50cyh2b2lkICphcmdzKQo+ICAJCWdvdG8gb3V0 Owo+ICAJfQo+IC0JLyogTm93IGNyZWF0ZSB0aGUgZG9vcmJlbGxzICovCj4gLQlndWNfY2xpZW50 c19kb29yYmVsbF9pbml0KGd1Yyk7Cj4gKwkvKiBOb3cgZW5hYmxlIHRoZSBjbGllbnRzICovCj4g KwlndWNfY2xpZW50c19lbmFibGUoZ3VjKTsKPiAJLyogZWFjaCBjbGllbnQgc2hvdWxkIG5vdyBo YXZlIHJlY2VpdmVkIGEgZG9vcmJlbGwgKi8KPiAgCWlmICghY2xpZW50X2Rvb3JiZWxsX2luX3N5 bmMoZ3VjLT5leGVjYnVmX2NsaWVudCkgfHwKPiBAQCAtMjEyLDcgKzIxMyw3IEBAIHN0YXRpYyBp bnQgaWd0X2d1Y19jbGllbnRzKHZvaWQgKmFyZ3MpCj4gIAkgKiBCYXNpYyB0ZXN0IC0gYW4gYXR0 ZW1wdCB0byByZWFsbG9jYXRlIGEgdmFsaWQgZG9vcmJlbGwgdG8gdGhlCj4gIAkgKiBjbGllbnQg aXQgaXMgY3VycmVudGx5IGFzc2lnbmVkIHNob3VsZCBub3QgY2F1c2UgYSBmYWlsdXJlLgo+ICAJ ICovCj4gLQllcnIgPSBndWNfY2xpZW50c19kb29yYmVsbF9pbml0KGd1Yyk7Cj4gKwllcnIgPSBj cmVhdGVfZG9vcmJlbGwoZ3VjLT5leGVjYnVmX2NsaWVudCk7Cj4gIAlpZiAoZXJyKQo+ICAJCWdv dG8gb3V0Owo+IEBAIC0yNjMsMTIgKzI2NCwxMCBAQCBzdGF0aWMgaW50IGlndF9ndWNfY2xpZW50 cyh2b2lkICphcmdzKQo+ICAJICogTGVhdmUgY2xlYW4gc3RhdGUgZm9yIG90aGVyIHRlc3QsIHBs dXMgdGhlIGRyaXZlciBhbHdheXMgZGVzdHJveSB0aGUKPiAgCSAqIGNsaWVudHMgZHVyaW5nIHVu bG9hZC4KPiAgCSAqLwo+IC0JZGVzdHJveV9kb29yYmVsbChndWMtPmV4ZWNidWZfY2xpZW50KTsK PiAtCWlmIChndWMtPnByZWVtcHRfY2xpZW50KQo+IC0JCWRlc3Ryb3lfZG9vcmJlbGwoZ3VjLT5w cmVlbXB0X2NsaWVudCk7Cj4gKwlndWNfY2xpZW50c19kaXNhYmxlKGd1Yyk7Cj4gIAlndWNfY2xp ZW50c19kZXN0cm95KGd1Yyk7Cj4gIAlndWNfY2xpZW50c19jcmVhdGUoZ3VjKTsKPiAtCWd1Y19j bGllbnRzX2Rvb3JiZWxsX2luaXQoZ3VjKTsKPiArCWd1Y19jbGllbnRzX2VuYWJsZShndWMpOwo+ ICB1bmxvY2s6Cj4gIAlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdik7Cj4gIAltdXRleF91 bmxvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKPiBAQCAtMzUyLDcgKzM1MSw3IEBA IHN0YXRpYyBpbnQgaWd0X2d1Y19kb29yYmVsbHModm9pZCAqYXJnKQo+IAkJZGJfaWQgPSBjbGll bnRzW2ldLT5kb29yYmVsbF9pZDsKPiAtCQllcnIgPSBjcmVhdGVfZG9vcmJlbGwoY2xpZW50c1tp XSk7Cj4gKwkJZXJyID0gX19ndWNfY2xpZW50X2VuYWJsZShjbGllbnRzW2ldKTsKPiAgCQlpZiAo ZXJyKSB7Cj4gIAkJCXByX2VycigiWyVkXSBGYWlsZWQgdG8gY3JlYXRlIGEgZG9vcmJlbGxcbiIs IGkpOwo+ICAJCQlnb3RvIG91dDsKPiBAQCAtMzc4LDcgKzM3Nyw3IEBAIHN0YXRpYyBpbnQgaWd0 X2d1Y19kb29yYmVsbHModm9pZCAqYXJnKQo+ICBvdXQ6Cj4gIAlmb3IgKGkgPSAwOyBpIDwgQVRU RU1QVFM7IGkrKykKPiAgCQlpZiAoIUlTX0VSUl9PUl9OVUxMKGNsaWVudHNbaV0pKSB7Cj4gLQkJ CWRlc3Ryb3lfZG9vcmJlbGwoY2xpZW50c1tpXSk7Cj4gKwkJCV9fZ3VjX2NsaWVudF9kaXNhYmxl KGNsaWVudHNbaV0pOwo+ICAJCQlndWNfY2xpZW50X2ZyZWUoY2xpZW50c1tpXSk7Cj4gIAkJfQo+ ICB1bmxvY2s6Cgp3aXRoIGFib3ZlIHNtYWxsIHVwZGF0ZXMsCgpSZXZpZXdlZC1ieTogTWljaGFs IFdhamRlY3prbyA8bWljaGFsLndhamRlY3prb0BpbnRlbC5jb20+CgpNaWNoYWwKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==