From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH 2/4] drm/i915/fbdev: Use i915/drm_i915_private consistently Date: Thu, 13 Sep 2018 14:11:11 -0700 Message-ID: <20180913211111.GE24668@intel.com> References: <20180913131629.3978-1-chris@chris-wilson.co.uk> <20180913131629.3978-2-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 E23246E13F for ; Thu, 13 Sep 2018 21:11:19 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20180913131629.3978-2-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 Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBTZXAgMTMsIDIwMTggYXQgMDI6MTY6MjdQTSArMDEwMCwgQ2hyaXMgV2lsc29uIHdy b3RlOgo+IENvbnZlcnQgdGhlIGludGVyZmFjZSAoZXhjZXB0IGZvciB0aGUgZHJtIGNvcmUgY2Fs bGJhY2spIHRvIGFjY2VwdAo+IGRybV9pOTE1X3ByaXZhdGUgYXMgdGhhdCBpcyBvdXIgbmF0aXZl IHR5cGUgb2YgdGhlIG1ham9yaXR5IG9mCj4gb3BlcmF0aW9ucy4KCnRoaXMgbWVzc2FnZSBqdXN0 IHRlbGxzIGFib3V0IHMvZGV2L2Rldl9wcml2Li4uCgo+IAo+IFNpZ25lZC1vZmYtYnk6IENocmlz IFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5jICAgIHwgIDEwICstLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaCAgIHwgIDI4ICsrKy0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZmJkZXYuYyB8IDExNyArKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQo+ICAzIGZpbGVzIGNo YW5nZWQsIDc3IGluc2VydGlvbnMoKyksIDc4IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuYwo+IGluZGV4IDVkZDdmYzU4MmU2Zi4uYTc0ZGU0NDI4Yzc5IDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5jCj4gQEAgLTY5Miw3ICs2OTIsNyBAQCBzdGF0aWMgaW50IGk5MTVf bG9hZF9tb2Rlc2V0X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCWlmIChJTlRFTF9J TkZPKGRldl9wcml2KS0+bnVtX3BpcGVzID09IDApCj4gIAkJcmV0dXJuIDA7Cj4gIAo+IC0JcmV0 ID0gaW50ZWxfZmJkZXZfaW5pdChkZXYpOwo+ICsJcmV0ID0gaW50ZWxfZmJkZXZfaW5pdChkZXZf cHJpdik7Cj4gIAlpZiAocmV0KQo+ICAJCWdvdG8gY2xlYW51cF9nZW07Cj4gIAo+IEBAIC0xMjYw LDcgKzEyNjAsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2RyaXZlcl9yZWdpc3RlcihzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAkgKiBpcnFzIGFyZSBmdWxseSBlbmFibGVkLiBX ZSBkbyBpdCBsYXN0IHNvIHRoYXQgdGhlIGFzeW5jIGNvbmZpZwo+ICAJICogY2Fubm90IHJ1biBi ZWZvcmUgdGhlIGNvbm5lY3RvcnMgYXJlIHJlZ2lzdGVyZWQuCj4gIAkgKi8KPiAtCWludGVsX2Zi ZGV2X2luaXRpYWxfY29uZmlnX2FzeW5jKGRldik7Cj4gKwlpbnRlbF9mYmRldl9pbml0aWFsX2Nv bmZpZ19hc3luYyhkZXZfcHJpdik7Cj4gIAo+ICAJLyoKPiAgCSAqIFdlIG5lZWQgdG8gY29vcmRp bmF0ZSB0aGUgaG90cGx1Z3Mgd2l0aCB0aGUgYXN5bmNocm9ub3VzIGZiZGV2Cj4gQEAgLTE1Mjcs NyArMTUyNyw3IEBAIHN0YXRpYyBpbnQgaTkxNV9kcml2ZXJfb3BlbihzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCj4gICAqLwo+ICBzdGF0aWMgdm9pZCBpOTE1 X2RyaXZlcl9sYXN0Y2xvc2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgewo+IC0JaW50ZWxf ZmJkZXZfcmVzdG9yZV9tb2RlKGRldik7Cj4gKwlpbnRlbF9mYmRldl9yZXN0b3JlX21vZGUodG9f aTkxNShkZXYpKTsKPiAgCXZnYV9zd2l0Y2hlcm9vX3Byb2Nlc3NfZGVsYXllZF9zd2l0Y2goKTsK PiAgfQo+ICAKPiBAQCAtMTYyMyw3ICsxNjIzLDcgQEAgc3RhdGljIGludCBpOTE1X2RybV9zdXNw ZW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAo+ICAJaW50ZWxfb3ByZWdpb25fdW5yZWdp c3RlcihkZXZfcHJpdik7Cj4gIAo+IC0JaW50ZWxfZmJkZXZfc2V0X3N1c3BlbmQoZGV2LCBGQklO Rk9fU1RBVEVfU1VTUEVOREVELCB0cnVlKTsKPiArCWludGVsX2ZiZGV2X3NldF9zdXNwZW5kKGRl dl9wcml2LCBGQklORk9fU1RBVEVfU1VTUEVOREVELCB0cnVlKTsKPiAgCj4gIAlkZXZfcHJpdi0+ c3VzcGVuZF9jb3VudCsrOwo+ICAKPiBAQCAtMTc4NCw3ICsxNzg0LDcgQEAgc3RhdGljIGludCBp OTE1X2RybV9yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCj4gIAlpbnRlbF9vcHJl Z2lvbl9yZWdpc3RlcihkZXZfcHJpdik7Cj4gIAo+IC0JaW50ZWxfZmJkZXZfc2V0X3N1c3BlbmQo ZGV2LCBGQklORk9fU1RBVEVfUlVOTklORywgZmFsc2UpOwo+ICsJaW50ZWxfZmJkZXZfc2V0X3N1 c3BlbmQoZGV2X3ByaXYsIEZCSU5GT19TVEFURV9SVU5OSU5HLCBmYWxzZSk7Cj4gIAo+ICAJaW50 ZWxfb3ByZWdpb25fbm90aWZ5X2FkYXB0ZXIoZGV2X3ByaXYsIFBDSV9EMCk7Cj4gIAo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggYmYxYzM4NzI4YTU5Li5kYWEyZmMwMDdkMDIgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC0xNzc5LDMyICsxNzc5LDM0IEBAIGJv b2wgaW50ZWxfZW5jb2Rlcl9ob3RwbHVnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ ICAKPiAgLyogbGVnYWN5IGZiZGV2IGVtdWxhdGlvbiBpbiBpbnRlbF9mYmRldi5jICovCj4gICNp ZmRlZiBDT05GSUdfRFJNX0ZCREVWX0VNVUxBVElPTgo+IC1leHRlcm4gaW50IGludGVsX2ZiZGV2 X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gLWV4dGVybiB2b2lkIGludGVsX2ZiZGV2 X2luaXRpYWxfY29uZmlnX2FzeW5jKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+IC1leHRlcm4g dm9pZCBpbnRlbF9mYmRldl91bnJlZ2lzdGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdik7Cj4gLWV4dGVybiB2b2lkIGludGVsX2ZiZGV2X2Zpbmkoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KTsKPiAtZXh0ZXJuIHZvaWQgaW50ZWxfZmJkZXZfc2V0X3N1c3BlbmQo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHN0YXRlLCBib29sIHN5bmNocm9ub3VzKTsKPiAt ZXh0ZXJuIHZvaWQgaW50ZWxfZmJkZXZfb3V0cHV0X3BvbGxfY2hhbmdlZChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KTsKPiAtZXh0ZXJuIHZvaWQgaW50ZWxfZmJkZXZfcmVzdG9yZV9tb2RlKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpOwo+ICtpbnQgaW50ZWxfZmJkZXZfaW5pdChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNSk7Cj4gK3ZvaWQgaW50ZWxfZmJkZXZfaW5pdGlhbF9jb25maWdfYXN5 bmMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwo+ICt2b2lkIGludGVsX2ZiZGV2X3Vu cmVnaXN0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwo+ICt2b2lkIGludGVsX2Zi ZGV2X2Zpbmkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwo+ICt2b2lkIGludGVsX2Zi ZGV2X3NldF9zdXNwZW5kKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAo+ICsJCQkgICAg IGludCBzdGF0ZSwgYm9vbCBzeW5jaHJvbm91cyk7Cj4gK3ZvaWQgaW50ZWxfZmJkZXZfcmVzdG9y ZV9tb2RlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKPiArdm9pZCBpbnRlbF9mYmRl dl9vdXRwdXRfcG9sbF9jaGFuZ2VkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICAjZWxzZQo+ IC1zdGF0aWMgaW5saW5lIGludCBpbnRlbF9mYmRldl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCj4gK3N0YXRpYyBpbmxpbmUgaW50IGludGVsX2ZiZGV2X2luaXQoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUpCj4gIHsKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW5s aW5lIHZvaWQgaW50ZWxfZmJkZXZfaW5pdGlhbF9jb25maWdfYXN5bmMoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKPiArc3RhdGljIGlubGluZSB2b2lkIGludGVsX2ZiZGV2X2luaXRpYWxfY29uZmln X2FzeW5jKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ICB7Cj4gIH0KPiAgCj4gLXN0 YXRpYyBpbmxpbmUgdm9pZCBpbnRlbF9mYmRldl91bnJlZ2lzdGVyKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKPiArc3RhdGljIGlubGluZSB2b2lkIGludGVsX2ZiZGV2X3VucmVn aXN0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4gIHsKPiAgfQo+ICAKPiAtc3Rh dGljIGlubGluZSB2b2lkIGludGVsX2ZiZGV2X2Zpbmkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQo+ICtzdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfZmJkZXZfZmluaShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiAgewo+ICB9Cj4gIAo+IC1zdGF0aWMgaW5saW5lIHZv aWQgaW50ZWxfZmJkZXZfc2V0X3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHN0 YXRlLCBib29sIHN5bmNocm9ub3VzKQo+ICtzdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfZmJkZXZf c2V0X3N1c3BlbmQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4gKwkJCQkJICAgaW50 IHN0YXRlLCBib29sIHN5bmNocm9ub3VzKQo+ICB7Cj4gIH0KPiAgCj4gQEAgLTE4MTIsNyArMTgx NCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBpbnRlbF9mYmRldl9vdXRwdXRfcG9sbF9jaGFuZ2Vk KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIHsKPiAgfQo+ICAKPiAtc3RhdGljIGlubGluZSB2 b2lkIGludGVsX2ZiZGV2X3Jlc3RvcmVfbW9kZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICtz dGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfZmJkZXZfcmVzdG9yZV9tb2RlKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1KQo+ICB7Cj4gIH0KPiAgI2VuZGlmCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9mYmRldi5jCj4gaW5kZXggZjk5MzMyOTcyYjdhLi44NGViZDgxMDIyMTUgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMKPiBAQCAtNTQsMTEgKzU0LDE0IEBAIHN0YXRpYyB2b2lk IGludGVsX2ZiZGV2X2ludmFsaWRhdGUoc3RydWN0IGludGVsX2ZiZGV2ICppZmJkZXYpCj4gIAlp bnRlbF9mYl9vYmpfaW52YWxpZGF0ZShvYmosIG9yaWdpbik7Cj4gIH0KPiAgCj4gK3N0YXRpYyBz dHJ1Y3QgaW50ZWxfZmJkZXYgKmluZm9fdG9fZmJkZXYoc3RydWN0IGZiX2luZm8gKmluZm8pCj4g K3sKPiArCXJldHVybiBjb250YWluZXJfb2YoaW5mby0+cGFyLCBzdHJ1Y3QgaW50ZWxfZmJkZXYs IGhlbHBlcik7Cj4gK30KPiArCgpTbywgY291bGQgd2Ugc3BsaXQgdGhpcyBpbmZvX3RvX2ZiZGV2 IGhlbHBlciBpbiBhIHNlcGFyYXRlZCBwYXRjaD8KCj4gIHN0YXRpYyBpbnQgaW50ZWxfZmJkZXZf c2V0X3BhcihzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKPiAgewo+IC0Jc3RydWN0IGRybV9mYl9oZWxw ZXIgKmZiX2hlbHBlciA9IGluZm8tPnBhcjsKPiAtCXN0cnVjdCBpbnRlbF9mYmRldiAqaWZiZGV2 ID0KPiAtCQljb250YWluZXJfb2YoZmJfaGVscGVyLCBzdHJ1Y3QgaW50ZWxfZmJkZXYsIGhlbHBl cik7Cj4gKwlzdHJ1Y3QgaW50ZWxfZmJkZXYgKmlmYmRldiA9IGluZm9fdG9fZmJkZXYoaW5mbyk7 Cj4gIAlpbnQgcmV0Owo+ICAKPiAgCXJldCA9IGRybV9mYl9oZWxwZXJfc2V0X3BhcihpbmZvKTsK PiBAQCAtNzAsOSArNzMsNyBAQCBzdGF0aWMgaW50IGludGVsX2ZiZGV2X3NldF9wYXIoc3RydWN0 IGZiX2luZm8gKmluZm8pCj4gIAo+ICBzdGF0aWMgaW50IGludGVsX2ZiZGV2X2JsYW5rKGludCBi bGFuaywgc3RydWN0IGZiX2luZm8gKmluZm8pCj4gIHsKPiAtCXN0cnVjdCBkcm1fZmJfaGVscGVy ICpmYl9oZWxwZXIgPSBpbmZvLT5wYXI7Cj4gLQlzdHJ1Y3QgaW50ZWxfZmJkZXYgKmlmYmRldiA9 Cj4gLQkJY29udGFpbmVyX29mKGZiX2hlbHBlciwgc3RydWN0IGludGVsX2ZiZGV2LCBoZWxwZXIp Owo+ICsJc3RydWN0IGludGVsX2ZiZGV2ICppZmJkZXYgPSBpbmZvX3RvX2ZiZGV2KGluZm8pOwo+ ICAJaW50IHJldDsKPiAgCj4gIAlyZXQgPSBkcm1fZmJfaGVscGVyX2JsYW5rKGJsYW5rLCBpbmZv KTsKPiBAQCAtODUsOSArODYsNyBAQCBzdGF0aWMgaW50IGludGVsX2ZiZGV2X2JsYW5rKGludCBi bGFuaywgc3RydWN0IGZiX2luZm8gKmluZm8pCj4gIHN0YXRpYyBpbnQgaW50ZWxfZmJkZXZfcGFu X2Rpc3BsYXkoc3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvICp2YXIsCj4gIAkJCQkgICBzdHJ1Y3Qg ZmJfaW5mbyAqaW5mbykKPiAgewo+IC0Jc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciA9 IGluZm8tPnBhcjsKPiAtCXN0cnVjdCBpbnRlbF9mYmRldiAqaWZiZGV2ID0KPiAtCQljb250YWlu ZXJfb2YoZmJfaGVscGVyLCBzdHJ1Y3QgaW50ZWxfZmJkZXYsIGhlbHBlcik7Cj4gKwlzdHJ1Y3Qg aW50ZWxfZmJkZXYgKmlmYmRldiA9IGluZm9fdG9fZmJkZXYoaW5mbyk7Cj4gIAlpbnQgcmV0Owo+ ICAKPiAgCXJldCA9IGRybV9mYl9oZWxwZXJfcGFuX2Rpc3BsYXkodmFyLCBpbmZvKTsKPiBAQCAt MTEzLDExICsxMTIsMTAgQEAgc3RhdGljIGludCBpbnRlbGZiX2FsbG9jKHN0cnVjdCBkcm1fZmJf aGVscGVyICpoZWxwZXIsCj4gIHsKPiAgCXN0cnVjdCBpbnRlbF9mYmRldiAqaWZiZGV2ID0KPiAg CQljb250YWluZXJfb2YoaGVscGVyLCBzdHJ1Y3QgaW50ZWxfZmJkZXYsIGhlbHBlcik7Cj4gLQlz dHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYjsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBo ZWxwZXItPmRldjsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZGV2KTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShoZWxw ZXItPmRldik7Cj4gIAlzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiBtb2RlX2NtZCA9IHt9Owo+ICAJ c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKPiArCXN0cnVjdCBkcm1fZnJhbWVidWZm ZXIgKmZiOwo+ICAJaW50IHNpemUsIHJldDsKPiAgCj4gIAkvKiB3ZSBkb24ndCBkbyBwYWNrZWQg MjRicHAgKi8KPiBAQCAtMTM5LDEwICsxMzcsMTAgQEAgc3RhdGljIGludCBpbnRlbGZiX2FsbG9j KHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIsCj4gIAkgKiBpbXBvcnRhbnQgYW5kIHdlIHNo b3VsZCBwcm9iYWJseSB1c2UgdGhhdCBzcGFjZSB3aXRoIEZCQyBvciBvdGhlcgo+ICAJICogZmVh dHVyZXMuICovCj4gIAlvYmogPSBOVUxMOwo+IC0JaWYgKHNpemUgKiAyIDwgZGV2X3ByaXYtPnN0 b2xlbl91c2FibGVfc2l6ZSkKPiAtCQlvYmogPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xl bihkZXZfcHJpdiwgc2l6ZSk7Cj4gKwlpZiAoc2l6ZSAqIDIgPCBpOTE1LT5zdG9sZW5fdXNhYmxl X3NpemUpCj4gKwkJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oaTkxNSwgc2l6 ZSk7Cj4gIAlpZiAob2JqID09IE5VTEwpCj4gLQkJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0 ZShkZXZfcHJpdiwgc2l6ZSk7Cj4gKwkJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZShpOTE1 LCBzaXplKTsKPiAgCWlmIChJU19FUlIob2JqKSkgewo+ICAJCURSTV9FUlJPUigiZmFpbGVkIHRv IGFsbG9jYXRlIGZyYW1lYnVmZmVyXG4iKTsKPiAgCQlyZXQgPSBQVFJfRVJSKG9iaik7Cj4gQEAg LTE3MCwxNiArMTY4LDE0IEBAIHN0YXRpYyBpbnQgaW50ZWxmYl9jcmVhdGUoc3RydWN0IGRybV9m Yl9oZWxwZXIgKmhlbHBlciwKPiAgewo+ICAJc3RydWN0IGludGVsX2ZiZGV2ICppZmJkZXYgPQo+ ICAJCWNvbnRhaW5lcl9vZihoZWxwZXIsIHN0cnVjdCBpbnRlbF9mYmRldiwgaGVscGVyKTsKPiAr CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShoZWxwZXItPmRldik7Cj4g IAlzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIgKmludGVsX2ZiID0gaWZiZGV2LT5mYjsKPiAtCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBoZWxwZXItPmRldjsKPiAtCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAtCXN0cnVjdCBwY2lfZGV2ICpwZGV2 ID0gZGV2X3ByaXYtPmRybS5wZGV2Owo+IC0Jc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9ICZkZXZf cHJpdi0+Z2d0dDsKPiArCXN0cnVjdCBpOTE1X2dndHQgKmdndHQgPSAmaTkxNS0+Z2d0dDsKPiAg CWNvbnN0IHN0cnVjdCBpOTE1X2dndHRfdmlldyB2aWV3ID0gewo+ICAJCS50eXBlID0gSTkxNV9H R1RUX1ZJRVdfTk9STUFMLAo+ICAJfTsKPiAtCXN0cnVjdCBmYl9pbmZvICppbmZvOwo+ICAJc3Ry dWN0IGRybV9mcmFtZWJ1ZmZlciAqZmI7Cj4gKwlzdHJ1Y3QgZmJfaW5mbyAqaW5mbzsKPiAgCXN0 cnVjdCBpOTE1X3ZtYSAqdm1hOwo+ICAJdW5zaWduZWQgbG9uZyBmbGFncyA9IDA7Cj4gIAlib29s IHByZWFsbG9jID0gZmFsc2U7Cj4gQEAgLTIwOSw4ICsyMDUsOCBAQCBzdGF0aWMgaW50IGludGVs ZmJfY3JlYXRlKHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIsCj4gIAkJc2l6ZXMtPmZiX2hl aWdodCA9IGludGVsX2ZiLT5iYXNlLmhlaWdodDsKPiAgCX0KPiAgCj4gLQltdXRleF9sb2NrKCZk ZXYtPnN0cnVjdF9tdXRleCk7Cj4gLQlpbnRlbF9ydW50aW1lX3BtX2dldChkZXZfcHJpdik7Cj4g KwltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKPiArCWludGVsX3J1bnRpbWVf cG1fZ2V0KGk5MTUpOwo+ICAKPiAgCS8qIFBpbiB0aGUgR0dUVCB2bWEgZm9yIG91ciBhY2Nlc3Mg dmlhIGluZm8tPnNjcmVlbl9iYXNlLgo+ICAJICogVGhpcyBhbHNvIHZhbGlkYXRlcyB0aGF0IGFu eSBleGlzdGluZyBmYiBpbmhlcml0ZWQgZnJvbSB0aGUKPiBAQCAtMjQyLDEwICsyMzgsMTEgQEAg c3RhdGljIGludCBpbnRlbGZiX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyLAo+ ICAJaW5mby0+ZmJvcHMgPSAmaW50ZWxmYl9vcHM7Cj4gIAo+ICAJLyogc2V0dXAgYXBlcnR1cmUg YmFzZS9zaXplIGZvciB2ZXNhZmIgdGFrZW92ZXIgKi8KPiAtCWluZm8tPmFwZXJ0dXJlcy0+cmFu Z2VzWzBdLmJhc2UgPSBkZXYtPm1vZGVfY29uZmlnLmZiX2Jhc2U7Cj4gKwlpbmZvLT5hcGVydHVy ZXMtPnJhbmdlc1swXS5iYXNlID0gaTkxNS0+ZHJtLm1vZGVfY29uZmlnLmZiX2Jhc2U7Cj4gIAlp bmZvLT5hcGVydHVyZXMtPnJhbmdlc1swXS5zaXplID0gZ2d0dC0+bWFwcGFibGVfZW5kOwo+ICAK PiAtCWluZm8tPmZpeC5zbWVtX3N0YXJ0ID0gZGV2LT5tb2RlX2NvbmZpZy5mYl9iYXNlICsgaTkx NV9nZ3R0X29mZnNldCh2bWEpOwo+ICsJaW5mby0+Zml4LnNtZW1fc3RhcnQgPQo+ICsJCWk5MTUt PmRybS5tb2RlX2NvbmZpZy5mYl9iYXNlICsgaTkxNV9nZ3R0X29mZnNldCh2bWEpOwo+ICAJaW5m by0+Zml4LnNtZW1fbGVuID0gdm1hLT5ub2RlLnNpemU7Cj4gIAo+ICAJdmFkZHIgPSBpOTE1X3Zt YV9waW5faW9tYXAodm1hKTsKPiBAQCAtMjc3LDE2ICsyNzQsMTYgQEAgc3RhdGljIGludCBpbnRl bGZiX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyLAo+ICAJaWZiZGV2LT52bWEg PSB2bWE7Cj4gIAlpZmJkZXYtPnZtYV9mbGFncyA9IGZsYWdzOwo+ICAKPiAtCWludGVsX3J1bnRp bWVfcG1fcHV0KGRldl9wcml2KTsKPiAtCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgp Owo+IC0JdmdhX3N3aXRjaGVyb29fY2xpZW50X2ZiX3NldChwZGV2LCBpbmZvKTsKPiArCWludGVs X3J1bnRpbWVfcG1fcHV0KGk5MTUpOwo+ICsJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0 X211dGV4KTsKPiArCXZnYV9zd2l0Y2hlcm9vX2NsaWVudF9mYl9zZXQoaTkxNS0+ZHJtLnBkZXYs IGluZm8pOwo+ICAJcmV0dXJuIDA7Cj4gIAo+ICBvdXRfdW5waW46Cj4gIAlpbnRlbF91bnBpbl9m Yl92bWEodm1hLCBmbGFncyk7Cj4gIG91dF91bmxvY2s6Cj4gLQlpbnRlbF9ydW50aW1lX3BtX3B1 dChkZXZfcHJpdik7Cj4gLQltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKPiArCWlu dGVsX3J1bnRpbWVfcG1fcHV0KGk5MTUpOwo+ICsJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3Ry dWN0X211dGV4KTsKPiAgCXJldHVybiByZXQ7Cj4gIH0KPiAgCj4gQEAgLTMzNSw3ICszMzIsNyBA QCBzdGF0aWMgYm9vbCBpbnRlbF9mYl9pbml0aWFsX2NvbmZpZyhzdHJ1Y3QgZHJtX2ZiX2hlbHBl ciAqZmJfaGVscGVyLAo+ICAJCQkJICAgIHN0cnVjdCBkcm1fZmJfb2Zmc2V0ICpvZmZzZXRzLAo+ ICAJCQkJICAgIGJvb2wgKmVuYWJsZWQsIGludCB3aWR0aCwgaW50IGhlaWdodCkKPiAgewo+IC0J c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShmYl9oZWxwZXItPmRl dik7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUoZmJfaGVscGVy LT5kZXYpOwo+ICAJdW5zaWduZWQgbG9uZyBjb25uX2NvbmZpZ3VyZWQsIGNvbm5fc2VxLCBtYXNr Owo+ICAJdW5zaWduZWQgaW50IGNvdW50ID0gbWluKGZiX2hlbHBlci0+Y29ubmVjdG9yX2NvdW50 LCBCSVRTX1BFUl9MT05HKTsKPiAgCWludCBpLCBqOwo+IEBAIC00ODQsNyArNDgxLDcgQEAgc3Rh dGljIGJvb2wgaW50ZWxfZmJfaW5pdGlhbF9jb25maWcoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZi X2hlbHBlciwKPiAgCSAqIGZiZGV2IGhlbHBlciBsaWJyYXJ5Lgo+ICAJICovCj4gIAlpZiAobnVt X2Nvbm5lY3RvcnNfZW5hYmxlZCAhPSBudW1fY29ubmVjdG9yc19kZXRlY3RlZCAmJgo+IC0JICAg IG51bV9jb25uZWN0b3JzX2VuYWJsZWQgPCBJTlRFTF9JTkZPKGRldl9wcml2KS0+bnVtX3BpcGVz KSB7Cj4gKwkgICAgbnVtX2Nvbm5lY3RvcnNfZW5hYmxlZCA8IElOVEVMX0lORk8oaTkxNSktPm51 bV9waXBlcykgewo+ICAJCURSTV9ERUJVR19LTVMoImZhbGxiYWNrOiBOb3QgYWxsIG91dHB1dHMg ZW5hYmxlZFxuIik7Cj4gIAkJRFJNX0RFQlVHX0tNUygiRW5hYmxlZDogJWksIGRldGVjdGVkOiAl aVxuIiwgbnVtX2Nvbm5lY3RvcnNfZW5hYmxlZCwKPiAgCQkJICAgICAgbnVtX2Nvbm5lY3RvcnNf ZGV0ZWN0ZWQpOwo+IEBAIC01NDAsNyArNTM3LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZmJkZXZf ZGVzdHJveShzdHJ1Y3QgaW50ZWxfZmJkZXYgKmlmYmRldikKPiAgICogTm90ZSB3ZSBvbmx5IHN1 cHBvcnQgYSBzaW5nbGUgZmIgc2hhcmVkIGFjcm9zcyBwaXBlcyBmb3IgYm9vdCAobW9zdGx5IGZv cgo+ICAgKiBmYmNvbiksIHNvIHdlIGp1c3QgZmluZCB0aGUgYmlnZ2VzdCBhbmQgdXNlIHRoYXQu Cj4gICAqLwo+IC1zdGF0aWMgYm9vbCBpbnRlbF9mYmRldl9pbml0X2Jpb3Moc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKPiArc3RhdGljIGJvb2wgaW50ZWxfZmJkZXZfaW5pdF9iaW9zKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICppOTE1LAo+ICAJCQkJIHN0cnVjdCBpbnRlbF9mYmRldiAqaWZiZGV2 KQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIgKmZiID0gTlVMTDsKPiBAQCAtNTQ5 LDcgKzU0Niw3IEBAIHN0YXRpYyBib29sIGludGVsX2ZiZGV2X2luaXRfYmlvcyhzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAo+ICAJdW5zaWduZWQgaW50IG1heF9zaXplID0gMDsKPiAgCj4gIAkvKiBG aW5kIHRoZSBsYXJnZXN0IGZiICovCj4gLQlmb3JfZWFjaF9jcnRjKGRldiwgY3J0Yykgewo+ICsJ Zm9yX2VhY2hfY3J0YygmaTkxNS0+ZHJtLCBjcnRjKSB7Cj4gIAkJc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKm9iaiA9Cj4gIAkJCWludGVsX2ZiX29iaihjcnRjLT5wcmltYXJ5LT5zdGF0ZS0+ ZmIpOwo+ICAJCWludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+IEBAIC01NzQsNyAr NTcxLDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfZmJkZXZfaW5pdF9iaW9zKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCj4gIAl9Cj4gIAo+ICAJLyogTm93IG1ha2Ugc3VyZSBhbGwgdGhlIHBpcGVzIHdp bGwgZml0IGludG8gaXQgKi8KPiAtCWZvcl9lYWNoX2NydGMoZGV2LCBjcnRjKSB7Cj4gKwlmb3Jf ZWFjaF9jcnRjKCZpOTE1LT5kcm0sIGNydGMpIHsKPiAgCQl1bnNpZ25lZCBpbnQgY3VyX3NpemU7 Cj4gIAo+ICAJCWludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+IEBAIC02MzcsNyAr NjM0LDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfZmJkZXZfaW5pdF9iaW9zKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCj4gIAlkcm1fZnJhbWVidWZmZXJfZ2V0KCZpZmJkZXYtPmZiLT5iYXNlKTsKPiAg Cj4gIAkvKiBGaW5hbCBwYXNzIHRvIGNoZWNrIGlmIGFueSBhY3RpdmUgcGlwZXMgZG9uJ3QgaGF2 ZSBmYnMgKi8KPiAtCWZvcl9lYWNoX2NydGMoZGV2LCBjcnRjKSB7Cj4gKwlmb3JfZWFjaF9jcnRj KCZpOTE1LT5kcm0sIGNydGMpIHsKPiAgCQlpbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj KTsKPiAgCj4gIAkJaWYgKCFjcnRjLT5zdGF0ZS0+YWN0aXZlKQo+IEBAIC02NTksMzkgKzY1Niwz OSBAQCBzdGF0aWMgYm9vbCBpbnRlbF9mYmRldl9pbml0X2Jpb3Moc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKPiAgCj4gIHN0YXRpYyB2b2lkIGludGVsX2ZiZGV2X3N1c3BlbmRfd29ya2VyKHN0cnVj dCB3b3JrX3N0cnVjdCAqd29yaykKPiAgewo+IC0JaW50ZWxfZmJkZXZfc2V0X3N1c3BlbmQoJmNv bnRhaW5lcl9vZih3b3JrLAo+IC0JCQkJCSAgICAgIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlLAo+ IC0JCQkJCSAgICAgIGZiZGV2X3N1c3BlbmRfd29yayktPmRybSwKPiArCWludGVsX2ZiZGV2X3Nl dF9zdXNwZW5kKGNvbnRhaW5lcl9vZih3b3JrLAo+ICsJCQkJCSAgICAgc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUsCj4gKwkJCQkJICAgICBmYmRldl9zdXNwZW5kX3dvcmspLAo+ICAJCQkJRkJJTkZP X1NUQVRFX1JVTk5JTkcsCj4gIAkJCQl0cnVlKTsKPiAgfQo+ICAKPiAtaW50IGludGVsX2ZiZGV2 X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAraW50IGludGVsX2ZiZGV2X2luaXQoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9mYmRldiAqaWZi ZGV2Owo+ICAJaW50IHJldDsKPiAgCj4gLQlpZiAoV0FSTl9PTihJTlRFTF9JTkZPKGRldl9wcml2 KS0+bnVtX3BpcGVzID09IDApKQo+ICsJaWYgKFdBUk5fT04oSU5URUxfSU5GTyhpOTE1KS0+bnVt X3BpcGVzID09IDApKQoKQWxzbyB0aGlzIHBhdGNoIGhpZ2hsaWdodHMgdGhlIGJyYXZlIG5ldyB3 b3JsZCBvZiBtaXhlZCBkZXZfcHJpdiBhbmQgaTkxNQp0aGF0IHdlIGxpdmUuLi4uCgpXaHkgbm90 IHRvIGp1c3QgdXNlIGRldl9wcml2IGhlcmUgYW5kIHN0YXJ0IG1peGluZyB0aGlzIGk5MTUgY2Fz ZSBoZXJlPwpvbiB0aGUgc2FtZSBmaWxlIGFuZCBvbiBzYW1lIHBhdGNoPwoKSSBiZWxpZXZlIG9y IHdlIHNob3VsZCBjb252ZXJ0IGF0IG9uY2UgYWxsIGRldl9wcml2IHRvIGk5MTUgb3IgbW92ZQph bGwgYmFjayB0byBkZXZfcHJpdi4gQnV0IHRoZSBtaXhlZCB3b3JsZCBjb25mdXNlcyBtZSBhIGxv dC4uLgoKPiAgCQlyZXR1cm4gLUVOT0RFVjsKPiAgCj4gIAlpZmJkZXYgPSBremFsbG9jKHNpemVv ZihzdHJ1Y3QgaW50ZWxfZmJkZXYpLCBHRlBfS0VSTkVMKTsKPiAgCWlmIChpZmJkZXYgPT0gTlVM TCkKPiAgCQlyZXR1cm4gLUVOT01FTTsKPiAgCj4gLQlkcm1fZmJfaGVscGVyX3ByZXBhcmUoZGV2 LCAmaWZiZGV2LT5oZWxwZXIsICZpbnRlbF9mYl9oZWxwZXJfZnVuY3MpOwo+ICsJZHJtX2ZiX2hl bHBlcl9wcmVwYXJlKCZpOTE1LT5kcm0sCj4gKwkJCSAgICAgICZpZmJkZXYtPmhlbHBlciwgJmlu dGVsX2ZiX2hlbHBlcl9mdW5jcyk7Cj4gIAo+IC0JaWYgKCFpbnRlbF9mYmRldl9pbml0X2Jpb3Mo ZGV2LCBpZmJkZXYpKQo+ICsJaWYgKCFpbnRlbF9mYmRldl9pbml0X2Jpb3MoaTkxNSwgaWZiZGV2 KSkKPiAgCQlpZmJkZXYtPnByZWZlcnJlZF9icHAgPSAzMjsKPiAgCj4gLQlyZXQgPSBkcm1fZmJf aGVscGVyX2luaXQoZGV2LCAmaWZiZGV2LT5oZWxwZXIsIDQpOwo+ICsJcmV0ID0gZHJtX2ZiX2hl bHBlcl9pbml0KCZpOTE1LT5kcm0sICZpZmJkZXYtPmhlbHBlciwgNCk7Cj4gIAlpZiAocmV0KSB7 Cj4gIAkJa2ZyZWUoaWZiZGV2KTsKPiAgCQlyZXR1cm4gcmV0Owo+ICAJfQo+ICAKPiAtCWRldl9w cml2LT5mYmRldiA9IGlmYmRldjsKPiAtCUlOSVRfV09SSygmZGV2X3ByaXYtPmZiZGV2X3N1c3Bl bmRfd29yaywgaW50ZWxfZmJkZXZfc3VzcGVuZF93b3JrZXIpOwo+ICsJaTkxNS0+ZmJkZXYgPSBp ZmJkZXY7Cj4gKwlJTklUX1dPUksoJmk5MTUtPmZiZGV2X3N1c3BlbmRfd29yaywgaW50ZWxfZmJk ZXZfc3VzcGVuZF93b3JrZXIpOwo+ICAKPiAgCWRybV9mYl9oZWxwZXJfc2luZ2xlX2FkZF9hbGxf Y29ubmVjdG9ycygmaWZiZGV2LT5oZWxwZXIpOwo+ICAKPiBAQCAtNzA4LDkgKzcwNSw5IEBAIHN0 YXRpYyB2b2lkIGludGVsX2ZiZGV2X2luaXRpYWxfY29uZmlnKHZvaWQgKmRhdGEsIGFzeW5jX2Nv b2tpZV90IGNvb2tpZSkKPiAgCQlpbnRlbF9mYmRldl91bnJlZ2lzdGVyKHRvX2k5MTUoaWZiZGV2 LT5oZWxwZXIuZGV2KSk7Cj4gIH0KPiAgCj4gLXZvaWQgaW50ZWxfZmJkZXZfaW5pdGlhbF9jb25m aWdfYXN5bmMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiArdm9pZCBpbnRlbF9mYmRldl9pbml0 aWFsX2NvbmZpZ19hc3luYyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiAgewo+IC0J c3RydWN0IGludGVsX2ZiZGV2ICppZmJkZXYgPSB0b19pOTE1KGRldiktPmZiZGV2Owo+ICsJc3Ry dWN0IGludGVsX2ZiZGV2ICppZmJkZXYgPSBpOTE1LT5mYmRldjsKPiAgCj4gIAlpZiAoIWlmYmRl dikKPiAgCQlyZXR1cm47Cj4gQEAgLTcyOCwyMyArNzI1LDIzIEBAIHN0YXRpYyB2b2lkIGludGVs X2ZiZGV2X3N5bmMoc3RydWN0IGludGVsX2ZiZGV2ICppZmJkZXYpCj4gIAlpZmJkZXYtPmNvb2tp ZSA9IDA7Cj4gIH0KPiAgCj4gLXZvaWQgaW50ZWxfZmJkZXZfdW5yZWdpc3RlcihzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gK3ZvaWQgaW50ZWxfZmJkZXZfdW5yZWdpc3Rlcihz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiAgewo+IC0Jc3RydWN0IGludGVsX2ZiZGV2 ICppZmJkZXYgPSBkZXZfcHJpdi0+ZmJkZXY7Cj4gKwlzdHJ1Y3QgaW50ZWxfZmJkZXYgKmlmYmRl diA9IGk5MTUtPmZiZGV2Owo+ICAKPiAgCWlmICghaWZiZGV2KQo+ICAJCXJldHVybjsKPiAgCj4g LQljYW5jZWxfd29ya19zeW5jKCZkZXZfcHJpdi0+ZmJkZXZfc3VzcGVuZF93b3JrKTsKPiArCWNh bmNlbF93b3JrX3N5bmMoJmk5MTUtPmZiZGV2X3N1c3BlbmRfd29yayk7Cj4gIAlpZiAoIWN1cnJl bnRfaXNfYXN5bmMoKSkKPiAgCQlpbnRlbF9mYmRldl9zeW5jKGlmYmRldik7Cj4gIAo+ICAJZHJt X2ZiX2hlbHBlcl91bnJlZ2lzdGVyX2ZiaSgmaWZiZGV2LT5oZWxwZXIpOwo+ICB9Cj4gIAo+IC12 b2lkIGludGVsX2ZiZGV2X2Zpbmkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ ICt2b2lkIGludGVsX2ZiZGV2X2Zpbmkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4g IHsKPiAtCXN0cnVjdCBpbnRlbF9mYmRldiAqaWZiZGV2ID0gZmV0Y2hfYW5kX3plcm8oJmRldl9w cml2LT5mYmRldik7Cj4gKwlzdHJ1Y3QgaW50ZWxfZmJkZXYgKmlmYmRldiA9IGZldGNoX2FuZF96 ZXJvKCZpOTE1LT5mYmRldik7Cj4gIAo+ICAJaWYgKCFpZmJkZXYpCj4gIAkJcmV0dXJuOwo+IEBA IC03NTIsMTAgKzc0OSwxMCBAQCB2b2lkIGludGVsX2ZiZGV2X2Zpbmkoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJaW50ZWxfZmJkZXZfZGVzdHJveShpZmJkZXYpOwo+ICB9 Cj4gIAo+IC12b2lkIGludGVsX2ZiZGV2X3NldF9zdXNwZW5kKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIGludCBzdGF0ZSwgYm9vbCBzeW5jaHJvbm91cykKPiArdm9pZCBpbnRlbF9mYmRldl9zZXRf c3VzcGVuZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKPiArCQkJICAgICBpbnQgc3Rh dGUsIGJvb2wgc3luY2hyb25vdXMpCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9mYmRldiAqaWZiZGV2ID0g ZGV2X3ByaXYtPmZiZGV2Owo+ICsJc3RydWN0IGludGVsX2ZiZGV2ICppZmJkZXYgPSBpOTE1LT5m YmRldjsKPiAgCXN0cnVjdCBmYl9pbmZvICppbmZvOwo+ICAKPiAgCWlmICghaWZiZGV2IHx8ICFp ZmJkZXYtPnZtYSkKPiBAQCAtNzcyLDcgKzc2OSw3IEBAIHZvaWQgaW50ZWxfZmJkZXZfc2V0X3N1 c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHN0YXRlLCBib29sIHN5bmNocm9ub3Vz Cj4gIAkJICogb3Vyc2VsdmVzLCBzbyBvbmx5IGZsdXNoIG91dHN0YW5kaW5nIHdvcmsgdXBvbiBz dXNwZW5kIQo+ICAJCSAqLwo+ICAJCWlmIChzdGF0ZSAhPSBGQklORk9fU1RBVEVfUlVOTklORykK PiAtCQkJZmx1c2hfd29yaygmZGV2X3ByaXYtPmZiZGV2X3N1c3BlbmRfd29yayk7Cj4gKwkJCWZs dXNoX3dvcmsoJmk5MTUtPmZiZGV2X3N1c3BlbmRfd29yayk7Cj4gIAkJY29uc29sZV9sb2NrKCk7 Cj4gIAl9IGVsc2Ugewo+ICAJCS8qCj4gQEAgLTc4NSw3ICs3ODIsNyBAQCB2b2lkIGludGVsX2Zi ZGV2X3NldF9zdXNwZW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBzdGF0ZSwgYm9vbCBz eW5jaHJvbm91cwo+ICAJCQkvKiBEb24ndCBibG9jayBvdXIgb3duIHdvcmtxdWV1ZSBhcyB0aGlz IGNhbgo+ICAJCQkgKiBiZSBydW4gaW4gcGFyYWxsZWwgd2l0aCBvdGhlciBpOTE1LmtvIHRhc2tz Lgo+ICAJCQkgKi8KPiAtCQkJc2NoZWR1bGVfd29yaygmZGV2X3ByaXYtPmZiZGV2X3N1c3BlbmRf d29yayk7Cj4gKwkJCXNjaGVkdWxlX3dvcmsoJmk5MTUtPmZiZGV2X3N1c3BlbmRfd29yayk7Cj4g IAkJCXJldHVybjsKPiAgCQl9Cj4gIAl9Cj4gQEAgLTgxNCw5ICs4MTEsOSBAQCB2b2lkIGludGVs X2ZiZGV2X291dHB1dF9wb2xsX2NoYW5nZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCQlk cm1fZmJfaGVscGVyX2hvdHBsdWdfZXZlbnQoJmlmYmRldi0+aGVscGVyKTsKPiAgfQo+ICAKPiAt dm9pZCBpbnRlbF9mYmRldl9yZXN0b3JlX21vZGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAr dm9pZCBpbnRlbF9mYmRldl9yZXN0b3JlX21vZGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUpCj4gIHsKPiAtCXN0cnVjdCBpbnRlbF9mYmRldiAqaWZiZGV2ID0gdG9faTkxNShkZXYpLT5m YmRldjsKPiArCXN0cnVjdCBpbnRlbF9mYmRldiAqaWZiZGV2ID0gaTkxNS0+ZmJkZXY7Cj4gIAo+ ICAJaWYgKCFpZmJkZXYpCj4gIAkJcmV0dXJuOwo+IC0tIAo+IDIuMTkuMAo+IAo+IF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeApfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK