From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Michal Wajdeczko" Subject: Re: [PATCH 08/12] drm/i915/uc: move GuC/HuC inside intel_gt under a new intel_uc Date: Wed, 10 Jul 2019 20:22:18 +0200 Message-ID: References: <20190710005437.3496-1-daniele.ceraolospurio@intel.com> <20190710005437.3496-9-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 mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 056366E109 for ; Wed, 10 Jul 2019 18:22:20 +0000 (UTC) In-Reply-To: <20190710005437.3496-9-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 T24gV2VkLCAxMCBKdWwgMjAxOSAwMjo1NDozMyArMDIwMCwgRGFuaWVsZSBDZXJhb2xvIFNwdXJp byAgCjxkYW5pZWxlLmNlcmFvbG9zcHVyaW9AaW50ZWwuY29tPiB3cm90ZToKCj4gQmVpbmcgcGFy dCBvZiB0aGUgR1QgSFcsIGl0IG1ha2Ugc2Vuc2UgdG8ga2VlcCB0aGUgZ3VjL2h1YyBzdHJ1Y3R1 cmVzCj4gaW5zaWRlIHRoZSBHVCBzdHJ1Y3R1cmUuIFRvIGhlbHAgd2l0aCB0aGUgZW5jYXBzdWxh dGlvbiB3b3JrIGRvbmUgYnkgdGhlCj4gZm9sbG93aW5nIHBhdGNoZXMsIGJvdGggc3RydWN0dXJl cyBhcmUgcGxhY2VkIGluc2lkZSBhIG5ldyBpbnRlbF91Ywo+IGNvbnRhaW5lci4gQWx0aG91Z2gg dGhpcyByZXN1bHRzIGluIGNvZGUgd2l0aCB1Z2x5IG5lc3RlZCBkZXJlZmVyZW5jZXMKPiAoaTkx NS0+Z3QudWMuZ3VjLi4uKSwgaXQgc2F2ZXMgdXMgdGhlIGV4dHJhIHdvcmsgcmVxdWlyZWQgaW4g bW92aW5nCj4gdGhlIHN0cnVjdHVyZXMgdHdpY2UgKGk5MTUgLT4gZ3QgLT4gdWMpLiBUaGUgZm9s bG93aW5nIHBhdGNoZXMgd2lsbAo+IHJlZHVjZSB0aGUgbnVtYmVyIG9mIHBsYWNlcyB3aGVyZSB3 ZSB0cnkgdG8gYWNjZXNzIHRoZSBndWMvaHVjCj4gc3RydWN0dXJlcyBkaXJlY3RseSBmcm9tIGk5 MTUgYW5kIHJlZHVjZSB0aGUgdWdsaW5lc3MuCj4KPiBTaWduZWQtb2ZmLWJ5OiBEYW5pZWxlIENl cmFvbG8gU3B1cmlvIDxkYW5pZWxlLmNlcmFvbG9zcHVyaW9AaW50ZWwuY29tPgo+IENjOiBNaWNo YWwgV2FqZGVjemtvIDxtaWNoYWwud2FqZGVjemtvQGludGVsLmNvbT4KPiBDYzogQ2hyaXMgV2ls c29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L2ludGVsX2d0X3R5cGVzLmggICAgICB8ICA0ICsrCj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L2ludGVsX3Jlc2V0LmMgICAgICAgICB8ICA2ICstLQo+ICAuLi4vZ3B1L2RybS9pOTE1 L2d0L3VjL2ludGVsX2d1Y19zdWJtaXNzaW9uLmMgfCAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC91Yy9pbnRlbF9odWMuYyAgICAgICAgfCAgNCArLQo+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC91Yy9pbnRlbF91Yy5jICAgICAgICAgfCA1MiArKysrKysrKystLS0tLS0tLS0tCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX3VjLmggICAgICAgICB8ICA1ICsrCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL3NlbGZ0ZXN0X2d1Yy5jICAgICB8ICA0ICstCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICAgICAgICAgICB8IDI2ICsrKysr LS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAgICAgICAgICAgIHwg IDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAgICAgIHwg IDcgKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMgICAgICAgICB8 IDExICsrLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyAgICAgICAgICAgICAg IHwgIDYgKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3dvcGNtLmMgICAgICAgICAg ICB8ICA0ICstCj4gIDEzIGZpbGVzIGNoYW5nZWQsIDY5IGluc2VydGlvbnMoKyksIDY0IGRlbGV0 aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0 X3R5cGVzLmggIAo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3RfdHlwZXMuaAo+ IGluZGV4IDM1NjNjZTk3MDEwMi4uYjcxMTI1MmZmNDI3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L2ludGVsX2d0X3R5cGVzLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9pbnRlbF9ndF90eXBlcy5oCj4gQEAgLTEzLDYgKzEzLDggQEAKPiAgI2luY2x1ZGUg PGxpbnV4L3NwaW5sb2NrLmg+Cj4gICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgo+ICsjaW5jbHVk ZSAidWMvaW50ZWxfdWMuaCIKPiArCj4gICNpbmNsdWRlICJpOTE1X3ZtYS5oIgo+ICAjaW5jbHVk ZSAiaW50ZWxfd2FrZXJlZi5oIgo+IEBAIC0yNSw2ICsyNyw4IEBAIHN0cnVjdCBpbnRlbF9ndCB7 Cj4gIAlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmU7Cj4gIAlzdHJ1Y3QgaTkxNV9nZ3R0ICpn Z3R0Owo+ICsJc3RydWN0IGludGVsX3VjIHVjOwo+ICsKPiAgCXN0cnVjdCBpbnRlbF9ndF90aW1l bGluZXMgewo+ICAJCXN0cnVjdCBtdXRleCBtdXRleDsgLyogcHJvdGVjdHMgbGlzdCAqLwo+ICAJ CXN0cnVjdCBsaXN0X2hlYWQgYWN0aXZlX2xpc3Q7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L2ludGVsX3Jlc2V0LmMgIAo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv aW50ZWxfcmVzZXQuYwo+IGluZGV4IDlhYmZhMjhjMzAyMC4uY2NlZGVhNjM2YmEzIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jlc2V0LmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yZXNldC5jCj4gQEAgLTExMDksMTQgKzExMDksMTQg QEAgaW50IGk5MTVfcmVzZXRfZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgIAo+ICplbmdp bmUsIGNvbnN0IGNoYXIgKm1zZykKPiAgCQkJICAgIlJlc2V0dGluZyAlcyBmb3IgJXNcbiIsIGVu Z2luZS0+bmFtZSwgbXNnKTsKPiAgCWVycm9yLT5yZXNldF9lbmdpbmVfY291bnRbZW5naW5lLT5p ZF0rKzsKPiAtCWlmICghZW5naW5lLT5pOTE1LT5ndWMuZXhlY2J1Zl9jbGllbnQpCj4gKwlpZiAo IWVuZ2luZS0+Z3QtPnVjLmd1Yy5leGVjYnVmX2NsaWVudCkKPiAgCQlyZXQgPSBpbnRlbF9ndF9y ZXNldF9lbmdpbmUoZW5naW5lLT5pOTE1LCBlbmdpbmUpOwo+ICAJZWxzZQo+IC0JCXJldCA9IGlu dGVsX2d1Y19yZXNldF9lbmdpbmUoJmVuZ2luZS0+aTkxNS0+Z3VjLCBlbmdpbmUpOwo+ICsJCXJl dCA9IGludGVsX2d1Y19yZXNldF9lbmdpbmUoJmVuZ2luZS0+Z3QtPnVjLmd1YywgZW5naW5lKTsK PiAgCWlmIChyZXQpIHsKPiAgCQkvKiBJZiB3ZSBmYWlsIGhlcmUsIHdlIGV4cGVjdCB0byBmYWxs YmFjayB0byBhIGdsb2JhbCByZXNldCAqLwo+ICAJCURSTV9ERUJVR19EUklWRVIoIiVzRmFpbGVk IHRvIHJlc2V0ICVzLCByZXQ9JWRcbiIsCj4gLQkJCQkgZW5naW5lLT5pOTE1LT5ndWMuZXhlY2J1 Zl9jbGllbnQgPyAiR3VDICIgOiAiIiwKPiArCQkJCSBlbmdpbmUtPmd0LT51Yy5ndWMuZXhlY2J1 Zl9jbGllbnQgPyAiR3VDICIgOiAiIiwKCm1heWJlIGluc3RlYWQgb2YgZG9pbmcgM3ggc2FtZSBk ZXJlZiwganVzdCBhZGQgYXQgdGhlIHN0YXJ0OgoKCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9ICZl bmdpbmUtPmd0LT51Yy5ndWM7Cgo+ICAJCQkJIGVuZ2luZS0+bmFtZSwgcmV0KTsKPiAgCQlnb3Rv IG91dDsKPiAgCX0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50 ZWxfZ3VjX3N1Ym1pc3Npb24uYyAgCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRl bF9ndWNfc3VibWlzc2lvbi5jCj4gaW5kZXggZjAxNWY3ZGVlNDUzLi4yMzkwNjIyOGI5YjQgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX3N1Ym1pc3Np b24uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19zdWJtaXNz aW9uLmMKPiBAQCAtNTA5LDcgKzUwOSw3IEBAIHN0YXRpYyB2b2lkIGd1Y19zdWJtaXQoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAgCj4gKmVuZ2luZSwKPiAgCQkgICAgICAgc3RydWN0IGk5MTVfcmVx dWVzdCAqKm91dCwKPiAgCQkgICAgICAgc3RydWN0IGk5MTVfcmVxdWVzdCAqKmVuZCkKPiAgewo+ IC0Jc3RydWN0IGludGVsX2d1YyAqZ3VjID0gJmVuZ2luZS0+aTkxNS0+Z3VjOwo+ICsJc3RydWN0 IGludGVsX2d1YyAqZ3VjID0gJmVuZ2luZS0+Z3QtPnVjLmd1YzsKPiAgCXN0cnVjdCBpbnRlbF9n dWNfY2xpZW50ICpjbGllbnQgPSBndWMtPmV4ZWNidWZfY2xpZW50Owo+IAlzcGluX2xvY2soJmNs aWVudC0+d3FfbG9jayk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3Vj L2ludGVsX2h1Yy5jICAKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2h1Yy5j Cj4gaW5kZXggMmE0MWVlODlhMTZkLi41ODFjOWMzZDRmYzAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfaHVjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC91Yy9pbnRlbF9odWMuYwo+IEBAIC00Nyw3ICs0Nyw3IEBAIHZvaWQgaW50ZWxfaHVj X2luaXRfZWFybHkoc3RydWN0IGludGVsX2h1YyAqaHVjKQo+ICBzdGF0aWMgaW50IGludGVsX2h1 Y19yc2FfZGF0YV9jcmVhdGUoc3RydWN0IGludGVsX2h1YyAqaHVjKQo+ICB7Cj4gIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGh1Y190b19pOTE1KGh1Yyk7Cj4gLQlzdHJ1Y3QgaW50 ZWxfZ3VjICpndWMgPSAmaTkxNS0+Z3VjOwo+ICsJc3RydWN0IGludGVsX2d1YyAqZ3VjID0gJmk5 MTUtPmd0LnVjLmd1YzsKCm1heWJlIHdlIGNhbiBhdm9pZCBpOTE1L2d0IGRhbmNlIHdpdGg6CgoJ c3RydWN0IGludGVsX2d1YyAqZ3VjID0gaHVjX3RvX3VjKGh1YyktPmd1YzsKCj4gIAlzdHJ1Y3Qg aTkxNV92bWEgKnZtYTsKPiAgCXZvaWQgKnZhZGRyOwo+IEBAIC0xMTMsNyArMTEzLDcgQEAgdm9p ZCBpbnRlbF9odWNfZmluaShzdHJ1Y3QgaW50ZWxfaHVjICpodWMpCj4gIGludCBpbnRlbF9odWNf YXV0aChzdHJ1Y3QgaW50ZWxfaHVjICpodWMpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICppOTE1ID0gaHVjX3RvX2k5MTUoaHVjKTsKPiAtCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9 ICZpOTE1LT5ndWM7Cj4gKwlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmaTkxNS0+Z3QudWMuZ3Vj Owo+ICAJaW50IHJldDsKPiAJaWYgKGh1Yy0+ZncubG9hZF9zdGF0dXMgIT0gSU5URUxfVUNfRklS TVdBUkVfU1VDQ0VTUykKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMv aW50ZWxfdWMuYyAgCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91Yy5jCj4g aW5kZXggNjE5M2I4Nzg1NWUwLi5lMjA4MGRhMmUxZTQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfdWMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L3VjL2ludGVsX3VjLmMKPiBAQCAtNTQsOCArNTQsOCBAQCBzdGF0aWMgaW50IF9faW50ZWxf dWNfcmVzZXRfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgIAo+ICpkZXZfcHJpdikKPiBzdGF0 aWMgaW50IF9fZ2V0X3BsYXRmb3JtX2VuYWJsZV9ndWMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg Kmk5MTUpCj4gIHsKPiAtCXN0cnVjdCBpbnRlbF91Y19mdyAqZ3VjX2Z3ID0gJmk5MTUtPmd1Yy5m dzsKPiAtCXN0cnVjdCBpbnRlbF91Y19mdyAqaHVjX2Z3ID0gJmk5MTUtPmh1Yy5mdzsKPiArCXN0 cnVjdCBpbnRlbF91Y19mdyAqZ3VjX2Z3ID0gJmk5MTUtPmd0LnVjLmd1Yy5mdzsKPiArCXN0cnVj dCBpbnRlbF91Y19mdyAqaHVjX2Z3ID0gJmk5MTUtPmd0LnVjLmh1Yy5mdzsKCm1heWJlIGZpcnN0 IGFkZDoKCglzdHJ1Y3QgaW50ZWxfdWMgKnVjID0gJmk5MTUtPmd0LnVjOwp0aGVuCglzdHJ1Y3Qg aW50ZWxfdWNfZncgKmd1Y19mdyA9ICZ1Yy0+Z3VjLmZ3OwoJc3RydWN0IGludGVsX3VjX2Z3ICpo dWNfZncgPSAmdWMtPmh1Yy5mdzsKCj4gIAlpbnQgZW5hYmxlX2d1YyA9IDA7Cj4gCS8qIERlZmF1 bHQgaXMgdG8gdXNlIEh1QyBpZiB3ZSBrbm93IEd1QyBhbmQgSHVDIGZpcm13YXJlcyAqLwo+IEBA IC03MSw3ICs3MSw3IEBAIHN0YXRpYyBpbnQgX19nZXRfZGVmYXVsdF9ndWNfbG9nX2xldmVsKHN0 cnVjdCAgCj4gZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiAgewo+ICAJaW50IGd1Y19sb2dfbGV2 ZWw7Cj4gLQlpZiAoIWludGVsX3VjX2Z3X3N1cHBvcnRlZCgmaTkxNS0+Z3VjLmZ3KSB8fAo+ICsJ aWYgKCFpbnRlbF91Y19md19zdXBwb3J0ZWQoJmk5MTUtPmd0LnVjLmd1Yy5mdykgfHwKPiAgCSAg ICAhaW50ZWxfdWNfaXNfdXNpbmdfZ3VjKGk5MTUpKQo+ICAJCWd1Y19sb2dfbGV2ZWwgPSBHVUNf TE9HX0xFVkVMX0RJU0FCTEVEOwo+ICAJZWxzZSBpZiAoSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5 MTVfREVCVUcpIHx8Cj4gQEAgLTEwNCw4ICsxMDQsOCBAQCBzdGF0aWMgaW50IF9fZ2V0X2RlZmF1 bHRfZ3VjX2xvZ19sZXZlbChzdHJ1Y3QgIAo+IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4gICAq Lwo+ICBzdGF0aWMgdm9pZCBzYW5pdGl6ZV9vcHRpb25zX2Vhcmx5KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICppOTE1KQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfdWNfZncgKmd1Y19mdyA9ICZpOTE1 LT5ndWMuZnc7Cj4gLQlzdHJ1Y3QgaW50ZWxfdWNfZncgKmh1Y19mdyA9ICZpOTE1LT5odWMuZnc7 Cj4gKwlzdHJ1Y3QgaW50ZWxfdWNfZncgKmd1Y19mdyA9ICZpOTE1LT5ndC51Yy5ndWMuZnc7Cj4g KwlzdHJ1Y3QgaW50ZWxfdWNfZncgKmh1Y19mdyA9ICZpOTE1LT5ndC51Yy5odWMuZnc7CgpzYW1l IGhlcmUKCj4gCS8qIEEgbmVnYXRpdmUgdmFsdWUgbWVhbnMgInVzZSBwbGF0Zm9ybSBkZWZhdWx0 IiAqLwo+ICAJaWYgKGk5MTVfbW9kcGFyYW1zLmVuYWJsZV9ndWMgPCAwKQo+IEBAIC0xNzQsOCAr MTc0LDggQEAgc3RhdGljIHZvaWQgc2FuaXRpemVfb3B0aW9uc19lYXJseShzdHJ1Y3QgIAo+IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4gdm9pZCBpbnRlbF91Y19pbml0X2Vhcmx5KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICppOTE1KQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAm aTkxNS0+Z3VjOwo+IC0Jc3RydWN0IGludGVsX2h1YyAqaHVjID0gJmk5MTUtPmh1YzsKPiArCXN0 cnVjdCBpbnRlbF9ndWMgKmd1YyA9ICZpOTE1LT5ndC51Yy5ndWM7Cj4gKwlzdHJ1Y3QgaW50ZWxf aHVjICpodWMgPSAmaTkxNS0+Z3QudWMuaHVjOwoKYW5kIGhlcmUKYW5kIGluIGFsbCBvdGhlciB1 YyBmdW5jdGlvbnMKCj4gCWludGVsX2d1Y19pbml0X2Vhcmx5KGd1Yyk7Cj4gIAlpbnRlbF9odWNf aW5pdF9lYXJseShodWMpOwo+IEBAIC0xODUsNyArMTg1LDcgQEAgdm9pZCBpbnRlbF91Y19pbml0 X2Vhcmx5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICAKPiAqaTkxNSkKPiB2b2lkIGludGVsX3Vj X2NsZWFudXBfZWFybHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4gIHsKPiAtCXN0 cnVjdCBpbnRlbF9ndWMgKmd1YyA9ICZpOTE1LT5ndWM7Cj4gKwlzdHJ1Y3QgaW50ZWxfZ3VjICpn dWMgPSAmaTkxNS0+Z3QudWMuZ3VjOwo+IAlndWNfZnJlZV9sb2FkX2Vycl9sb2coZ3VjKTsKPiAg fQo+IEBAIC0xOTksNyArMTk5LDcgQEAgdm9pZCBpbnRlbF91Y19jbGVhbnVwX2Vhcmx5KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICAKPiAqaTkxNSkKPiAgICovCj4gIHZvaWQgaW50ZWxfdWNfaW5p dF9tbWlvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ICB7Cj4gLQlpbnRlbF9ndWNf aW5pdF9zZW5kX3JlZ3MoJmk5MTUtPmd1Yyk7Cj4gKwlpbnRlbF9ndWNfaW5pdF9zZW5kX3JlZ3Mo Jmk5MTUtPmd0LnVjLmd1Yyk7Cj4gIH0KPiBzdGF0aWMgdm9pZCBndWNfY2FwdHVyZV9sb2FkX2Vy cl9sb2coc3RydWN0IGludGVsX2d1YyAqZ3VjKQo+IEBAIC0zNTEsMTAgKzM1MSwxMCBAQCB2b2lk IGludGVsX3VjX2ZldGNoX2Zpcm13YXJlcyhzdHJ1Y3QgIAo+IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUpCj4gIAlpZiAoIVVTRVNfR1VDKGk5MTUpKQo+ICAJCXJldHVybjsKPiAtCWludGVsX3VjX2Z3 X2ZldGNoKGk5MTUsICZpOTE1LT5ndWMuZncpOwo+ICsJaW50ZWxfdWNfZndfZmV0Y2goaTkxNSwg Jmk5MTUtPmd0LnVjLmd1Yy5mdyk7Cj4gCWlmIChVU0VTX0hVQyhpOTE1KSkKPiAtCQlpbnRlbF91 Y19md19mZXRjaChpOTE1LCAmaTkxNS0+aHVjLmZ3KTsKPiArCQlpbnRlbF91Y19md19mZXRjaChp OTE1LCAmaTkxNS0+Z3QudWMuaHVjLmZ3KTsKPiAgfQo+IHZvaWQgaW50ZWxfdWNfY2xlYW51cF9m aXJtd2FyZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4gQEAgLTM2MywxNSArMzYz LDE1IEBAIHZvaWQgaW50ZWxfdWNfY2xlYW51cF9maXJtd2FyZXMoc3RydWN0ICAKPiBkcm1faTkx NV9wcml2YXRlICppOTE1KQo+ICAJCXJldHVybjsKPiAJaWYgKFVTRVNfSFVDKGk5MTUpKQo+IC0J CWludGVsX3VjX2Z3X2NsZWFudXBfZmV0Y2goJmk5MTUtPmh1Yy5mdyk7Cj4gKwkJaW50ZWxfdWNf ZndfY2xlYW51cF9mZXRjaCgmaTkxNS0+Z3QudWMuaHVjLmZ3KTsKPiAtCWludGVsX3VjX2Z3X2Ns ZWFudXBfZmV0Y2goJmk5MTUtPmd1Yy5mdyk7Cj4gKwlpbnRlbF91Y19md19jbGVhbnVwX2ZldGNo KCZpOTE1LT5ndC51Yy5ndWMuZncpOwo+ICB9Cj4gaW50IGludGVsX3VjX2luaXQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4gIHsKPiAtCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9ICZp OTE1LT5ndWM7Cj4gLQlzdHJ1Y3QgaW50ZWxfaHVjICpodWMgPSAmaTkxNS0+aHVjOwo+ICsJc3Ry dWN0IGludGVsX2d1YyAqZ3VjID0gJmk5MTUtPmd0LnVjLmd1YzsKPiArCXN0cnVjdCBpbnRlbF9o dWMgKmh1YyA9ICZpOTE1LT5ndC51Yy5odWM7Cj4gIAlpbnQgcmV0Owo+IAlpZiAoIVVTRVNfR1VD KGk5MTUpKQo+IEBAIC00MTUsNyArNDE1LDcgQEAgaW50IGludGVsX3VjX2luaXQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4gdm9pZCBpbnRlbF91Y19maW5pKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1KQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmaTkxNS0+ Z3VjOwo+ICsJc3RydWN0IGludGVsX2d1YyAqZ3VjID0gJmk5MTUtPmd0LnVjLmd1YzsKPiAJaWYg KCFVU0VTX0dVQyhpOTE1KSkKPiAgCQlyZXR1cm47Cj4gQEAgLTQyNiwxNSArNDI2LDE1IEBAIHZv aWQgaW50ZWxfdWNfZmluaShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiAgCQlpbnRl bF9ndWNfc3VibWlzc2lvbl9maW5pKGd1Yyk7Cj4gCWlmIChVU0VTX0hVQyhpOTE1KSkKPiAtCQlp bnRlbF9odWNfZmluaSgmaTkxNS0+aHVjKTsKPiArCQlpbnRlbF9odWNfZmluaSgmaTkxNS0+Z3Qu dWMuaHVjKTsKPiAJaW50ZWxfZ3VjX2ZpbmkoZ3VjKTsKPiAgfQo+IHN0YXRpYyB2b2lkIF9fdWNf c2FuaXRpemUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4gIHsKPiAtCXN0cnVjdCBp bnRlbF9ndWMgKmd1YyA9ICZpOTE1LT5ndWM7Cj4gLQlzdHJ1Y3QgaW50ZWxfaHVjICpodWMgPSAm aTkxNS0+aHVjOwo+ICsJc3RydWN0IGludGVsX2d1YyAqZ3VjID0gJmk5MTUtPmd0LnVjLmd1YzsK PiArCXN0cnVjdCBpbnRlbF9odWMgKmh1YyA9ICZpOTE1LT5ndC51Yy5odWM7Cj4gCUdFTV9CVUdf T04oIWludGVsX3VjX2Z3X3N1cHBvcnRlZCgmZ3VjLT5mdykpOwo+IEBAIC00NTQsOCArNDU0LDgg QEAgdm9pZCBpbnRlbF91Y19zYW5pdGl6ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkK PiBpbnQgaW50ZWxfdWNfaW5pdF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiAg ewo+IC0Jc3RydWN0IGludGVsX2d1YyAqZ3VjID0gJmk5MTUtPmd1YzsKPiAtCXN0cnVjdCBpbnRl bF9odWMgKmh1YyA9ICZpOTE1LT5odWM7Cj4gKwlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmaTkx NS0+Z3QudWMuZ3VjOwo+ICsJc3RydWN0IGludGVsX2h1YyAqaHVjID0gJmk5MTUtPmd0LnVjLmh1 YzsKPiAgCWludCByZXQsIGF0dGVtcHRzOwo+IAlpZiAoIVVTRVNfR1VDKGk5MTUpKQo+IEBAIC01 NTMsNyArNTUzLDcgQEAgaW50IGludGVsX3VjX2luaXRfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUpCj4gdm9pZCBpbnRlbF91Y19maW5pX2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1KQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmaTkxNS0+Z3VjOwo+ICsJ c3RydWN0IGludGVsX2d1YyAqZ3VjID0gJmk5MTUtPmd0LnVjLmd1YzsKPiAJaWYgKCFpbnRlbF9n dWNfaXNfbG9hZGVkKGd1YykpCj4gIAkJcmV0dXJuOwo+IEBAIC01NzUsNyArNTc1LDcgQEAgdm9p ZCBpbnRlbF91Y19maW5pX2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ICAgKi8K PiAgdm9pZCBpbnRlbF91Y19yZXNldF9wcmVwYXJlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1KQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmaTkxNS0+Z3VjOwo+ICsJc3Ry dWN0IGludGVsX2d1YyAqZ3VjID0gJmk5MTUtPmd0LnVjLmd1YzsKPiAJaWYgKCFpbnRlbF9ndWNf aXNfbG9hZGVkKGd1YykpCj4gIAkJcmV0dXJuOwo+IEBAIC01ODYsNyArNTg2LDcgQEAgdm9pZCBp bnRlbF91Y19yZXNldF9wcmVwYXJlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICAKPiAqaTkxNSkK PiB2b2lkIGludGVsX3VjX3J1bnRpbWVfc3VzcGVuZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSkKPiAgewo+IC0Jc3RydWN0IGludGVsX2d1YyAqZ3VjID0gJmk5MTUtPmd1YzsKPiArCXN0 cnVjdCBpbnRlbF9ndWMgKmd1YyA9ICZpOTE1LT5ndC51Yy5ndWM7Cj4gIAlpbnQgZXJyOwo+IAlp ZiAoIWludGVsX2d1Y19pc19sb2FkZWQoZ3VjKSkKPiBAQCAtNjAxLDcgKzYwMSw3IEBAIHZvaWQg aW50ZWxfdWNfcnVudGltZV9zdXNwZW5kKHN0cnVjdCAgCj4gZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSkKPiB2b2lkIGludGVsX3VjX3N1c3BlbmQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUp Cj4gIHsKPiAtCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9ICZpOTE1LT5ndWM7Cj4gKwlzdHJ1Y3Qg aW50ZWxfZ3VjICpndWMgPSAmaTkxNS0+Z3QudWMuZ3VjOwo+ICAJaW50ZWxfd2FrZXJlZl90IHdh a2VyZWY7Cj4gCWlmICghaW50ZWxfZ3VjX2lzX2xvYWRlZChndWMpKQo+IEBAIC02MTMsNyArNjEz LDcgQEAgdm9pZCBpbnRlbF91Y19zdXNwZW5kKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 KQo+IGludCBpbnRlbF91Y19yZXN1bWUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4g IHsKPiAtCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9ICZpOTE1LT5ndWM7Cj4gKwlzdHJ1Y3QgaW50 ZWxfZ3VjICpndWMgPSAmaTkxNS0+Z3QudWMuZ3VjOwo+ICAJaW50IGVycjsKPiAJaWYgKCFpbnRl bF9ndWNfaXNfbG9hZGVkKGd1YykpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L3VjL2ludGVsX3VjLmggIAo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxf dWMuaAo+IGluZGV4IDVhMTM4M2UxOTJkZC4uYTJmZGM4NGFmZmYyIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX3VjLmgKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC91Yy9pbnRlbF91Yy5oCj4gQEAgLTI4LDYgKzI4LDExIEBACj4gICNpbmNsdWRl ICJpbnRlbF9odWMuaCIKPiAgI2luY2x1ZGUgImk5MTVfcGFyYW1zLmgiCj4gK3N0cnVjdCBpbnRl bF91YyB7Cj4gKwlzdHJ1Y3QgaW50ZWxfZ3VjIGd1YzsKPiArCXN0cnVjdCBpbnRlbF9odWMgaHVj Owo+ICt9Owo+ICsKPiAgdm9pZCBpbnRlbF91Y19pbml0X2Vhcmx5KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdik7Cj4gIHZvaWQgaW50ZWxfdWNfY2xlYW51cF9lYXJseShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICB2b2lkIGludGVsX3VjX2luaXRfbW1pbyhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC91Yy9zZWxmdGVzdF9ndWMuYyAgCj4gYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC91Yy9zZWxmdGVzdF9ndWMuYwo+IGluZGV4IDZjYTc2ZjVhOThkNC4uOTNmN2M5MzBh YjE4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL3NlbGZ0ZXN0X2d1 Yy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvc2VsZnRlc3RfZ3VjLmMKPiBA QCAtMTM4LDcgKzEzOCw3IEBAIHN0YXRpYyBpbnQgaWd0X2d1Y19jbGllbnRzKHZvaWQgKmFyZ3Mp Cj4gIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gIAl3YWtlcmVm ID0gaW50ZWxfcnVudGltZV9wbV9nZXQoJmRldl9wcml2LT5ydW50aW1lX3BtKTsKPiAtCWd1YyA9 ICZkZXZfcHJpdi0+Z3VjOwo+ICsJZ3VjID0gJmRldl9wcml2LT5ndC51Yy5ndWM7Cj4gIAlpZiAo IWd1Yykgewo+ICAJCXByX2VycigiTm8gZ3VjIG9iamVjdCFcbiIpOwo+ICAJCWVyciA9IC1FSU5W QUw7Cj4gQEAgLTIzMCw3ICsyMzAsNyBAQCBzdGF0aWMgaW50IGlndF9ndWNfZG9vcmJlbGxzKHZv aWQgKmFyZykKPiAgCW11dGV4X2xvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKPiAg CXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldCgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0pOwo+ IC0JZ3VjID0gJmRldl9wcml2LT5ndWM7Cj4gKwlndWMgPSAmZGV2X3ByaXYtPmd0LnVjLmd1YzsK PiAgCWlmICghZ3VjKSB7Cj4gIAkJcHJfZXJyKCJObyBndWMgb2JqZWN0IVxuIik7Cj4gIAkJZXJy ID0gLUVJTlZBTDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1 Z2ZzLmMgIAo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBpbmRleCBj MDBjY2Q3MzZkZWEuLmYwODJkNTRiMGI3NSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2RlYnVnZnMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVi dWdmcy5jCj4gQEAgLTE4ODUsNyArMTg4NSw3IEBAIHN0YXRpYyBpbnQgaTkxNV9odWNfbG9hZF9z dGF0dXNfaW5mbyhzdHJ1Y3QgIAo+IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQo+ICAJCXJldHVy biAtRU5PREVWOwo+IAlwID0gZHJtX3NlcV9maWxlX3ByaW50ZXIobSk7Cj4gLQlpbnRlbF91Y19m d19kdW1wKCZkZXZfcHJpdi0+aHVjLmZ3LCAmcCk7Cj4gKwlpbnRlbF91Y19md19kdW1wKCZkZXZf cHJpdi0+Z3QudWMuaHVjLmZ3LCAmcCk7Cj4gCXdpdGhfaW50ZWxfcnVudGltZV9wbSgmZGV2X3By aXYtPnJ1bnRpbWVfcG0sIHdha2VyZWYpCj4gIAkJc2VxX3ByaW50ZihtLCAiXG5IdUMgc3RhdHVz IDB4JTA4eDpcbiIsIEk5MTVfUkVBRChIVUNfU1RBVFVTMikpOwo+IEBAIC0xOTAzLDcgKzE5MDMs NyBAQCBzdGF0aWMgaW50IGk5MTVfZ3VjX2xvYWRfc3RhdHVzX2luZm8oc3RydWN0ICAKPiBzZXFf ZmlsZSAqbSwgdm9pZCAqZGF0YSkKPiAgCQlyZXR1cm4gLUVOT0RFVjsKPiAJcCA9IGRybV9zZXFf ZmlsZV9wcmludGVyKG0pOwo+IC0JaW50ZWxfdWNfZndfZHVtcCgmZGV2X3ByaXYtPmd1Yy5mdywg JnApOwo+ICsJaW50ZWxfdWNfZndfZHVtcCgmZGV2X3ByaXYtPmd0LnVjLmd1Yy5mdywgJnApOwo+ IAl3aXRoX2ludGVsX3J1bnRpbWVfcG0oJmRldl9wcml2LT5ydW50aW1lX3BtLCB3YWtlcmVmKSB7 Cj4gIAkJdTMyIHRtcCA9IEk5MTVfUkVBRChHVUNfU1RBVFVTKTsKPiBAQCAtMTk0Niw3ICsxOTQ2 LDcgQEAgc3RyaW5naWZ5X2d1Y19sb2dfdHlwZShlbnVtIGd1Y19sb2dfYnVmZmVyX3R5cGUgIAo+ IHR5cGUpCj4gIHN0YXRpYyB2b2lkIGk5MTVfZ3VjX2xvZ19pbmZvKHN0cnVjdCBzZXFfZmlsZSAq bSwKPiAgCQkJICAgICAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICB7Cj4g LQlzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyAqbG9nID0gJmRldl9wcml2LT5ndWMubG9nOwo+ICsJc3Ry dWN0IGludGVsX2d1Y19sb2cgKmxvZyA9ICZkZXZfcHJpdi0+Z3QudWMuZ3VjLmxvZzsKPiAgCWVu dW0gZ3VjX2xvZ19idWZmZXJfdHlwZSB0eXBlOwo+IAlpZiAoIWludGVsX2d1Y19sb2dfcmVsYXlf ZW5hYmxlZChsb2cpKSB7Cj4gQEAgLTE5OTIsNyArMTk5Miw3IEBAIHN0YXRpYyB2b2lkIGk5MTVf Z3VjX2NsaWVudF9pbmZvKHN0cnVjdCBzZXFfZmlsZSAgCj4gKm0sCj4gIHN0YXRpYyBpbnQgaTkx NV9ndWNfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCj4gIHsKPiAgCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IG5vZGVfdG9faTkxNShtLT5wcml2YXRlKTsK PiAtCWNvbnN0IHN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9ICZkZXZfcHJpdi0+Z3VjOwo+ICsJY29u c3Qgc3RydWN0IGludGVsX2d1YyAqZ3VjID0gJmRldl9wcml2LT5ndC51Yy5ndWM7Cj4gCWlmICgh VVNFU19HVUMoZGV2X3ByaXYpKQo+ICAJCXJldHVybiAtRU5PREVWOwo+IEBAIC0yMDE5LDcgKzIw MTksNyBAQCBzdGF0aWMgaW50IGk5MTVfZ3VjX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lk ICAKPiAqZGF0YSkKPiAgc3RhdGljIGludCBpOTE1X2d1Y19zdGFnZV9wb29sKHN0cnVjdCBzZXFf ZmlsZSAqbSwgdm9pZCAqZGF0YSkKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gbm9kZV90b19pOTE1KG0tPnByaXZhdGUpOwo+IC0JY29uc3Qgc3RydWN0IGludGVs X2d1YyAqZ3VjID0gJmRldl9wcml2LT5ndWM7Cj4gKwljb25zdCBzdHJ1Y3QgaW50ZWxfZ3VjICpn dWMgPSAmZGV2X3ByaXYtPmd0LnVjLmd1YzsKPiAgCXN0cnVjdCBndWNfc3RhZ2VfZGVzYyAqZGVz YyA9IGd1Yy0+c3RhZ2VfZGVzY19wb29sX3ZhZGRyOwo+ICAJaW50ZWxfZW5naW5lX21hc2tfdCB0 bXA7Cj4gIAlpbnQgaW5kZXg7Cj4gQEAgLTIwODIsOSArMjA4Miw5IEBAIHN0YXRpYyBpbnQgaTkx NV9ndWNfbG9nX2R1bXAoc3RydWN0IHNlcV9maWxlICptLCAgCj4gdm9pZCAqZGF0YSkKPiAgCQly ZXR1cm4gLUVOT0RFVjsKPiAJaWYgKGR1bXBfbG9hZF9lcnIpCj4gLQkJb2JqID0gZGV2X3ByaXYt Pmd1Yy5sb2FkX2Vycl9sb2c7Cj4gLQllbHNlIGlmIChkZXZfcHJpdi0+Z3VjLmxvZy52bWEpCj4g LQkJb2JqID0gZGV2X3ByaXYtPmd1Yy5sb2cudm1hLT5vYmo7Cj4gKwkJb2JqID0gZGV2X3ByaXYt Pmd0LnVjLmd1Yy5sb2FkX2Vycl9sb2c7Cj4gKwllbHNlIGlmIChkZXZfcHJpdi0+Z3QudWMuZ3Vj LmxvZy52bWEpCj4gKwkJb2JqID0gZGV2X3ByaXYtPmd0LnVjLmd1Yy5sb2cudm1hLT5vYmo7Cj4g CWlmICghb2JqKQo+ICAJCXJldHVybiAwOwo+IEBAIC0yMTE1LDcgKzIxMTUsNyBAQCBzdGF0aWMg aW50IGk5MTVfZ3VjX2xvZ19sZXZlbF9nZXQodm9pZCAqZGF0YSwgdTY0ICAKPiAqdmFsKQo+ICAJ aWYgKCFVU0VTX0dVQyhkZXZfcHJpdikpCj4gIAkJcmV0dXJuIC1FTk9ERVY7Cj4gLQkqdmFsID0g aW50ZWxfZ3VjX2xvZ19nZXRfbGV2ZWwoJmRldl9wcml2LT5ndWMubG9nKTsKPiArCSp2YWwgPSBp bnRlbF9ndWNfbG9nX2dldF9sZXZlbCgmZGV2X3ByaXYtPmd0LnVjLmd1Yy5sb2cpOwo+IAlyZXR1 cm4gMDsKPiAgfQo+IEBAIC0yMTI3LDcgKzIxMjcsNyBAQCBzdGF0aWMgaW50IGk5MTVfZ3VjX2xv Z19sZXZlbF9zZXQodm9pZCAqZGF0YSwgdTY0ICAKPiB2YWwpCj4gIAlpZiAoIVVTRVNfR1VDKGRl dl9wcml2KSkKPiAgCQlyZXR1cm4gLUVOT0RFVjsKPiAtCXJldHVybiBpbnRlbF9ndWNfbG9nX3Nl dF9sZXZlbCgmZGV2X3ByaXYtPmd1Yy5sb2csIHZhbCk7Cj4gKwlyZXR1cm4gaW50ZWxfZ3VjX2xv Z19zZXRfbGV2ZWwoJmRldl9wcml2LT5ndC51Yy5ndWMubG9nLCB2YWwpOwo+ICB9Cj4gREVGSU5F X1NJTVBMRV9BVFRSSUJVVEUoaTkxNV9ndWNfbG9nX2xldmVsX2ZvcHMsCj4gQEAgLTIxNDEsOSAr MjE0MSw5IEBAIHN0YXRpYyBpbnQgaTkxNV9ndWNfbG9nX3JlbGF5X29wZW4oc3RydWN0IGlub2Rl ICAKPiAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQo+ICAJaWYgKCFVU0VTX0dVQyhkZXZfcHJp dikpCj4gIAkJcmV0dXJuIC1FTk9ERVY7Cj4gLQlmaWxlLT5wcml2YXRlX2RhdGEgPSAmZGV2X3By aXYtPmd1Yy5sb2c7Cj4gKwlmaWxlLT5wcml2YXRlX2RhdGEgPSAmZGV2X3ByaXYtPmd0LnVjLmd1 Yy5sb2c7Cj4gLQlyZXR1cm4gaW50ZWxfZ3VjX2xvZ19yZWxheV9vcGVuKCZkZXZfcHJpdi0+Z3Vj LmxvZyk7Cj4gKwlyZXR1cm4gaW50ZWxfZ3VjX2xvZ19yZWxheV9vcGVuKCZkZXZfcHJpdi0+Z3Qu dWMuZ3VjLmxvZyk7Cj4gIH0KPiBzdGF0aWMgc3NpemVfdAo+IEBAIC0yMTYzLDcgKzIxNjMsNyBA QCBzdGF0aWMgaW50IGk5MTVfZ3VjX2xvZ19yZWxheV9yZWxlYXNlKHN0cnVjdCBpbm9kZSAgCj4g Kmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gaW5vZGUtPmlfcHJpdmF0ZTsKPiAtCWludGVsX2d1Y19sb2dfcmVsYXlf Y2xvc2UoJmRldl9wcml2LT5ndWMubG9nKTsKPiArCWludGVsX2d1Y19sb2dfcmVsYXlfY2xvc2Uo JmRldl9wcml2LT5ndC51Yy5ndWMubG9nKTsKPiAJcmV0dXJuIDA7Cj4gIH0KPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgCj4gYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5jCj4gaW5kZXggNGE4ZDkwMzA0ZTIxLi5lN2M4OWQzMjAzNzUgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiBAQCAtNDIwLDcgKzQyMCw3IEBAIHN0YXRpYyBpbnQg aTkxNV9nZXRwYXJhbV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAgCj4gKmRldiwgdm9pZCAqZGF0 YSwKPiAgCQl2YWx1ZSA9IHNzZXUtPm1pbl9ldV9pbl9wb29sOwo+ICAJCWJyZWFrOwo+ICAJY2Fz ZSBJOTE1X1BBUkFNX0hVQ19TVEFUVVM6Cj4gLQkJdmFsdWUgPSBpbnRlbF9odWNfY2hlY2tfc3Rh dHVzKCZkZXZfcHJpdi0+aHVjKTsKPiArCQl2YWx1ZSA9IGludGVsX2h1Y19jaGVja19zdGF0dXMo JmRldl9wcml2LT5ndC51Yy5odWMpOwo+ICAJCWlmICh2YWx1ZSA8IDApCj4gIAkJCXJldHVybiB2 YWx1ZTsKPiAgCQlicmVhazsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaCAgCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggYjE3 MmQ5ZWUzMDQxLi5jNDc1N2NiZjlhMzMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBA QCAtMTM0OCw5ICsxMzQ4LDYgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewo+IAlzdHJ1Y3Qg aW50ZWxfd29wY20gd29wY207Cj4gLQlzdHJ1Y3QgaW50ZWxfaHVjIGh1YzsKPiAtCXN0cnVjdCBp bnRlbF9ndWMgZ3VjOwo+IC0KPiAgCXN0cnVjdCBpbnRlbF9jc3IgY3NyOwo+IAlzdHJ1Y3QgaW50 ZWxfZ21idXMgZ21idXNbR01CVVNfTlVNX1BJTlNdOwo+IEBAIC0xOTA3LDEyICsxOTA0LDEyIEBA IHN0YXRpYyBpbmxpbmUgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgIAo+ICp3b3BjbV90b19pOTE1 KHN0cnVjdCBpbnRlbF93b3BjbSAqd29wY20pCj4gc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZ3VjX3RvX2k5MTUoc3RydWN0IGludGVsX2d1YyAqZ3VjKQo+ICB7Cj4gLQly ZXR1cm4gY29udGFpbmVyX29mKGd1Yywgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUsIGd1Yyk7Cj4g KwlyZXR1cm4gY29udGFpbmVyX29mKGd1Yywgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUsIGd0LnVj Lmd1Yyk7Cj4gIH0KPiBzdGF0aWMgaW5saW5lIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpodWNf dG9faTkxNShzdHJ1Y3QgaW50ZWxfaHVjICpodWMpCj4gIHsKPiAtCXJldHVybiBjb250YWluZXJf b2YoaHVjLCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSwgaHVjKTsKPiArCXJldHVybiBjb250YWlu ZXJfb2YoaHVjLCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSwgZ3QudWMuaHVjKTsKPiAgfQo+IC8q IFNpbXBsZSBpdGVyYXRvciBvdmVyIGFsbCBpbml0aWFsaXNlZCBlbmdpbmVzICovCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMgIAo+IGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwo+IGluZGV4IDU0ODljZDg3OTMxNS4uNzhl Mzg4ZmEwNTljIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vy cm9yLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCj4gQEAg LTE1NTIsMjEgKzE1NTIsMjIgQEAgc3RhdGljIHZvaWQgY2FwdHVyZV91Y19zdGF0ZShzdHJ1Y3Qg IAo+IGk5MTVfZ3B1X3N0YXRlICplcnJvcikKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUgPSBlcnJvci0+aTkxNTsKPiAgCXN0cnVjdCBpOTE1X2Vycm9yX3VjICplcnJvcl91 YyA9ICZlcnJvci0+dWM7Cj4gKwlzdHJ1Y3QgaW50ZWxfdWMgKnVjID0gJmk5MTUtPmd0LnVjOwo+ IAkvKiBDYXB0dXJpbmcgdUMgc3RhdGUgd29uJ3QgYmUgdXNlZnVsIGlmIHRoZXJlIGlzIG5vIEd1 QyAqLwo+ICAJaWYgKCFlcnJvci0+ZGV2aWNlX2luZm8uaGFzX2d1YykKPiAgCQlyZXR1cm47Cj4g LQllcnJvcl91Yy0+Z3VjX2Z3ID0gaTkxNS0+Z3VjLmZ3Owo+IC0JZXJyb3JfdWMtPmh1Y19mdyA9 IGk5MTUtPmh1Yy5mdzsKPiArCWVycm9yX3VjLT5ndWNfZncgPSB1Yy0+Z3VjLmZ3Owo+ICsJZXJy b3JfdWMtPmh1Y19mdyA9IHVjLT5odWMuZnc7Cj4gCS8qIE5vbi1kZWZhdWx0IGZpcm13YXJlIHBh dGhzIHdpbGwgYmUgc3BlY2lmaWVkIGJ5IHRoZSBtb2RwYXJhbS4KPiAgCSAqIEFzIG1vZHBhcmFt cyBhcmUgZ2VuZXJhbGx5IGFjY2VzaWJsZSBmcm9tIHRoZSB1c2Vyc3BhY2UgbWFrZQo+ICAJICog ZXhwbGljaXQgY29waWVzIG9mIHRoZSBmaXJtd2FyZSBwYXRocy4KPiAgCSAqLwo+IC0JZXJyb3Jf dWMtPmd1Y19mdy5wYXRoID0ga3N0cmR1cChpOTE1LT5ndWMuZncucGF0aCwgR0ZQX0FUT01JQyk7 Cj4gLQllcnJvcl91Yy0+aHVjX2Z3LnBhdGggPSBrc3RyZHVwKGk5MTUtPmh1Yy5mdy5wYXRoLCBH RlBfQVRPTUlDKTsKPiAtCWVycm9yX3VjLT5ndWNfbG9nID0gaTkxNV9lcnJvcl9vYmplY3RfY3Jl YXRlKGk5MTUsIGk5MTUtPmd1Yy5sb2cudm1hKTsKPiArCWVycm9yX3VjLT5ndWNfZncucGF0aCA9 IGtzdHJkdXAodWMtPmd1Yy5mdy5wYXRoLCBHRlBfQVRPTUlDKTsKPiArCWVycm9yX3VjLT5odWNf ZncucGF0aCA9IGtzdHJkdXAodWMtPmh1Yy5mdy5wYXRoLCBHRlBfQVRPTUlDKTsKPiArCWVycm9y X3VjLT5ndWNfbG9nID0gaTkxNV9lcnJvcl9vYmplY3RfY3JlYXRlKGk5MTUsIHVjLT5ndWMubG9n LnZtYSk7Cj4gIH0KPiAvKiBDYXB0dXJlIGFsbCByZWdpc3RlcnMgd2hpY2ggZG9uJ3QgZml0IGlu dG8gYW5vdGhlciBjYXRlZ29yeS4gKi8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9pcnEuYyAgCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gaW5k ZXggNDJkNmQ4YmZhYzcwLi43OGM3NDhjYjlkZjggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9pcnEuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJx LmMKPiBAQCAtMTY1NSw3ICsxNjU1LDcgQEAgc3RhdGljIHZvaWQgZ2VuOF9ndF9pcnFfaGFuZGxl cihzdHJ1Y3QgIAo+IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4gCWlmIChtYXN0ZXJfY3RsICYg KEdFTjhfR1RfUE1fSVJRIHwgR0VOOF9HVF9HVUNfSVJRKSkgewo+ICAJCWdlbjZfcnBzX2lycV9o YW5kbGVyKGk5MTUsIGd0X2lpclsyXSk7Cj4gLQkJZ3VjX2lycV9oYW5kbGVyKCZpOTE1LT5ndWMs IGd0X2lpclsyXSA+PiAxNik7Cj4gKwkJZ3VjX2lycV9oYW5kbGVyKCZpOTE1LT5ndC51Yy5ndWMs IGd0X2lpclsyXSA+PiAxNik7Cj4gIAl9Cj4gIH0KPiBAQCAtMzA4MiwxMCArMzA4Miw4IEBAIHN0 YXRpYyB2b2lkCj4gIGdlbjExX290aGVyX2lycV9oYW5kbGVyKHN0cnVjdCBpbnRlbF9ndCAqZ3Qs IGNvbnN0IHU4IGluc3RhbmNlLAo+ICAJCQljb25zdCB1MTYgaWlyKQo+ICB7Cj4gLQlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGd0LT5pOTE1Owo+IC0KPiAgCWlmIChpbnN0YW5jZSA9 PSBPVEhFUl9HVUNfSU5TVEFOQ0UpCj4gLQkJcmV0dXJuIGd1Y19pcnFfaGFuZGxlcigmaTkxNS0+ Z3VjLCBpaXIpOwo+ICsJCXJldHVybiBndWNfaXJxX2hhbmRsZXIoJmd0LT51Yy5ndWMsIGlpcik7 Cj4gCWlmIChpbnN0YW5jZSA9PSBPVEhFUl9HVFBNX0lOU1RBTkNFKQo+ICAJCXJldHVybiBnZW4x MV9ycHNfaXJxX2hhbmRsZXIoZ3QsIGlpcik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3dvcGNtLmMgIAo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfd29w Y20uYwo+IGluZGV4IDhjODUwNzg1ZTRiNC4uMGMwNWM1ZTZjN2JlIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3dvcGNtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF93b3BjbS5jCj4gQEAgLTE2NCw4ICsxNjQsOCBAQCBzdGF0aWMgaW5saW5lIGlu dCBjaGVja19od19yZXN0cmljdGlvbihzdHJ1Y3QgIAo+IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUs Cj4gIGludCBpbnRlbF93b3BjbV9pbml0KHN0cnVjdCBpbnRlbF93b3BjbSAqd29wY20pCj4gIHsK PiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gd29wY21fdG9faTkxNSh3b3BjbSk7 Cj4gLQl1MzIgZ3VjX2Z3X3NpemUgPSBpbnRlbF91Y19md19nZXRfdXBsb2FkX3NpemUoJmk5MTUt Pmd1Yy5mdyk7Cj4gLQl1MzIgaHVjX2Z3X3NpemUgPSBpbnRlbF91Y19md19nZXRfdXBsb2FkX3Np emUoJmk5MTUtPmh1Yy5mdyk7Cj4gKwl1MzIgZ3VjX2Z3X3NpemUgPSBpbnRlbF91Y19md19nZXRf dXBsb2FkX3NpemUoJmk5MTUtPmd0LnVjLmd1Yy5mdyk7Cj4gKwl1MzIgaHVjX2Z3X3NpemUgPSBp bnRlbF91Y19md19nZXRfdXBsb2FkX3NpemUoJmk5MTUtPmd0LnVjLmh1Yy5mdyk7Cj4gIAl1MzIg Y3R4X3JzdmQgPSBjb250ZXh0X3Jlc2VydmVkX3NpemUoaTkxNSk7Cj4gIAl1MzIgZ3VjX3dvcGNt X2Jhc2U7Cj4gIAl1MzIgZ3VjX3dvcGNtX3NpemU7Cl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeA==