From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm/i915: Remove all ->config dereferences from intel_hdmi Date: Tue, 22 Nov 2016 15:20:33 +0200 Message-ID: <20161122132033.GA31595@intel.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3FB7F6E301 for ; Tue, 22 Nov 2016 13:20:37 +0000 (UTC) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst Cc: Intel Graphics Development List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBOb3YgMjIsIDIwMTYgYXQgMDE6Mzg6NTFQTSArMDEwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gV2UgY2FuIG5vdyBvYnRhaW4gdGhlIHJlbGV2YW50IGNydGNfc3RhdGUvY29u bl9zdGF0ZSBmcm9tIHRoZQo+IHJlbGV2YW50IGNhbGxiYWNrcywgd2hpY2ggbWVhbnMgYWxsIHRo ZSAtPmNvbmZpZyBhY2Nlc3Nlcwo+IGNhbiBiZSByZW1vdmVkIGFuZCB0aGUgY29kZSBjbGVhbmVk IHVwLgo+IAo+IEFsc28gZml4ZXMgdGhlIGZvbGxvd2luZyBXQVJOX09OLCBiZWNhdXNlIHdlIGRv bid0IGhhdmUgdG8gaXRlcmF0ZQo+IGF0b21pYyBjb25uZWN0b3JzIGFueSBtb3JlOgo+IAo+IFsg MTU2Mi45ODE3NjhdIC0tLS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0tLS0tLS0tLS0tLQo+IFsgMTU2 Mi45ODE4MjBdIFdBUk5JTkc6IENQVTogMSBQSUQ6IDg2NjcgYXQgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfaGRtaS5jOjU3MyBpbnRlbF9oZG1pX3NldF9nY3BfaW5mb2ZyYW1lKzB4MjI1LzB4 MjMwIFtpOTE1XQo+IFsgMTU2Mi45ODE4MjVdIFdBUk5fT04oIWRybV9tb2Rlc2V0X2lzX2xvY2tl ZCgmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4KSkKPiBbIDE1NjIuOTgxODI3XSBN b2R1bGVzIGxpbmtlZCBpbjoKPiBbIDE1NjIuOTgxODMwXSAgdmdlbSBjb3JldGVtcCBjcmN0MTBk aWZfcGNsbXVsIGNyYzMyX3BjbG11bCBzbmRfaGRhX2NvZGVjX2hkbWkgZ2hhc2hfY2xtdWxuaV9p bnRlbCBzbmRfaGRhX2NvZGVjX3JlYWx0ZWsgc25kX2hkYV9jb2RlY19nZW5lcmljIHNuZF9oZGFf aW50ZWwgc25kX2hkYV9jb2RlYyBzbmRfaHdkZXAgc25kX2hkYV9jb3JlIHNuZF9wY20gbHBjX2lj aCBpMmNfZGVzaWdud2FyZV9wbGF0Zm9ybSBpMmNfZGVzaWdud2FyZV9jb3JlIGk5MTUgcjgxNjkg bWlpIHNkaGNpX2FjcGkgaTJjX2hpZCBzZGhjaSBtbWNfY29yZSBbbGFzdCB1bmxvYWRlZDogdmdl bV0KPiBbIDE1NjIuOTgxODc0XSBDUFU6IDEgUElEOiA4NjY3IENvbW06IGt3b3JrZXIvdTQ6MCBU YWludGVkOiBHICAgICBVICAgICAgICAgIDQuOS4wLXJjNi1DSS1DSV9EUk1fNDcrICMxCj4gWyAx NTYyLjk4MTkyNV0gV29ya3F1ZXVlOiBldmVudHNfdW5ib3VuZCBpbnRlbF9hdG9taWNfY29tbWl0 X3dvcmsgW2k5MTVdCj4gWyAxNTYyLjk4MTkzMl0gIGZmZmZjOTAwMDAxMGZhYTAgZmZmZmZmZmY4 MTQyZTQxNSBmZmZmYzkwMDAwMTBmYWYwIDAwMDAwMDAwMDAwMDAwMDAKPiBbIDE1NjIuOTgxOTQw XSAgZmZmZmM5MDAwMDEwZmFlMCBmZmZmZmZmZjgxMDdlNWM2IDAwMDAwMjNkODE4MTgyODIgZmZm Zjg4MDEzMDgwODAwOAo+IFsgMTU2Mi45ODE5NDhdICBmZmZmODgwMTMwOGU4MDAwIDAwMDAwMDAw MDAxZTExNzggZmZmZjg4MDEyZjZhNDU0OCBmZmZmODgwMTMwODA5MDY4Cj4gWyAxNTYyLjk4MTk1 NV0gQ2FsbCBUcmFjZToKPiBbIDE1NjIuOTgxOTYzXSAgWzxmZmZmZmZmZjgxNDJlNDE1Pl0gZHVt cF9zdGFjaysweDY3LzB4OTIKPiBbIDE1NjIuOTgxOTY5XSAgWzxmZmZmZmZmZjgxMDdlNWM2Pl0g X193YXJuKzB4YzYvMHhlMAo+IFsgMTU2Mi45ODE5NzRdICBbPGZmZmZmZmZmODEwN2U2MmE+XSB3 YXJuX3Nsb3dwYXRoX2ZtdCsweDRhLzB4NTAKPiBbIDE1NjIuOTgxOTgwXSAgWzxmZmZmZmZmZjgx MGVkNmIwPl0gPyByY3VfcmVhZF9sb2NrX3NjaGVkX2hlbGQrMHg3MC8weDgwCj4gWyAxNTYyLjk4 MjAyNV0gIFs8ZmZmZmZmZmZhMDE3NmNiNT5dIGludGVsX2hkbWlfc2V0X2djcF9pbmZvZnJhbWUr MHgyMjUvMHgyMzAgW2k5MTVdCj4gWyAxNTYyLjk4MjA3Ml0gIFs8ZmZmZmZmZmZhMDE3ODkzNz5d IHZsdl9zZXRfaW5mb2ZyYW1lcysweGQ3LzB4MWEwIFtpOTE1XQo+IFsgMTU2Mi45ODIxMTddICBb PGZmZmZmZmZmYTAxNzc3MTA+XSB2bHZfaGRtaV9wcmVfZW5hYmxlKzB4NTAvMHg4MCBbaTkxNV0K PiBbIDE1NjIuOTgyMTY0XSAgWzxmZmZmZmZmZmEwMTMyZjgzPl0gaW50ZWxfZW5jb2RlcnNfcHJl X2VuYWJsZS5pc3JhLjkrMHg2My8weDgwIFtpOTE1XQo+IFsgMTU2Mi45ODIyMTNdICBbPGZmZmZm ZmZmYTAxNDRlYWM+XSB2YWxsZXl2aWV3X2NydGNfZW5hYmxlKzB4ZWMvMHgyMDAgW2k5MTVdCj4g WyAxNTYyLjk4MjI1OF0gIFs8ZmZmZmZmZmZhMDE0MTZmOT5dIGludGVsX3VwZGF0ZV9jcnRjKzB4 NDkvMHhlMCBbaTkxNV0KPiBbIDE1NjIuOTgyMzA0XSAgWzxmZmZmZmZmZmEwMTQxN2VlPl0gaW50 ZWxfdXBkYXRlX2NydGNzKzB4NWUvMHg4MCBbaTkxNV0KPiBbIDE1NjIuOTgyMzUwXSAgWzxmZmZm ZmZmZmEwMTQxZjI2Pl0gaW50ZWxfYXRvbWljX2NvbW1pdF90YWlsKzB4MzE2LzB4ZmQwIFtpOTE1 XQo+IFsgMTU2Mi45ODIzOThdICBbPGZmZmZmZmZmYTAxNDMxNGQ+XSBpbnRlbF9hdG9taWNfY29t bWl0X3dvcmsrMHhkLzB4MTAgW2k5MTVdCj4gWyAxNTYyLjk4MjQwNF0gIFs8ZmZmZmZmZmY4MTA5 YzM1Yz5dIHByb2Nlc3Nfb25lX3dvcmsrMHgxZWMvMHg2YjAKPiBbIDE1NjIuOTgyNDA4XSAgWzxm ZmZmZmZmZjgxMDljMmQ2Pl0gPyBwcm9jZXNzX29uZV93b3JrKzB4MTY2LzB4NmIwCj4gWyAxNTYy Ljk4MjQxM10gIFs8ZmZmZmZmZmY4MTA5Yzg2OT5dIHdvcmtlcl90aHJlYWQrMHg0OS8weDQ5MAo+ IFsgMTU2Mi45ODI0MzJdICBbPGZmZmZmZmZmODEwOWM4MjA+XSA/IHByb2Nlc3Nfb25lX3dvcmsr MHg2YjAvMHg2YjAKPiBbIDE1NjIuOTgyNDM2XSAgWzxmZmZmZmZmZjgxMGEyYjhiPl0ga3RocmVh ZCsweGViLzB4MTEwCj4gWyAxNTYyLjk4MjQ0MV0gIFs8ZmZmZmZmZmY4MTBhMmFhMD5dID8ga3Ro cmVhZF9wYXJrKzB4NjAvMHg2MAo+IFsgMTU2Mi45ODI0NDZdICBbPGZmZmZmZmZmODE4MThjZTc+ XSByZXRfZnJvbV9mb3JrKzB4MjcvMHg0MAo+IFsgMTU2Mi45ODI0NTBdIC0tLVsgZW5kIHRyYWNl IDc5NDJjMjM1NWYwMzYyNTUgXS0tLQo+IAo+IFRlc3RjYXNlOiBrbXNfYXRvbWljX3RyYW5zaXRp b24uMXgtbW9kZXNldC10cmFuc2l0aW9ucy1ub25ibG9ja2luZwo+IFNpZ25lZC1vZmYtYnk6IE1h YXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4gCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiBpbmRleCAxMGVjOWQ0YjdkNDUuLjBkNjgwZGFiYWM3 NyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gQEAgLTE3MDEsNyArMTcwMSw4IEBA IHN0YXRpYyB2b2lkIGludGVsX2RkaV9wcmVfZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAo+ICAKPiAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3ByZV9lbmFibGVfaGRtaShz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCQkJCSAgICAgIGJvb2wgaGFzX2hkbWlf c2luaywKPiAtCQkJCSAgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2Rl LAo+ICsJCQkJICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUs Cj4gKwkJCQkgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0 ZSwKPiAgCQkJCSAgICAgIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsKQo+ICB7Cj4gIAlz dHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGVuY190b19pbnRlbF9oZG1pKCZlbmNvZGVy LT5iYXNlKTsKPiBAQCAtMTcyMSw3ICsxNzIyLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3By ZV9lbmFibGVfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCj4gIAlpbnRl bF9oZG1pLT5zZXRfaW5mb2ZyYW1lcyhkcm1fZW5jb2RlciwKPiAgCQkJCSAgIGhhc19oZG1pX3Np bmssCj4gLQkJCQkgICBhZGp1c3RlZF9tb2RlKTsKPiArCQkJCSAgIGNydGNfc3RhdGUsIGNvbm5f c3RhdGUpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcHJlX2VuYWJsZShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciwKPiBAQCAtMTc0Miw4ICsxNzQzLDggQEAg c3RhdGljIHZvaWQgaW50ZWxfZGRpX3ByZV9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmlu dGVsX2VuY29kZXIsCj4gIAl9Cj4gIAlpZiAodHlwZSA9PSBJTlRFTF9PVVRQVVRfSERNSSkgewo+ ICAJCWludGVsX2RkaV9wcmVfZW5hYmxlX2hkbWkoaW50ZWxfZW5jb2RlciwKPiAtCQkJCQkgIGNy dGMtPmNvbmZpZy0+aGFzX2hkbWlfc2luaywKPiAtCQkJCQkgICZjcnRjLT5jb25maWctPmJhc2Uu YWRqdXN0ZWRfbW9kZSwKPiArCQkJCQkgIHBpcGVfY29uZmlnLT5oYXNfaGRtaV9zaW5rLAo+ICsJ CQkJCSAgcGlwZV9jb25maWcsIGNvbm5fc3RhdGUsCj4gIAkJCQkJICBjcnRjLT5jb25maWctPnNo YXJlZF9kcGxsKTsKPiAgCX0KPiAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXgg Y2QxMzJjMjE2YTY3Li4xNzMzYTFhZmMwYzIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aAo+IEBAIC04NDAsMTEgKzg0MCwxMyBAQCBzdHJ1Y3QgaW50ZWxfaGRtaSB7Cj4gIAllbnVtIGhk bWlfcGljdHVyZV9hc3BlY3QgYXNwZWN0X3JhdGlvOwo+ICAJc3RydWN0IGludGVsX2Nvbm5lY3Rv ciAqYXR0YWNoZWRfY29ubmVjdG9yOwo+ICAJdm9pZCAoKndyaXRlX2luZm9mcmFtZSkoc3RydWN0 IGRybV9lbmNvZGVyICplbmNvZGVyLAo+ICsJCQkJY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNzdGF0ZSwKPiAgCQkJCWVudW0gaGRtaV9pbmZvZnJhbWVfdHlwZSB0eXBlLAo+ICAJCQkJ Y29uc3Qgdm9pZCAqZnJhbWUsIHNzaXplX3QgbGVuKTsKPiAgCXZvaWQgKCpzZXRfaW5mb2ZyYW1l cykoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkgICAgICAgYm9vbCBlbmFibGUs Cj4gLQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9k ZSk7Cj4gKwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSwKPiArCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0 YXRlKTsKPiAgCWJvb2wgKCppbmZvZnJhbWVfZW5hYmxlZCkoc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyLAo+ICAJCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25m aWcpOwo+ICB9Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1p LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiBpbmRleCBmYjg4ZTMyZTI1 YTMuLmI5YmFkOTViZjhmZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9oZG1pLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiBAQCAt MTMzLDYgKzEzMyw3IEBAIGhzd19kaXBfZGF0YV9yZWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBnNHhfd3JpdGVfaW5mb2ZyYW1lKHN0 cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiArCQkJCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJCQkJZW51bSBoZG1pX2luZm9mcmFtZV90eXBlIHR5cGUs Cj4gIAkJCQljb25zdCB2b2lkICpmcmFtZSwgc3NpemVfdCBsZW4pCj4gIHsKPiBAQCAtMTg3LDEz ICsxODgsMTQgQEAgc3RhdGljIGJvb2wgZzR4X2luZm9mcmFtZV9lbmFibGVkKHN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2RlciwKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQgaWJ4X3dyaXRlX2luZm9m cmFtZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gKwkJCQljb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQkJCWVudW0gaGRtaV9pbmZvZnJhbWVfdHlw ZSB0eXBlLAo+ICAJCQkJY29uc3Qgdm9pZCAqZnJhbWUsIHNzaXplX3QgbGVuKQo+ICB7Cj4gIAlj b25zdCB1aW50MzJfdCAqZGF0YSA9IGZyYW1lOwo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGVuY29kZXItPmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxf Y3J0YyhlbmNvZGVyLT5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICAJaTkxNV9yZWdfdCByZWcg PSBUVklERU9fRElQX0NUTChpbnRlbF9jcnRjLT5waXBlKTsKPiAgCXUzMiB2YWwgPSBJOTE1X1JF QUQocmVnKTsKPiAgCWludCBpOwo+IEBAIC0yNDYsMTMgKzI0OCwxNCBAQCBzdGF0aWMgYm9vbCBp YnhfaW5mb2ZyYW1lX2VuYWJsZWQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+ICB9Cj4g IAo+ICBzdGF0aWMgdm9pZCBjcHRfd3JpdGVfaW5mb2ZyYW1lKHN0cnVjdCBkcm1fZW5jb2RlciAq ZW5jb2RlciwKPiArCQkJCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl LAo+ICAJCQkJZW51bSBoZG1pX2luZm9mcmFtZV90eXBlIHR5cGUsCj4gIAkJCQljb25zdCB2b2lk ICpmcmFtZSwgc3NpemVfdCBsZW4pCj4gIHsKPiAgCWNvbnN0IHVpbnQzMl90ICpkYXRhID0gZnJh bWU7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ZGV2Owo+ICAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+IC0Jc3RydWN0IGlu dGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGVuY29kZXItPmNydGMpOwo+ICsJ c3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUt PmJhc2UuY3J0Yyk7Cj4gIAlpOTE1X3JlZ190IHJlZyA9IFRWSURFT19ESVBfQ1RMKGludGVsX2Ny dGMtPnBpcGUpOwo+ICAJdTMyIHZhbCA9IEk5MTVfUkVBRChyZWcpOwo+ICAJaW50IGk7Cj4gQEAg LTMwMywxMyArMzA2LDE0IEBAIHN0YXRpYyBib29sIGNwdF9pbmZvZnJhbWVfZW5hYmxlZChzdHJ1 Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIHZsdl93cml0 ZV9pbmZvZnJhbWUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+ICsJCQkJY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAkJCQllbnVtIGhkbWlfaW5mb2Zy YW1lX3R5cGUgdHlwZSwKPiAgCQkJCWNvbnN0IHZvaWQgKmZyYW1lLCBzc2l6ZV90IGxlbikKPiAg ewo+ICAJY29uc3QgdWludDMyX3QgKmRhdGEgPSBmcmFtZTsKPiAgCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBlbmNvZGVyLT5kZXY7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGRldik7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRv X2ludGVsX2NydGMoZW5jb2Rlci0+Y3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxf Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiAgCWk5MTVfcmVn X3QgcmVnID0gVkxWX1RWSURFT19ESVBfQ1RMKGludGVsX2NydGMtPnBpcGUpOwo+ICAJdTMyIHZh bCA9IEk5MTVfUkVBRChyZWcpOwo+ICAJaW50IGk7Cj4gQEAgLTM2MSwxNCArMzY1LDE0IEBAIHN0 YXRpYyBib29sIHZsdl9pbmZvZnJhbWVfZW5hYmxlZChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29k ZXIsCj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIGhzd193cml0ZV9pbmZvZnJhbWUoc3RydWN0IGRy bV9lbmNvZGVyICplbmNvZGVyLAo+ICsJCQkJY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUsCj4gIAkJCQllbnVtIGhkbWlfaW5mb2ZyYW1lX3R5cGUgdHlwZSwKPiAgCQkJ CWNvbnN0IHZvaWQgKmZyYW1lLCBzc2l6ZV90IGxlbikKPiAgewo+ICAJY29uc3QgdWludDMyX3Qg KmRhdGEgPSBmcmFtZTsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5kZXY7 Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4g LQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+ Y3J0Yyk7Cj4gLQllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBpbnRlbF9jcnRjLT5j b25maWctPmNwdV90cmFuc2NvZGVyOwo+ICsJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVy ID0gY3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29kZXI7Cj4gIAlpOTE1X3JlZ190IGN0bF9yZWcgPSBI U1dfVFZJREVPX0RJUF9DVEwoY3B1X3RyYW5zY29kZXIpOwo+ICAJaTkxNV9yZWdfdCBkYXRhX3Jl ZzsKPiAgCWludCBpOwo+IEBAIC00MjUsNiArNDI5LDcgQEAgc3RhdGljIGJvb2wgaHN3X2luZm9m cmFtZV9lbmFibGVkKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiAgICogYnl0ZXMgYnkg b25lLgo+ICAgKi8KPiAgc3RhdGljIHZvaWQgaW50ZWxfd3JpdGVfaW5mb2ZyYW1lKHN0cnVjdCBk cm1fZW5jb2RlciAqZW5jb2RlciwKPiArCQkJCSAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUsCj4gIAkJCQkgIHVuaW9uIGhkbWlfaW5mb2ZyYW1lICpmcmFtZSkKPiAg ewo+ICAJc3RydWN0IGludGVsX2hkbWkgKmludGVsX2hkbWkgPSBlbmNfdG9faW50ZWxfaGRtaShl bmNvZGVyKTsKPiBAQCAtNDQzLDI2ICs0NDgsMjUgQEAgc3RhdGljIHZvaWQgaW50ZWxfd3JpdGVf aW5mb2ZyYW1lKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiAgCWJ1ZmZlclszXSA9IDA7 Cj4gIAlsZW4rKzsKPiAgCj4gLQlpbnRlbF9oZG1pLT53cml0ZV9pbmZvZnJhbWUoZW5jb2Rlciwg ZnJhbWUtPmFueS50eXBlLCBidWZmZXIsIGxlbik7Cj4gKwlpbnRlbF9oZG1pLT53cml0ZV9pbmZv ZnJhbWUoZW5jb2RlciwgY3J0Y19zdGF0ZSwgZnJhbWUtPmFueS50eXBlLCBidWZmZXIsIGxlbik7 Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIGludGVsX2hkbWlfc2V0X2F2aV9pbmZvZnJhbWUoc3Ry dWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+IC0JCQkJCSBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSkKPiArCQkJCQkgY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNzdGF0ZSkKClBsZWFzZSB1c2UgYSBjb25zaXN0ZW50IG5hbWluZyBzY2hlbWUuIFRo ZSBjdXJyZW50IHNpdHVhdGlvbiB3aXRoCmNzdGF0ZSB2cy4gY3J0Y19zdGF0ZSB2cy4gcGlwZV9j b25maWcgaXMgbm90IG5pY2UgYXQgYWxsLCBhbmQgSSdkIHByZWZlcgp3ZSBkb24ndCBhZGQgdG8g dGhlIG1lc3MgYW55IG1vcmUuIFNvIGZvciBhbnkgbmV3IHVzZXMgbGV0J3MgcGljayBvbmUKbmFt ZSBhbmQgc3RpY2sgdG8gaXQuCgpJIHdvdWxkIHN1Z2dlc3QgcGxhbmVfc3RhdGUvY3J0Y19zdGF0 ZS9jb25uX3N0YXRlIGFzIHRoZSBuYW1lcwp3ZSBzaG91bGQgdXNlLgoKPiAgewo+ICAJc3RydWN0 IGludGVsX2hkbWkgKmludGVsX2hkbWkgPSBlbmNfdG9faW50ZWxfaGRtaShlbmNvZGVyKTsKPiAt CXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5j cnRjKTsKPiAgCXVuaW9uIGhkbWlfaW5mb2ZyYW1lIGZyYW1lOwo+ICAJaW50IHJldDsKPiAgCj4g IAlyZXQgPSBkcm1faGRtaV9hdmlfaW5mb2ZyYW1lX2Zyb21fZGlzcGxheV9tb2RlKCZmcmFtZS5h dmksCj4gLQkJCQkJCSAgICAgICBhZGp1c3RlZF9tb2RlKTsKPiArCQkJCQkJICAgICAgICZjc3Rh dGUtPmJhc2UuYWRqdXN0ZWRfbW9kZSk7Cj4gIAlpZiAocmV0IDwgMCkgewo+ICAJCURSTV9FUlJP UigiY291bGRuJ3QgZmlsbCBBVkkgaW5mb2ZyYW1lXG4iKTsKPiAgCQlyZXR1cm47Cj4gIAl9Cj4g IAo+ICAJaWYgKGludGVsX2hkbWktPnJnYl9xdWFudF9yYW5nZV9zZWxlY3RhYmxlKSB7Cj4gLQkJ aWYgKGludGVsX2NydGMtPmNvbmZpZy0+bGltaXRlZF9jb2xvcl9yYW5nZSkKPiArCQlpZiAoY3N0 YXRlLT5saW1pdGVkX2NvbG9yX3JhbmdlKQo+ICAJCQlmcmFtZS5hdmkucXVhbnRpemF0aW9uX3Jh bmdlID0KPiAgCQkJCUhETUlfUVVBTlRJWkFUSU9OX1JBTkdFX0xJTUlURUQ7Cj4gIAkJZWxzZQo+ IEBAIC00NzAsMTAgKzQ3NCwxMSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9oZG1pX3NldF9hdmlfaW5m b2ZyYW1lKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiAgCQkJCUhETUlfUVVBTlRJWkFU SU9OX1JBTkdFX0ZVTEw7Cj4gIAl9Cj4gIAo+IC0JaW50ZWxfd3JpdGVfaW5mb2ZyYW1lKGVuY29k ZXIsICZmcmFtZSk7Cj4gKwlpbnRlbF93cml0ZV9pbmZvZnJhbWUoZW5jb2RlciwgY3N0YXRlLCAm ZnJhbWUpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBpbnRlbF9oZG1pX3NldF9zcGRfaW5mb2Zy YW1lKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKPiArc3RhdGljIHZvaWQgaW50ZWxfaGRt aV9zZXRfc3BkX2luZm9mcmFtZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gKwkJCQkJ IGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7Cj4gIAl1bmlv biBoZG1pX2luZm9mcmFtZSBmcmFtZTsKPiAgCWludCByZXQ7Cj4gQEAgLTQ4NiwyNyArNDkxLDI4 IEBAIHN0YXRpYyB2b2lkIGludGVsX2hkbWlfc2V0X3NwZF9pbmZvZnJhbWUoc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyKQo+ICAKPiAgCWZyYW1lLnNwZC5zZGkgPSBIRE1JX1NQRF9TRElfUEM7 Cj4gIAo+IC0JaW50ZWxfd3JpdGVfaW5mb2ZyYW1lKGVuY29kZXIsICZmcmFtZSk7Cj4gKwlpbnRl bF93cml0ZV9pbmZvZnJhbWUoZW5jb2RlciwgY3J0Y19zdGF0ZSwgJmZyYW1lKTsKPiAgfQo+ICAK PiAgc3RhdGljIHZvaWQKPiAgaW50ZWxfaGRtaV9zZXRfaGRtaV9pbmZvZnJhbWUoc3RydWN0IGRy bV9lbmNvZGVyICplbmNvZGVyLAo+IC0JCQkgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqYWRqdXN0ZWRfbW9kZSkKPiArCQkJICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUpCj4gIHsKPiAgCXVuaW9uIGhkbWlfaW5mb2ZyYW1lIGZyYW1lOwo+ ICAJaW50IHJldDsKPiAgCj4gIAlyZXQgPSBkcm1faGRtaV92ZW5kb3JfaW5mb2ZyYW1lX2Zyb21f ZGlzcGxheV9tb2RlKCZmcmFtZS52ZW5kb3IuaGRtaSwKPiAtCQkJCQkJCSAgYWRqdXN0ZWRfbW9k ZSk7Cj4gKwkJCQkJCQkgICZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUpOwo+ICAJaWYg KHJldCA8IDApCj4gIAkJcmV0dXJuOwo+ICAKPiAtCWludGVsX3dyaXRlX2luZm9mcmFtZShlbmNv ZGVyLCAmZnJhbWUpOwo+ICsJaW50ZWxfd3JpdGVfaW5mb2ZyYW1lKGVuY29kZXIsIGNydGNfc3Rh dGUsICZmcmFtZSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIGc0eF9zZXRfaW5mb2ZyYW1lcyhz dHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCSAgICAgICBib29sIGVuYWJsZSwKPiAt CQkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlKQo+ ICsJCQkgICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4g KwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkK PiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNv ZGVyLT5kZXYpOwo+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQg PSBlbmNfdG9fZGlnX3BvcnQoZW5jb2Rlcik7Cj4gQEAgLTU2MCwyOCArNTY2LDE2IEBAIHN0YXRp YyB2b2lkIGc0eF9zZXRfaW5mb2ZyYW1lcyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4g IAlJOTE1X1dSSVRFKHJlZywgdmFsKTsKPiAgCVBPU1RJTkdfUkVBRChyZWcpOwo+ICAKPiAtCWlu dGVsX2hkbWlfc2V0X2F2aV9pbmZvZnJhbWUoZW5jb2RlciwgYWRqdXN0ZWRfbW9kZSk7Cj4gLQlp bnRlbF9oZG1pX3NldF9zcGRfaW5mb2ZyYW1lKGVuY29kZXIpOwo+IC0JaW50ZWxfaGRtaV9zZXRf aGRtaV9pbmZvZnJhbWUoZW5jb2RlciwgYWRqdXN0ZWRfbW9kZSk7Cj4gKwlpbnRlbF9oZG1pX3Nl dF9hdmlfaW5mb2ZyYW1lKGVuY29kZXIsIGNydGNfc3RhdGUpOwo+ICsJaW50ZWxfaGRtaV9zZXRf c3BkX2luZm9mcmFtZShlbmNvZGVyLCBjcnRjX3N0YXRlKTsKPiArCWludGVsX2hkbWlfc2V0X2hk bWlfaW5mb2ZyYW1lKGVuY29kZXIsIGNydGNfc3RhdGUpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgYm9v bCBoZG1pX3NpbmtfaXNfZGVlcF9jb2xvcihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4g K3N0YXRpYyBib29sIGhkbWlfc2lua19pc19kZWVwX2NvbG9yKGNvbnN0IHN0cnVjdCBkcm1fY29u bmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gZW5jb2Rlci0+ZGV2Owo+IC0Jc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKPiAt Cj4gLQlXQVJOX09OKCFkcm1fbW9kZXNldF9pc19sb2NrZWQoJmRldi0+bW9kZV9jb25maWcuY29u bmVjdGlvbl9tdXRleCkpOwo+ICsJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IGNv bm5fc3RhdGUtPmNvbm5lY3RvcjsKPiAgCj4gLQkvKgo+IC0JICogSERNSSBjbG9uaW5nIGlzIG9u bHkgc3VwcG9ydGVkIG9uIGc0eCB3aGljaCBkb2Vzbid0Cj4gLQkgKiBzdXBwb3J0IGRlZXAgY29s b3Igb3IgR0NQIGluZm9mcmFtZXMgYW55d2F5IHNvIG5vCj4gLQkgKiBuZWVkIHRvIHdvcnJ5IGFi b3V0IG11bHRpcGxlIEhETUkgc2lua3MgaGVyZS4KPiAtCSAqLwo+IC0JbGlzdF9mb3JfZWFjaF9l bnRyeShjb25uZWN0b3IsICZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0LCBoZWFkKQo+ IC0JCWlmIChjb25uZWN0b3ItPmVuY29kZXIgPT0gZW5jb2RlcikKPiAtCQkJcmV0dXJuIGNvbm5l Y3Rvci0+ZGlzcGxheV9pbmZvLmJwYyA+IDg7Cj4gLQo+IC0JcmV0dXJuIGZhbHNlOwo+ICsJcmV0 dXJuIGNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmJwYyA+IDg7Cj4gIH0KPiAgCj4gIC8qCj4gQEAg LTYyNywxNSArNjIxLDE3IEBAIHN0YXRpYyBib29sIGdjcF9kZWZhdWx0X3BoYXNlX3Bvc3NpYmxl KGludCBwaXBlX2JwcCwKPiAgCQkgbW9kZS0+Y3J0Y19odG90YWwvMiAlIHBpeGVsc19wZXJfZ3Jv dXAgPT0gMCk7Cj4gIH0KPiAgCj4gLXN0YXRpYyBib29sIGludGVsX2hkbWlfc2V0X2djcF9pbmZv ZnJhbWUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQo+ICtzdGF0aWMgYm9vbCBpbnRlbF9o ZG1pX3NldF9nY3BfaW5mb2ZyYW1lKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiArCQkJ CQkgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKPiArCQkJCQkgY29uc3Qg c3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCj4gIHsKPiAgCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+ZGV2KTsKPiAtCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5jcnRjKTsKPiAr CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhjc3RhdGUtPmJhc2UuY3J0 Yyk7Cj4gIAlpOTE1X3JlZ190IHJlZzsKPiAgCXUzMiB2YWwgPSAwOwo+ICAKPiAgCWlmIChIQVNf RERJKGRldl9wcml2KSkKPiAtCQlyZWcgPSBIU1dfVFZJREVPX0RJUF9HQ1AoY3J0Yy0+Y29uZmln LT5jcHVfdHJhbnNjb2Rlcik7Cj4gKwkJcmVnID0gSFNXX1RWSURFT19ESVBfR0NQKGNzdGF0ZS0+ Y3B1X3RyYW5zY29kZXIpOwo+ICAJZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwg SVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCj4gIAkJcmVnID0gVkxWX1RWSURFT19ESVBfR0NQKGNy dGMtPnBpcGUpOwo+ICAJZWxzZSBpZiAoSEFTX1BDSF9TUExJVChkZXZfcHJpdikpCj4gQEAgLTY0 NCwxMiArNjQwLDEyIEBAIHN0YXRpYyBib29sIGludGVsX2hkbWlfc2V0X2djcF9pbmZvZnJhbWUo c3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQo+ICAJCXJldHVybiBmYWxzZTsKPiAgCj4gIAkv KiBJbmRpY2F0ZSBjb2xvciBkZXB0aCB3aGVuZXZlciB0aGUgc2luayBzdXBwb3J0cyBkZWVwIGNv bG9yICovCj4gLQlpZiAoaGRtaV9zaW5rX2lzX2RlZXBfY29sb3IoZW5jb2RlcikpCj4gKwlpZiAo aGRtaV9zaW5rX2lzX2RlZXBfY29sb3IoY29ubl9zdGF0ZSkpCj4gIAkJdmFsIHw9IEdDUF9DT0xP Ul9JTkRJQ0FUSU9OOwo+ICAKPiAgCS8qIEVuYWJsZSBkZWZhdWx0X3BoYXNlIHdoZW5ldmVyIHRo ZSBkaXNwbGF5IG1vZGUgaXMgc3VpdGFibHkgYWxpZ25lZCAqLwo+IC0JaWYgKGdjcF9kZWZhdWx0 X3BoYXNlX3Bvc3NpYmxlKGNydGMtPmNvbmZpZy0+cGlwZV9icHAsCj4gLQkJCQkgICAgICAgJmNy dGMtPmNvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlKSkKPiArCWlmIChnY3BfZGVmYXVsdF9waGFz ZV9wb3NzaWJsZShjc3RhdGUtPnBpcGVfYnBwLAo+ICsJCQkJICAgICAgICZjc3RhdGUtPmJhc2Uu YWRqdXN0ZWRfbW9kZSkpCj4gIAkJdmFsIHw9IEdDUF9ERUZBVUxUX1BIQVNFX0VOQUJMRTsKPiAg Cj4gIAlJOTE1X1dSSVRFKHJlZywgdmFsKTsKPiBAQCAtNjU5LDEwICs2NTUsMTEgQEAgc3RhdGlj IGJvb2wgaW50ZWxfaGRtaV9zZXRfZ2NwX2luZm9mcmFtZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVu Y29kZXIpCj4gIAo+ICBzdGF0aWMgdm9pZCBpYnhfc2V0X2luZm9mcmFtZXMoc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyLAo+ICAJCQkgICAgICAgYm9vbCBlbmFibGUsCj4gLQkJCSAgICAgICBj b25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSkKPiArCQkJICAgICAg IGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICsJCQkgICAgICAg Y29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCj4gIHsKPiAgCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+ZGV2KTsK PiAtCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhlbmNvZGVy LT5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAq aW50ZWxfZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoZW5jb2Rlcik7Cj4gIAlzdHJ1Y3QgaW50 ZWxfaGRtaSAqaW50ZWxfaGRtaSA9ICZpbnRlbF9kaWdfcG9ydC0+aGRtaTsKPiAgCWk5MTVfcmVn X3QgcmVnID0gVFZJREVPX0RJUF9DVEwoaW50ZWxfY3J0Yy0+cGlwZSk7Cj4gQEAgLTY5OCwyMyAr Njk1LDI0IEBAIHN0YXRpYyB2b2lkIGlieF9zZXRfaW5mb2ZyYW1lcyhzdHJ1Y3QgZHJtX2VuY29k ZXIgKmVuY29kZXIsCj4gIAkJIFZJREVPX0RJUF9FTkFCTEVfVkVORE9SIHwgVklERU9fRElQX0VO QUJMRV9HQU1VVCB8Cj4gIAkJIFZJREVPX0RJUF9FTkFCTEVfU1BEIHwgVklERU9fRElQX0VOQUJM RV9HQ1ApOwo+ICAKPiAtCWlmIChpbnRlbF9oZG1pX3NldF9nY3BfaW5mb2ZyYW1lKGVuY29kZXIp KQo+ICsJaWYgKGludGVsX2hkbWlfc2V0X2djcF9pbmZvZnJhbWUoZW5jb2RlciwgY3J0Y19zdGF0 ZSwgY29ubl9zdGF0ZSkpCj4gIAkJdmFsIHw9IFZJREVPX0RJUF9FTkFCTEVfR0NQOwo+ICAKPiAg CUk5MTVfV1JJVEUocmVnLCB2YWwpOwo+ICAJUE9TVElOR19SRUFEKHJlZyk7Cj4gIAo+IC0JaW50 ZWxfaGRtaV9zZXRfYXZpX2luZm9mcmFtZShlbmNvZGVyLCBhZGp1c3RlZF9tb2RlKTsKPiAtCWlu dGVsX2hkbWlfc2V0X3NwZF9pbmZvZnJhbWUoZW5jb2Rlcik7Cj4gLQlpbnRlbF9oZG1pX3NldF9o ZG1pX2luZm9mcmFtZShlbmNvZGVyLCBhZGp1c3RlZF9tb2RlKTsKPiArCWludGVsX2hkbWlfc2V0 X2F2aV9pbmZvZnJhbWUoZW5jb2RlciwgY3J0Y19zdGF0ZSk7Cj4gKwlpbnRlbF9oZG1pX3NldF9z cGRfaW5mb2ZyYW1lKGVuY29kZXIsIGNydGNfc3RhdGUpOwo+ICsJaW50ZWxfaGRtaV9zZXRfaGRt aV9pbmZvZnJhbWUoZW5jb2RlciwgY3J0Y19zdGF0ZSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lk IGNwdF9zZXRfaW5mb2ZyYW1lcyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCSAg ICAgICBib29sIGVuYWJsZSwKPiAtCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9t b2RlICphZGp1c3RlZF9tb2RlKQo+ICsJCQkgICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUsCj4gKwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rv cl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5kZXYpOwo+IC0Jc3RydWN0IGludGVsX2NydGMgKmlu dGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGVuY29kZXItPmNydGMpOwo+ICsJc3RydWN0IGludGVs X2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7 Cj4gIAlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGVuY190b19pbnRlbF9oZG1pKGVu Y29kZXIpOwo+ICAJaTkxNV9yZWdfdCByZWcgPSBUVklERU9fRElQX0NUTChpbnRlbF9jcnRjLT5w aXBlKTsKPiAgCXUzMiB2YWwgPSBJOTE1X1JFQUQocmVnKTsKPiBAQCAtNzQwLDI0ICs3MzgsMjUg QEAgc3RhdGljIHZvaWQgY3B0X3NldF9pbmZvZnJhbWVzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5j b2RlciwKPiAgCXZhbCAmPSB+KFZJREVPX0RJUF9FTkFCTEVfVkVORE9SIHwgVklERU9fRElQX0VO QUJMRV9HQU1VVCB8Cj4gIAkJIFZJREVPX0RJUF9FTkFCTEVfU1BEIHwgVklERU9fRElQX0VOQUJM RV9HQ1ApOwo+ICAKPiAtCWlmIChpbnRlbF9oZG1pX3NldF9nY3BfaW5mb2ZyYW1lKGVuY29kZXIp KQo+ICsJaWYgKGludGVsX2hkbWlfc2V0X2djcF9pbmZvZnJhbWUoZW5jb2RlciwgY3J0Y19zdGF0 ZSwgY29ubl9zdGF0ZSkpCj4gIAkJdmFsIHw9IFZJREVPX0RJUF9FTkFCTEVfR0NQOwo+ICAKPiAg CUk5MTVfV1JJVEUocmVnLCB2YWwpOwo+ICAJUE9TVElOR19SRUFEKHJlZyk7Cj4gIAo+IC0JaW50 ZWxfaGRtaV9zZXRfYXZpX2luZm9mcmFtZShlbmNvZGVyLCBhZGp1c3RlZF9tb2RlKTsKPiAtCWlu dGVsX2hkbWlfc2V0X3NwZF9pbmZvZnJhbWUoZW5jb2Rlcik7Cj4gLQlpbnRlbF9oZG1pX3NldF9o ZG1pX2luZm9mcmFtZShlbmNvZGVyLCBhZGp1c3RlZF9tb2RlKTsKPiArCWludGVsX2hkbWlfc2V0 X2F2aV9pbmZvZnJhbWUoZW5jb2RlciwgY3J0Y19zdGF0ZSk7Cj4gKwlpbnRlbF9oZG1pX3NldF9z cGRfaW5mb2ZyYW1lKGVuY29kZXIsIGNydGNfc3RhdGUpOwo+ICsJaW50ZWxfaGRtaV9zZXRfaGRt aV9pbmZvZnJhbWUoZW5jb2RlciwgY3J0Y19zdGF0ZSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lk IHZsdl9zZXRfaW5mb2ZyYW1lcyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCSAg ICAgICBib29sIGVuYWJsZSwKPiAtCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9t b2RlICphZGp1c3RlZF9tb2RlKQo+ICsJCQkgICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUsCj4gKwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rv cl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5kZXYpOwo+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxf cG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoZW5jb2Rlcik7Cj4gLQlzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+Y3J0Yyk7 Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+YmFzZS5jcnRjKTsKPiAgCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0gZW5j X3RvX2ludGVsX2hkbWkoZW5jb2Rlcik7Cj4gIAlpOTE1X3JlZ190IHJlZyA9IFZMVl9UVklERU9f RElQX0NUTChpbnRlbF9jcnRjLT5waXBlKTsKPiAgCXUzMiB2YWwgPSBJOTE1X1JFQUQocmVnKTsK PiBAQCAtNzkyLDI1ICs3OTEsMjUgQEAgc3RhdGljIHZvaWQgdmx2X3NldF9pbmZvZnJhbWVzKHN0 cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiAgCQkgVklERU9fRElQX0VOQUJMRV9WRU5ET1Ig fCBWSURFT19ESVBfRU5BQkxFX0dBTVVUIHwKPiAgCQkgVklERU9fRElQX0VOQUJMRV9TUEQgfCBW SURFT19ESVBfRU5BQkxFX0dDUCk7Cj4gIAo+IC0JaWYgKGludGVsX2hkbWlfc2V0X2djcF9pbmZv ZnJhbWUoZW5jb2RlcikpCj4gKwlpZiAoaW50ZWxfaGRtaV9zZXRfZ2NwX2luZm9mcmFtZShlbmNv ZGVyLCBjcnRjX3N0YXRlLCBjb25uX3N0YXRlKSkKPiAgCQl2YWwgfD0gVklERU9fRElQX0VOQUJM RV9HQ1A7Cj4gIAo+ICAJSTkxNV9XUklURShyZWcsIHZhbCk7Cj4gIAlQT1NUSU5HX1JFQUQocmVn KTsKPiAgCj4gLQlpbnRlbF9oZG1pX3NldF9hdmlfaW5mb2ZyYW1lKGVuY29kZXIsIGFkanVzdGVk X21vZGUpOwo+IC0JaW50ZWxfaGRtaV9zZXRfc3BkX2luZm9mcmFtZShlbmNvZGVyKTsKPiAtCWlu dGVsX2hkbWlfc2V0X2hkbWlfaW5mb2ZyYW1lKGVuY29kZXIsIGFkanVzdGVkX21vZGUpOwo+ICsJ aW50ZWxfaGRtaV9zZXRfYXZpX2luZm9mcmFtZShlbmNvZGVyLCBjcnRjX3N0YXRlKTsKPiArCWlu dGVsX2hkbWlfc2V0X3NwZF9pbmZvZnJhbWUoZW5jb2RlciwgY3J0Y19zdGF0ZSk7Cj4gKwlpbnRl bF9oZG1pX3NldF9oZG1pX2luZm9mcmFtZShlbmNvZGVyLCBjcnRjX3N0YXRlKTsKPiAgfQo+ICAK PiAgc3RhdGljIHZvaWQgaHN3X3NldF9pbmZvZnJhbWVzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5j b2RlciwKPiAgCQkJICAgICAgIGJvb2wgZW5hYmxlLAo+IC0JCQkgICAgICAgY29uc3Qgc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUpCj4gKwkJCSAgICAgICBjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiArCQkJICAgICAgIGNvbnN0IHN0cnVj dCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmRldik7Cj4gLQlzdHJ1Y3Qg aW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+Y3J0Yyk7Cj4g IAlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGVuY190b19pbnRlbF9oZG1pKGVuY29k ZXIpOwo+IC0JaTkxNV9yZWdfdCByZWcgPSBIU1dfVFZJREVPX0RJUF9DVEwoaW50ZWxfY3J0Yy0+ Y29uZmlnLT5jcHVfdHJhbnNjb2Rlcik7Cj4gKwlpOTE1X3JlZ190IHJlZyA9IEhTV19UVklERU9f RElQX0NUTChjcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2Rlcik7Cj4gIAl1MzIgdmFsID0gSTkxNV9S RUFEKHJlZyk7Cj4gIAo+ICAJYXNzZXJ0X2hkbWlfcG9ydF9kaXNhYmxlZChpbnRlbF9oZG1pKTsK PiBAQCAtODI1LDE1ICs4MjQsMTUgQEAgc3RhdGljIHZvaWQgaHN3X3NldF9pbmZvZnJhbWVzKHN0 cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiAgCQlyZXR1cm47Cj4gIAl9Cj4gIAo+IC0JaWYg KGludGVsX2hkbWlfc2V0X2djcF9pbmZvZnJhbWUoZW5jb2RlcikpCj4gKwlpZiAoaW50ZWxfaGRt aV9zZXRfZ2NwX2luZm9mcmFtZShlbmNvZGVyLCBjcnRjX3N0YXRlLCBjb25uX3N0YXRlKSkKPiAg CQl2YWwgfD0gVklERU9fRElQX0VOQUJMRV9HQ1BfSFNXOwo+ICAKPiAgCUk5MTVfV1JJVEUocmVn LCB2YWwpOwo+ICAJUE9TVElOR19SRUFEKHJlZyk7Cj4gIAo+IC0JaW50ZWxfaGRtaV9zZXRfYXZp X2luZm9mcmFtZShlbmNvZGVyLCBhZGp1c3RlZF9tb2RlKTsKPiAtCWludGVsX2hkbWlfc2V0X3Nw ZF9pbmZvZnJhbWUoZW5jb2Rlcik7Cj4gLQlpbnRlbF9oZG1pX3NldF9oZG1pX2luZm9mcmFtZShl bmNvZGVyLCBhZGp1c3RlZF9tb2RlKTsKPiArCWludGVsX2hkbWlfc2V0X2F2aV9pbmZvZnJhbWUo ZW5jb2RlciwgY3J0Y19zdGF0ZSk7Cj4gKwlpbnRlbF9oZG1pX3NldF9zcGRfaW5mb2ZyYW1lKGVu Y29kZXIsIGNydGNfc3RhdGUpOwo+ICsJaW50ZWxfaGRtaV9zZXRfaGRtaV9pbmZvZnJhbWUoZW5j b2RlciwgY3J0Y19zdGF0ZSk7Cj4gIH0KPiAgCj4gIHZvaWQgaW50ZWxfZHBfZHVhbF9tb2RlX3Nl dF90bWRzX291dHB1dChzdHJ1Y3QgaW50ZWxfaGRtaSAqaGRtaSwgYm9vbCBlbmFibGUpCj4gQEAg LTg1MiwzMSArODUxLDMyIEBAIHZvaWQgaW50ZWxfZHBfZHVhbF9tb2RlX3NldF90bWRzX291dHB1 dChzdHJ1Y3QgaW50ZWxfaGRtaSAqaGRtaSwgYm9vbCBlbmFibGUpCj4gIAkJCQkJIGFkYXB0ZXIs IGVuYWJsZSk7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGludGVsX2hkbWlfcHJlcGFyZShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiArc3RhdGljIHZvaWQgaW50ZWxfaGRtaV9wcmVw YXJlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICsJCQkgICAgICAgY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0g dG9faW50ZWxfY3J0YyhlbmNvZGVyLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gIAlzdHJ1Y3Qg aW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGVuY190b19pbnRlbF9oZG1pKCZlbmNvZGVyLT5iYXNl KTsKPiAtCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJmNy dGMtPmNvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOwo+ICsJY29uc3Qgc3RydWN0IGRybV9kaXNw bGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2Rl Owo+ICAJdTMyIGhkbWlfdmFsOwo+ICAKPiAgCWludGVsX2RwX2R1YWxfbW9kZV9zZXRfdG1kc19v dXRwdXQoaW50ZWxfaGRtaSwgdHJ1ZSk7Cj4gIAo+ICAJaGRtaV92YWwgPSBTRFZPX0VOQ09ESU5H X0hETUk7Cj4gLQlpZiAoIUhBU19QQ0hfU1BMSVQoZGV2X3ByaXYpICYmIGNydGMtPmNvbmZpZy0+ bGltaXRlZF9jb2xvcl9yYW5nZSkKPiArCWlmICghSEFTX1BDSF9TUExJVChkZXZfcHJpdikgJiYg Y3J0Y19zdGF0ZS0+bGltaXRlZF9jb2xvcl9yYW5nZSkKPiAgCQloZG1pX3ZhbCB8PSBIRE1JX0NP TE9SX1JBTkdFXzE2XzIzNTsKPiAgCWlmIChhZGp1c3RlZF9tb2RlLT5mbGFncyAmIERSTV9NT0RF X0ZMQUdfUFZTWU5DKQo+ICAJCWhkbWlfdmFsIHw9IFNEVk9fVlNZTkNfQUNUSVZFX0hJR0g7Cj4g IAlpZiAoYWRqdXN0ZWRfbW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX1BIU1lOQykKPiAgCQlo ZG1pX3ZhbCB8PSBTRFZPX0hTWU5DX0FDVElWRV9ISUdIOwo+ICAKPiAtCWlmIChjcnRjLT5jb25m aWctPnBpcGVfYnBwID4gMjQpCj4gKwlpZiAoY3J0Y19zdGF0ZS0+cGlwZV9icHAgPiAyNCkKPiAg CQloZG1pX3ZhbCB8PSBIRE1JX0NPTE9SX0ZPUk1BVF8xMmJwYzsKPiAgCWVsc2UKPiAgCQloZG1p X3ZhbCB8PSBTRFZPX0NPTE9SX0ZPUk1BVF84YnBjOwo+ICAKPiAtCWlmIChjcnRjLT5jb25maWct Pmhhc19oZG1pX3NpbmspCj4gKwlpZiAoY3J0Y19zdGF0ZS0+aGFzX2hkbWlfc2luaykKPiAgCQlo ZG1pX3ZhbCB8PSBIRE1JX01PREVfU0VMRUNUX0hETUk7Cj4gIAo+ICAJaWYgKEhBU19QQ0hfQ1BU KGRldl9wcml2KSkKPiBAQCAtOTc5LDkgKzk3OSw5IEBAIHN0YXRpYyB2b2lkIGludGVsX2VuYWJs ZV9oZG1pX2F1ZGlvKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkJICAgIHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiAgCQkJCSAgICBzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGVuY29kZXItPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yyk7Cj4g IAo+IC0JV0FSTl9PTighY3J0Yy0+Y29uZmlnLT5oYXNfaGRtaV9zaW5rKTsKPiArCVdBUk5fT04o IXBpcGVfY29uZmlnLT5oYXNfaGRtaV9zaW5rKTsKPiAgCURSTV9ERUJVR19EUklWRVIoIkVuYWJs aW5nIEhETUkgYXVkaW8gb24gcGlwZSAlY1xuIiwKPiAgCQkJIHBpcGVfbmFtZShjcnRjLT5waXBl KSk7Cj4gIAlpbnRlbF9hdWRpb19jb2RlY19lbmFibGUoZW5jb2RlciwgcGlwZV9jb25maWcsIGNv bm5fc3RhdGUpOwo+IEBAIC0xMDE1LDE0ICsxMDE1LDEzIEBAIHN0YXRpYyB2b2lkIGlieF9lbmFi bGVfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgewo+ICAJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2Owo+ICAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKGVuY29kZXItPmJhc2UuY3J0Yyk7Cj4gIAlzdHJ1Y3QgaW50ZWxf aGRtaSAqaW50ZWxfaGRtaSA9IGVuY190b19pbnRlbF9oZG1pKCZlbmNvZGVyLT5iYXNlKTsKPiAg CXUzMiB0ZW1wOwo+ICAKPiAgCXRlbXAgPSBJOTE1X1JFQUQoaW50ZWxfaGRtaS0+aGRtaV9yZWcp Owo+ICAKPiAgCXRlbXAgfD0gU0RWT19FTkFCTEU7Cj4gLQlpZiAoY3J0Yy0+Y29uZmlnLT5oYXNf YXVkaW8pCj4gKwlpZiAocGlwZV9jb25maWctPmhhc19hdWRpbykKPiAgCQl0ZW1wIHw9IFNEVk9f QVVESU9fRU5BQkxFOwo+ICAKPiAgCS8qCj4gQEAgLTEwNjYsNyArMTA2NSw3IEBAIHN0YXRpYyB2 b2lkIGNwdF9lbmFibGVfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgewo+ ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2Owo+ICAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+IC0Jc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGVuY29kZXItPmJhc2UuY3J0Yyk7Cj4gKwlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2Uu Y3J0Yyk7Cj4gIAlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGVuY190b19pbnRlbF9o ZG1pKCZlbmNvZGVyLT5iYXNlKTsKPiAgCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKPiAg CXUzMiB0ZW1wOwo+IEBAIC0xMTI4LDcgKzExMjcsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kaXNh YmxlX2hkbWkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gIAlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxf aGRtaSA9IGVuY190b19pbnRlbF9oZG1pKCZlbmNvZGVyLT5iYXNlKTsKPiAtCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5iYXNlLmNydGMpOwo+ICsJc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT5iYXNl LmNydGMpOwo+ICAJdTMyIHRlbXA7Cj4gIAo+ICAJdGVtcCA9IEk5MTVfUkVBRChpbnRlbF9oZG1p LT5oZG1pX3JlZyk7Cj4gQEAgLTExNzAsNyArMTE2OSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2Rp c2FibGVfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCQlpbnRlbF9zZXRf cGNoX2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKGRldl9wcml2LCBQSVBFX0EsIHRydWUpOwo+ICAJ fQo+ICAKPiAtCWludGVsX2hkbWktPnNldF9pbmZvZnJhbWVzKCZlbmNvZGVyLT5iYXNlLCBmYWxz ZSwgTlVMTCk7Cj4gKwlpbnRlbF9oZG1pLT5zZXRfaW5mb2ZyYW1lcygmZW5jb2Rlci0+YmFzZSwg ZmFsc2UsIG9sZF9jcnRjX3N0YXRlLCBvbGRfY29ubl9zdGF0ZSk7Cj4gIAo+ICAJaW50ZWxfZHBf ZHVhbF9tb2RlX3NldF90bWRzX291dHB1dChpbnRlbF9oZG1pLCBmYWxzZSk7Cj4gIH0KPiBAQCAt MTY0MiwxMyArMTY0MSwxMiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9oZG1pX3ByZV9lbmFibGUoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCQkgIHN0cnVjdCBkcm1fY29ubmVjdG9y X3N0YXRlICpjb25uX3N0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRt aSA9IGVuY190b19pbnRlbF9oZG1pKCZlbmNvZGVyLT5iYXNlKTsKPiAtCWNvbnN0IHN0cnVjdCBk cm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVz dGVkX21vZGU7Cj4gIAo+IC0JaW50ZWxfaGRtaV9wcmVwYXJlKGVuY29kZXIpOwo+ICsJaW50ZWxf aGRtaV9wcmVwYXJlKGVuY29kZXIsIHBpcGVfY29uZmlnKTsKPiAgCj4gIAlpbnRlbF9oZG1pLT5z ZXRfaW5mb2ZyYW1lcygmZW5jb2Rlci0+YmFzZSwKPiAgCQkJCSAgIHBpcGVfY29uZmlnLT5oYXNf aGRtaV9zaW5rLAo+IC0JCQkJICAgYWRqdXN0ZWRfbW9kZSk7Cj4gKwkJCQkgICBwaXBlX2NvbmZp ZywgY29ubl9zdGF0ZSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIHZsdl9oZG1pX3ByZV9lbmFi bGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gQEAgLTE2NTksNyArMTY1Nyw2IEBA IHN0YXRpYyB2b2lkIHZsdl9oZG1pX3ByZV9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCj4gIAlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9ICZkcG9ydC0+aGRtaTsK PiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKPiAgCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAtCWNvbnN0IHN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNl LmFkanVzdGVkX21vZGU7Cj4gIAo+ICAJdmx2X3BoeV9wcmVfZW5jb2Rlcl9lbmFibGUoZW5jb2Rl cik7Cj4gIAo+IEBAIC0xNjY5LDcgKzE2NjYsNyBAQCBzdGF0aWMgdm9pZCB2bHZfaGRtaV9wcmVf ZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAKPiAgCWludGVsX2hkbWkt PnNldF9pbmZvZnJhbWVzKCZlbmNvZGVyLT5iYXNlLAo+ICAJCQkJICAgcGlwZV9jb25maWctPmhh c19oZG1pX3NpbmssCj4gLQkJCQkgICBhZGp1c3RlZF9tb2RlKTsKPiArCQkJCSAgIHBpcGVfY29u ZmlnLCBjb25uX3N0YXRlKTsKPiAgCj4gIAlnNHhfZW5hYmxlX2hkbWkoZW5jb2RlciwgcGlwZV9j b25maWcsIGNvbm5fc3RhdGUpOwo+ICAKPiBAQCAtMTY4MCw3ICsxNjc3LDcgQEAgc3RhdGljIHZv aWQgdmx2X2hkbWlfcHJlX3BsbF9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs Cj4gIAkJCQkgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAo+ICAJCQkJ ICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICB7Cj4gLQlpbnRl bF9oZG1pX3ByZXBhcmUoZW5jb2Rlcik7Cj4gKwlpbnRlbF9oZG1pX3ByZXBhcmUoZW5jb2Rlciwg cGlwZV9jb25maWcpOwo+ICAKPiAgCXZsdl9waHlfcHJlX3BsbF9lbmFibGUoZW5jb2Rlcik7Cj4g IH0KPiBAQCAtMTY4OSw3ICsxNjg2LDcgQEAgc3RhdGljIHZvaWQgY2h2X2hkbWlfcHJlX3BsbF9l bmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCQkgICAgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAo+ICAJCQkJICAgIHN0cnVjdCBkcm1fY29ubmVj dG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICB7Cj4gLQlpbnRlbF9oZG1pX3ByZXBhcmUoZW5jb2Rl cik7Cj4gKwlpbnRlbF9oZG1pX3ByZXBhcmUoZW5jb2RlciwgcGlwZV9jb25maWcpOwo+ICAKPiAg CWNodl9waHlfcHJlX3BsbF9lbmFibGUoZW5jb2Rlcik7Cj4gIH0KPiBAQCAtMTczMiw5ICsxNzI5 LDYgQEAgc3RhdGljIHZvaWQgY2h2X2hkbWlfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKPiAgCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0gJmRwb3J0LT5o ZG1pOwo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2Owo+ICAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+IC0Jc3Ry dWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPQo+IC0JCXRvX2ludGVsX2NydGMoZW5jb2Rlci0+ YmFzZS5jcnRjKTsKPiAtCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9t b2RlID0gJmludGVsX2NydGMtPmNvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOwo+ICAKPiAgCWNo dl9waHlfcHJlX2VuY29kZXJfZW5hYmxlKGVuY29kZXIpOwo+ICAKPiBAQCAtMTc0Myw4ICsxNzM3 LDggQEAgc3RhdGljIHZvaWQgY2h2X2hkbWlfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKPiAgCWNodl9zZXRfcGh5X3NpZ25hbF9sZXZlbChlbmNvZGVyLCAxMjgsIDEw MiwgZmFsc2UpOwo+ICAKPiAgCWludGVsX2hkbWktPnNldF9pbmZvZnJhbWVzKCZlbmNvZGVyLT5i YXNlLAo+IC0JCQkJICAgaW50ZWxfY3J0Yy0+Y29uZmlnLT5oYXNfaGRtaV9zaW5rLAo+IC0JCQkJ ICAgYWRqdXN0ZWRfbW9kZSk7Cj4gKwkJCQkgICBwaXBlX2NvbmZpZy0+aGFzX2hkbWlfc2luaywK PiArCQkJCSAgIHBpcGVfY29uZmlnLCBjb25uX3N0YXRlKTsKPiAgCj4gIAlnNHhfZW5hYmxlX2hk bWkoZW5jb2RlciwgcGlwZV9jb25maWcsIGNvbm5fc3RhdGUpOwo+ICAKPiAKPiBfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5n IGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApWaWxsZSBTeXJq w6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=