From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 07/14] drm/i915: Perform automated conversions for crtc uapi/hw split, base -> uapi. Date: Tue, 22 Oct 2019 21:24:58 +0300 Message-ID: <20191022182458.GR1208@intel.com> References: <20191017132105.15528-1-maarten.lankhorst@linux.intel.com> <20191017132105.15528-7-maarten.lankhorst@linux.intel.com> 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 E36858825B for ; Tue, 22 Oct 2019 18:25:02 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20191017132105.15528-7-maarten.lankhorst@linux.intel.com> 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-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBPY3QgMTcsIDIwMTkgYXQgMDM6MjA6NThQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gU3BsaXQgdXAgY3J0Y19zdGF0ZS0+YmFzZSB0byB1YXBpLiBUaGlzIGlzIGRv bmUgdXNpbmcgdGhlIGZvbGxvd2luZyBwYXRjaCwKPiByYW4gYWZ0ZXIgdGhlIHByZXZpb3VzIGNv bW1pdCB0aGF0IHNwbGl0cyBvdXQgYW55IGh3IHJlZmVyZW5jZXM6Cj4gCj4gQEAKPiBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqVDsKPiBAQAo+IC1ULT5iYXNlCj4gK1QtPnVhcGkKPiAKPiBAQAo+ IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpUOwo+IGlkZW50aWZpZXIgeCA9fiAiXihhY3RpdmV8 ZW5hYmxlfGRlZ2FtbWFfbHV0fGdhbW1hX2x1dHxjdG18bW9kZXxhZGp1c3RlZF9tb2RlKSQiOwo+ IEBACj4gLVQtPmJhc2UueAo+ICtULT51YXBpLngKPiAKPiBTaWduZWQtb2ZmLWJ5OiBNYWFydGVu IExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgoKQ2FuJ3Qgc2Vl IGFueSBmdW5jdGlvbmFsIGlzc3VlcyB3aXRoIHRoaXMgb25lLiBTbGlnaHRseSBkaXNndXN0aW5n IGhvdwptYW55IHBsYWNlcyBlbmQgdXAgc2F5aW5nICJ1YXBpIiB3aGVuIG5vdCBhY3R1YWxseSBk ZWFsaW5nIHdpdGggdWFwaQpzdHVmZiwgYnV0IGNhbid0IHJlYWxseSBkbyBhbnlodGluZyBhYm91 dCB0aGF0IHVubGVzcyB3ZSB3YW50IHRvIHN0YXJ0CnBsYXlpbmcgc3VwZXIgZnJhZ2lsZSB0cmlj a3Mgd2l0aCB1bmlvbnMuCgpSZXZpZXdlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJq YWxhQGxpbnV4LmludGVsLmNvbT4KCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaWNsX2RzaS5jICAgICAgICB8ICAgNiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2F0b21pYy5jICAgfCAgIDggKy0KPiAgLi4uL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2F0b21pY19wbGFuZS5jIHwgICA2ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfYXVkaW8uYyAgICB8ICAgOCArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2J3LmMgICAgICAgfCAgIDQgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9jZGNsay5jICAgIHwgIDEwICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfY29sb3IuYyAgICB8ICA3MCArKy0tLQo+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2NydC5jICAgICAgfCAgIDYgKy0KPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYyAgICAgIHwgIDMyICstLQo+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYyAgfCAyNDEgKysrKysrKysrLS0tLS0tLS0t Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYyAgICAgICB8ICAyMCAr LQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwX21zdC5jICAgfCAgIDIg Ky0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcGlvX3BoeS5jIHwgIDE0 ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBsbF9tZ3IuYyB8ICAy MCArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2R2by5jICAgICAgfCAg IDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9oZG1pLmMgICAgIHwg IDQ0ICsrLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9sdmRzLmMgICAg IHwgICA0ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcGFuZWwuYyAg ICB8ICAgNiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3BpcGVfY3Jj LmMgfCAgIDQgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3IuYyAg ICAgIHwgICA2ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc2R2by5j ICAgICB8ICAgNiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Nwcml0 ZS5jICAgfCAgMTcgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF90di5j ICAgICAgIHwgICA0ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdmRz Yy5jICAgICB8ICAgOCArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L3Zsdl9kc2ku YyAgICAgICAgfCAgMTAgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMg ICAgICAgICAgIHwgICA2ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgICAg ICAgICAgICAgICB8IDExMiArKysrLS0tLQo+ICAyNyBmaWxlcyBjaGFuZ2VkLCAzMzkgaW5zZXJ0 aW9ucygrKSwgMzM3IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ljbF9kc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aWNsX2RzaS5jCj4gaW5kZXggNGVjNDkzZTQ3NTViLi4wZTI0YjhlMjU3ZTUgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pY2xfZHNpLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ljbF9kc2kuYwo+IEBAIC02MjUsNyArNjI1LDcgQEAgZ2Vu MTFfZHNpX2NvbmZpZ3VyZV90cmFuc2NvZGVyKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy LAo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVu Y29kZXItPmJhc2UuZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190 b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOwo+IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0 IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT51YXBp LmNydGMpOwo+ICAJZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+ICAJdTMyIHRt cDsKPiAgCWVudW0gcG9ydCBwb3J0Owo+IEBAIC0xMjQyLDcgKzEyNDIsNyBAQCBzdGF0aWMgdm9p ZCBnZW4xMV9kc2lfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAg CQkJCSBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4gIHsKPiAgCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYp Owo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmln LT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KHBpcGVfY29uZmlnLT51YXBpLmNydGMpOwo+ICAJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNp ID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7Cj4gIAo+ICAJLyogRklYTUU6IGFk YXB0IGljbF9kZGlfY2xvY2tfZ2V0KCkgZm9yIERTSSBhbmQgdXNlIHRoYXQ/ICovCj4gQEAgLTEy NjUsNyArMTI2NSw3IEBAIHN0YXRpYyBpbnQgZ2VuMTFfZHNpX2NvbXB1dGVfY29uZmlnKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNp ID0gY29udGFpbmVyX29mKGVuY29kZXIsIHN0cnVjdCBpbnRlbF9kc2ksCj4gIAkJCQkJCSAgIGJh c2UpOwo+ICAJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yID0gaW50ZWxf ZHNpLT5hdHRhY2hlZF9jb25uZWN0b3I7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPnVhcGkuY3J0Yyk7Cj4gIAljb25z dCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqZml4ZWRfbW9kZSA9Cj4gIAkJCQkJaW50ZWxfY29u bmVjdG9yLT5wYW5lbC5maXhlZF9tb2RlOwo+ICAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFk anVzdGVkX21vZGUgPQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9t aWMuYwo+IGluZGV4IDJjZGM5Mjg5N2FiZC4uN2NmMTNiOWM3ZDM4IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21pYy5jCj4gQEAgLTE5Myw3ICsxOTMsNyBA QCBpbnRlbF9jcnRjX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIAlp ZiAoIWNydGNfc3RhdGUpCj4gIAkJcmV0dXJuIE5VTEw7Cj4gIAo+IC0JX19kcm1fYXRvbWljX2hl bHBlcl9jcnRjX2R1cGxpY2F0ZV9zdGF0ZShjcnRjLCAmY3J0Y19zdGF0ZS0+YmFzZSk7Cj4gKwlf X2RybV9hdG9taWNfaGVscGVyX2NydGNfZHVwbGljYXRlX3N0YXRlKGNydGMsICZjcnRjX3N0YXRl LT51YXBpKTsKPiAgCj4gIAljcnRjX3N0YXRlLT51cGRhdGVfcGlwZSA9IGZhbHNlOwo+ICAJY3J0 Y19zdGF0ZS0+ZGlzYWJsZV9scF93bSA9IGZhbHNlOwo+IEBAIC0yMDUsNyArMjA1LDcgQEAgaW50 ZWxfY3J0Y19kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAJY3J0Y19z dGF0ZS0+ZmJfYml0cyA9IDA7Cj4gIAljcnRjX3N0YXRlLT51cGRhdGVfcGxhbmVzID0gMDsKPiAg Cj4gLQlyZXR1cm4gJmNydGNfc3RhdGUtPmJhc2U7Cj4gKwlyZXR1cm4gJmNydGNfc3RhdGUtPnVh cGk7Cj4gIH0KPiAgCj4gIC8qKgo+IEBAIC0yMjIsNyArMjIyLDcgQEAgaW50ZWxfY3J0Y19kZXN0 cm95X3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgewo+ICAJc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKHN0YXRlKTsKPiAgCj4g LQlfX2RybV9hdG9taWNfaGVscGVyX2NydGNfZGVzdHJveV9zdGF0ZSgmY3J0Y19zdGF0ZS0+YmFz ZSk7Cj4gKwlfX2RybV9hdG9taWNfaGVscGVyX2NydGNfZGVzdHJveV9zdGF0ZSgmY3J0Y19zdGF0 ZS0+dWFwaSk7Cj4gIAlrZnJlZShjcnRjX3N0YXRlKTsKPiAgfQo+ICAKPiBAQCAtMzE5LDcgKzMx OSw3IEBAIGludCBpbnRlbF9hdG9taWNfc2V0dXBfc2NhbGVycyhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCj4gIHsKPiAgCXN0cnVjdCBpbnRlbF9jcnRjX3NjYWxlcl9zdGF0ZSAq c2NhbGVyX3N0YXRlID0KPiAgCQkmY3J0Y19zdGF0ZS0+c2NhbGVyX3N0YXRlOwo+IC0Jc3RydWN0 IGRybV9hdG9taWNfc3RhdGUgKmRybV9zdGF0ZSA9IGNydGNfc3RhdGUtPmJhc2Uuc3RhdGU7Cj4g KwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqZHJtX3N0YXRlID0gY3J0Y19zdGF0ZS0+dWFwaS5z dGF0ZTsKPiAgCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0gdG9faW50ZWxfYXRv bWljX3N0YXRlKGRybV9zdGF0ZSk7Cj4gIAlpbnQgbnVtX3NjYWxlcnNfbmVlZDsKPiAgCWludCBp Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21p Y19wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWNfcGxh bmUuYwo+IGluZGV4IDg0N2Y5YzRlY2JiZC4uZDkyYzE4NWQ0YjRhIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljX3BsYW5lLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21pY19wbGFuZS5jCj4gQEAgLTI2 OCw3ICsyNjgsNyBAQCB2b2lkIGludGVsX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgaW50ZWxfcGxhbmUg KnBsYW5lLAo+ICAJCQljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwK PiAgCQkJY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKPiAgewo+ IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJh c2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiAgCj4gIAl0cmFjZV9pbnRlbF91cGRhdGVfcGxhbmUoJnBs YW5lLT5iYXNlLCBjcnRjKTsKPiAgCXBsYW5lLT51cGRhdGVfcGxhbmUocGxhbmUsIGNydGNfc3Rh dGUsIHBsYW5lX3N0YXRlKTsKPiBAQCAtMjc4LDcgKzI3OCw3IEBAIHZvaWQgaW50ZWxfdXBkYXRl X3NsYXZlKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCj4gIAkJCWNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJCQljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVf c3RhdGUgKnBsYW5lX3N0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ICAKPiAgCXRy YWNlX2ludGVsX3VwZGF0ZV9wbGFuZSgmcGxhbmUtPmJhc2UsIGNydGMpOwo+ICAJcGxhbmUtPnVw ZGF0ZV9zbGF2ZShwbGFuZSwgY3J0Y19zdGF0ZSwgcGxhbmVfc3RhdGUpOwo+IEBAIC0yODcsNyAr Mjg3LDcgQEAgdm9pZCBpbnRlbF91cGRhdGVfc2xhdmUoc3RydWN0IGludGVsX3BsYW5lICpwbGFu ZSwKPiAgdm9pZCBpbnRlbF9kaXNhYmxlX3BsYW5lKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUs Cj4gIAkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgewo+ IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJh c2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiAgCj4gIAl0cmFjZV9pbnRlbF9kaXNhYmxlX3BsYW5lKCZw bGFuZS0+YmFzZSwgY3J0Yyk7Cj4gIAlwbGFuZS0+ZGlzYWJsZV9wbGFuZShwbGFuZSwgY3J0Y19z dGF0ZSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf YXVkaW8uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXVkaW8uYwo+IGlu ZGV4IDZhNThlOGFkODZmOC4uNTY4MGVlZDljNzFmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXVkaW8uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfYXVkaW8uYwo+IEBAIC01NTQsNyArNTU0LDcgQEAgc3RhdGljIHZv aWQgaWxrX2F1ZGlvX2NvZGVjX2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs Cj4gIAkJCQkgICAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm9sZF9jb25uX3N0 YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGVuY29kZXItPmJhc2UuZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50 ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiAgCWVu dW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKPiAgCWVudW0gcG9ydCBwb3J0ID0gZW5jb2Rlci0+ cG9ydDsKPiAgCXUzMiB0bXAsIGVsZHY7Cj4gQEAgLTYwMSw3ICs2MDEsNyBAQCBzdGF0aWMgdm9p ZCBpbGtfYXVkaW9fY29kZWNfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ ICAJCQkJICAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCj4g IHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rl ci0+YmFzZS5kZXYpOwo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiAgCXN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3IgPSBjb25uX3N0YXRlLT5jb25uZWN0b3I7Cj4gIAllbnVtIHBpcGUgcGlw ZSA9IGNydGMtPnBpcGU7Cj4gIAllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7Cj4gQEAg LTY5MSw3ICs2OTEsNyBAQCB2b2lkIGludGVsX2F1ZGlvX2NvZGVjX2VuYWJsZShzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gIAlzdHJ1Y3QgaTkxNV9hdWRp b19jb21wb25lbnQgKmFjb21wID0gZGV2X3ByaXYtPmF1ZGlvX2NvbXBvbmVudDsKPiAtCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMp Owo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUt PnVhcGkuY3J0Yyk7Cj4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gY29ubl9z dGF0ZS0+Y29ubmVjdG9yOwo+ICAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVz dGVkX21vZGUgPQo+ICAJCSZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwo+IEBAIC03NTIs NyArNzUyLDcgQEAgdm9pZCBpbnRlbF9hdWRpb19jb2RlY19kaXNhYmxlKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAgCXN0cnVjdCBpOTE1X2F1ZGlvX2Nv bXBvbmVudCAqYWNvbXAgPSBkZXZfcHJpdi0+YXVkaW9fY29tcG9uZW50Owo+IC0Jc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT5iYXNlLmNydGMp Owo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0 YXRlLT51YXBpLmNydGMpOwo+ICAJZW51bSBwb3J0IHBvcnQgPSBlbmNvZGVyLT5wb3J0Owo+ICAJ ZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9idy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9idy5jCj4gaW5kZXggMjJlODNmODU3ZGU4Li4zZjZlMjlmNjEzMjMgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9idy5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9idy5jCj4gQEAgLTI5Nyw3ICsyOTcs NyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGludGVsX2J3X2NydGNfbnVtX2FjdGl2ZV9wbGFuZXMo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdAo+ICAKPiAgc3RhdGljIHVuc2lnbmVkIGludCBp bnRlbF9id19jcnRjX2RhdGFfcmF0ZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiAgCXVuc2lnbmVkIGludCBkYXRh X3JhdGUgPSAwOwo+ICAJZW51bSBwbGFuZV9pZCBwbGFuZV9pZDsKPiAgCj4gQEAgLTMxOCw3ICsz MTgsNyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGludGVsX2J3X2NydGNfZGF0YV9yYXRlKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjXwo+ICB2b2lkIGludGVsX2J3X2NydGNfdXBk YXRlKHN0cnVjdCBpbnRlbF9id19zdGF0ZSAqYndfc3RhdGUsCj4gIAkJCSAgY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIHsKPiAtCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7 Cj4gIAo+ICAJYndfc3RhdGUtPmRhdGFfcmF0ZVtjcnRjLT5waXBlXSA9Cj4gIAkJaW50ZWxfYndf Y3J0Y19kYXRhX3JhdGUoY3J0Y19zdGF0ZSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfY2RjbGsuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfY2RjbGsuYwo+IGluZGV4IGZkMWVkMGZiODc0OC4uOTMxZjE5ZGJkNGRkIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY2RjbGsuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY2RjbGsuYwo+IEBAIC0xOTAy LDcgKzE5MDIsNyBAQCBpbnRlbF9zZXRfY2RjbGtfcG9zdF9wbGFuZV91cGRhdGUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAKPiAgc3RhdGljIGludCBpbnRlbF9waXhlbF9y YXRlX3RvX2NkY2xrKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ ICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNf c3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwo+ICAJaW50IHBpeGVs X3JhdGUgPSBjcnRjX3N0YXRlLT5waXhlbF9yYXRlOwo+ICAKPiAgCWlmIChJTlRFTF9HRU4oZGV2 X3ByaXYpID49IDEwIHx8IElTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKQo+IEBAIC0xOTIxLDcgKzE5 MjEsNyBAQCBzdGF0aWMgaW50IGludGVsX3BpeGVsX3JhdGVfdG9fY2RjbGsoY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIGludCBpbnRlbF9jcnRjX2NvbXB1dGVf bWluX2NkY2xrKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7 Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPQo+IC0JCXRvX2k5MTUoY3J0 Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOwo+ICsJCXRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5j cnRjLT5kZXYpOwo+ICAJaW50IG1pbl9jZGNsazsKPiAgCj4gIAlpZiAoIWNydGNfc3RhdGUtPmh3 LmVuYWJsZSkKPiBAQCAtMjI2MSwxMCArMjI2MSwxMCBAQCBzdGF0aWMgaW50IGludGVsX21vZGVz ZXRfYWxsX3BpcGVzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICAJCQlyZXR1 cm4gUFRSX0VSUihjcnRjX3N0YXRlKTsKPiAgCj4gIAkJaWYgKCFjcnRjX3N0YXRlLT5ody5hY3Rp dmUgfHwKPiAtCQkgICAgZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQoJmNydGNfc3RhdGUt PmJhc2UpKQo+ICsJCSAgICBkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNldCgmY3J0Y19zdGF0 ZS0+dWFwaSkpCj4gIAkJCWNvbnRpbnVlOwo+ICAKPiAtCQljcnRjX3N0YXRlLT5iYXNlLm1vZGVf Y2hhbmdlZCA9IHRydWU7Cj4gKwkJY3J0Y19zdGF0ZS0+dWFwaS5tb2RlX2NoYW5nZWQgPSB0cnVl Owo+ICAKPiAgCQlyZXQgPSBkcm1fYXRvbWljX2FkZF9hZmZlY3RlZF9jb25uZWN0b3JzKCZzdGF0 ZS0+YmFzZSwKPiAgCQkJCQkJCSAmY3J0Yy0+YmFzZSk7Cj4gQEAgLTIzMzAsNyArMjMzMCw3IEBA IGludCBpbnRlbF9tb2Rlc2V0X2NhbGNfY2RjbGsoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAq c3RhdGUpCj4gIAkJY3J0YyA9IGludGVsX2dldF9jcnRjX2Zvcl9waXBlKGRldl9wcml2LCBwaXBl KTsKPiAgCQljcnRjX3N0YXRlID0gaW50ZWxfYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShzdGF0 ZSwgY3J0Yyk7Cj4gIAkJaWYgKGNydGNfc3RhdGUgJiYKPiAtCQkgICAgZHJtX2F0b21pY19jcnRj X25lZWRzX21vZGVzZXQoJmNydGNfc3RhdGUtPmJhc2UpKQo+ICsJCSAgICBkcm1fYXRvbWljX2Ny dGNfbmVlZHNfbW9kZXNldCgmY3J0Y19zdGF0ZS0+dWFwaSkpCj4gIAkJCXBpcGUgPSBJTlZBTElE X1BJUEU7Cj4gIAl9IGVsc2Ugewo+ICAJCXBpcGUgPSBJTlZBTElEX1BJUEU7Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY29sb3IuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY29sb3IuYwo+IGluZGV4IDY1ZTFiMThiZDdlMy4u NTI3MTJiYjllZDE1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfY29sb3IuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf Y29sb3IuYwo+IEBAIC0yMDUsNyArMjA1LDcgQEAgc3RhdGljIHZvaWQgaWNsX3VwZGF0ZV9vdXRw dXRfY3NjKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAKPiAgc3RhdGljIGJvb2wgaWxrX2Nz Y19saW1pdGVkX3JhbmdlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl KQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNy dGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwo+ICAKPiAgCS8q Cj4gIAkgKiBGSVhNRSBpZiB0aGVyZSdzIGEgZ2FtbWEgTFVUIGFmdGVyIHRoZSBDU0MsIHdlIHNo b3VsZAo+IEBAIC0yNzAsNyArMjcwLDcgQEAgc3RhdGljIHZvaWQgaWxrX2NzY19jb252ZXJ0X2N0 bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCj4gIHN0YXRp YyB2b2lkIGlsa19sb2FkX2NzY19tYXRyaXgoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUpCj4gIHsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMg PSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKPiAgCWJvb2wg bGltaXRlZF9jb2xvcl9yYW5nZSA9IGlsa19jc2NfbGltaXRlZF9yYW5nZShjcnRjX3N0YXRlKTsK PiAgCj4gQEAgLTMwOSw3ICszMDksNyBAQCBzdGF0aWMgdm9pZCBpbGtfbG9hZF9jc2NfbWF0cml4 KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICAKPiAgc3RhdGlj IHZvaWQgaWNsX2xvYWRfY3NjX21hdHJpeChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9 IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiAgCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ICAKPiAgCWlm IChjcnRjX3N0YXRlLT5ody5jdG0pIHsKPiBAQCAtMzM4LDcgKzMzOCw3IEBAIHN0YXRpYyB2b2lk IGljbF9sb2FkX2NzY19tYXRyaXgoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUpCj4gICAqLwo+ICBzdGF0aWMgdm9pZCBjaGVycnl2aWV3X2xvYWRfY3NjX21hdHJpeChj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgewo+IC0Jc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7 Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+ dWFwaS5jcnRjKTsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ICAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ICAK PiBAQCAtNDA0LDcgKzQwNCw3IEBAIHN0YXRpYyB1MzIgaWxrX2x1dF8xMChjb25zdCBzdHJ1Y3Qg ZHJtX2NvbG9yX2x1dCAqY29sb3IpCj4gIHN0YXRpYyB2b2lkIGk5eHhfbG9hZF9sdXRzX2ludGVy bmFsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJCQkJICAg IGNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqYmxvYikKPiAgewo+IC0Jc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4g KwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFw aS5jcnRjKTsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo Y3J0Yy0+YmFzZS5kZXYpOwo+ICAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ICAJaW50 IGk7Cj4gQEAgLTQ0MCw3ICs0NDAsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X2xvYWRfbHV0cyhjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgCj4gIHN0YXRpYyB2b2lk IGk5eHhfY29sb3JfY29tbWl0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50 ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4gIAllbnVtIHBpcGUgcGlw ZSA9IGNydGMtPnBpcGU7Cj4gIAl1MzIgdmFsOwo+IEBAIC00NTMsNyArNDUzLDcgQEAgc3RhdGlj IHZvaWQgaTl4eF9jb2xvcl9jb21taXQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUpCj4gIAo+ICBzdGF0aWMgdm9pZCBpbGtfY29sb3JfY29tbWl0KGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMp Owo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5i YXNlLmRldik7Cj4gIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4gIAl1MzIgdmFsOwo+ IEBAIC00NjgsNyArNDY4LDcgQEAgc3RhdGljIHZvaWQgaWxrX2NvbG9yX2NvbW1pdChjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgCj4gIHN0YXRpYyB2b2lkIGhz d19jb2xvcl9jb21taXQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp Cj4gIHsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0 YXRlLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKPiAgCj4gIAlJOTE1X1dSSVRFKEdB TU1BX01PREUoY3J0Yy0+cGlwZSksIGNydGNfc3RhdGUtPmdhbW1hX21vZGUpOwo+IEBAIC00Nzgs NyArNDc4LDcgQEAgc3RhdGljIHZvaWQgaHN3X2NvbG9yX2NvbW1pdChjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgCj4gIHN0YXRpYyB2b2lkIHNrbF9jb2xvcl9j b21taXQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIHsKPiAt CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNl LmNydGMpOwo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNf c3RhdGUtPnVhcGkuY3J0Yyk7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKPiAgCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlw ZTsKPiAgCXUzMiB2YWwgPSAwOwo+IEBAIC01MjQsNyArNTI0LDcgQEAgc3RhdGljIHZvaWQgaTk2 NV9sb2FkX2x1dF8xMHA2KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAKPiAgc3RhdGljIHZv aWQgaTk2NV9sb2FkX2x1dHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUpCj4gIHsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gIAljb25zdCBzdHJ1Y3QgZHJtX3Byb3Bl cnR5X2Jsb2IgKmdhbW1hX2x1dCA9IGNydGNfc3RhdGUtPmh3LmdhbW1hX2x1dDsKPiAgCj4gIAlp ZiAoY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSA9PSBHQU1NQV9NT0RFX01PREVfOEJJVCkKPiBAQCAt NTQ3LDcgKzU0Nyw3IEBAIHN0YXRpYyB2b2lkIGlsa19sb2FkX2x1dF8xMChzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YywKPiAgCj4gIHN0YXRpYyB2b2lkIGlsa19sb2FkX2x1dHMoY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIHsKPiAtCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7 Cj4gIAljb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmdhbW1hX2x1dCA9IGNydGNfc3Rh dGUtPmh3LmdhbW1hX2x1dDsKPiAgCj4gIAlpZiAoY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSA9PSBH QU1NQV9NT0RFX01PREVfOEJJVCkKPiBAQCAtNjU0LDcgKzY1NCw3IEBAIHN0YXRpYyB2b2lkIGl2 Yl9sb2FkX2x1dF9leHRfbWF4KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+ICAKPiAgc3RhdGlj IHZvaWQgaXZiX2xvYWRfbHV0cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKPiAgewo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2lu dGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiAgCWNvbnN0IHN0cnVjdCBkcm1fcHJv cGVydHlfYmxvYiAqZ2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+aHcuZ2FtbWFfbHV0Owo+ICAJY29u c3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpkZWdhbW1hX2x1dCA9IGNydGNfc3RhdGUtPmh3 LmRlZ2FtbWFfbHV0Owo+ICAKPiBAQCAtNjc3LDcgKzY3Nyw3IEBAIHN0YXRpYyB2b2lkIGl2Yl9s b2FkX2x1dHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIAo+ ICBzdGF0aWMgdm9pZCBiZHdfbG9hZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj ID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ICAJY29uc3Qgc3RydWN0 IGRybV9wcm9wZXJ0eV9ibG9iICpnYW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5ody5nYW1tYV9sdXQ7 Cj4gIAljb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmRlZ2FtbWFfbHV0ID0gY3J0Y19z dGF0ZS0+aHcuZGVnYW1tYV9sdXQ7Cj4gIAo+IEBAIC03MDAsNyArNzAwLDcgQEAgc3RhdGljIHZv aWQgYmR3X2xvYWRfbHV0cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSkKPiAgCj4gIHN0YXRpYyB2b2lkIGdsa19sb2FkX2RlZ2FtbWFfbHV0KGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNl LmRldik7Cj4gIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4gIAljb25zdCB1MzIgbHV0 X3NpemUgPSBJTlRFTF9JTkZPKGRldl9wcml2KS0+Y29sb3IuZGVnYW1tYV9sdXRfc2l6ZTsKPiBA QCAtNzM5LDcgKzczOSw3IEBAIHN0YXRpYyB2b2lkIGdsa19sb2FkX2RlZ2FtbWFfbHV0KGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICAKPiAgc3RhdGljIHZvaWQg Z2xrX2xvYWRfZGVnYW1tYV9sdXRfbGluZWFyKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj ID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ICAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4gIAllbnVt IHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4gIAljb25zdCB1MzIgbHV0X3NpemUgPSBJTlRFTF9J TkZPKGRldl9wcml2KS0+Y29sb3IuZGVnYW1tYV9sdXRfc2l6ZTsKPiBAQCAtNzY3LDcgKzc2Nyw3 IEBAIHN0YXRpYyB2b2lkIGdsa19sb2FkX2RlZ2FtbWFfbHV0X2xpbmVhcihjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0Cj4gIHN0YXRpYyB2b2lkIGdsa19sb2FkX2x1dHMo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIHsKPiAgCWNvbnN0 IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZ2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+aHcuZ2Ft bWFfbHV0Owo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNf c3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiAgCj4gIAkvKgo+ICAJICogT24gR0xLKyBi b3RoIHBpcGUgQ1NDIGFuZCBkZWdhbW1hIExVVCBhcmUgY29udHJvbGxlZAo+IEBAIC04MDgsNyAr ODA4LDcgQEAgc3RhdGljIHZvaWQKPiAgaWNsX2xvYWRfZ2NtYXgoY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAkgICAgICAgY29uc3Qgc3RydWN0IGRybV9jb2xv cl9sdXQgKmNvbG9yKQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj ID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ICAJc3RydWN0IGludGVs X2RzYiAqZHNiID0gaW50ZWxfZHNiX2dldChjcnRjKTsKPiAgCWVudW0gcGlwZSBwaXBlID0gY3J0 Yy0+cGlwZTsKPiAgCj4gQEAgLTgyMiw3ICs4MjIsNyBAQCBpY2xfbG9hZF9nY21heChjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgc3RhdGljIHZvaWQKPiAgaWNs X3Byb2dyYW1fZ2FtbWFfc3VwZXJmaW5lX3NlZ21lbnQoY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUpCj4gIHsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gIAljb25zdCBz dHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmJsb2IgPSBjcnRjX3N0YXRlLT5ody5nYW1tYV9sdXQ7 Cj4gIAljb25zdCBzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAqbHV0ID0gYmxvYi0+ZGF0YTsKPiAgCXN0 cnVjdCBpbnRlbF9kc2IgKmRzYiA9IGludGVsX2RzYl9nZXQoY3J0Yyk7Cj4gQEAgLTg1NCw3ICs4 NTQsNyBAQCBpY2xfcHJvZ3JhbV9nYW1tYV9zdXBlcmZpbmVfc2VnbWVudChjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgc3RhdGljIHZvaWQKPiAgaWNsX3Byb2dy YW1fZ2FtbWFfbXVsdGlfc2VnbWVudChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiAgCWNvbnN0IHN0cnVjdCBkcm1f cHJvcGVydHlfYmxvYiAqYmxvYiA9IGNydGNfc3RhdGUtPmh3LmdhbW1hX2x1dDsKPiAgCWNvbnN0 IHN0cnVjdCBkcm1fY29sb3JfbHV0ICpsdXQgPSBibG9iLT5kYXRhOwo+ICAJY29uc3Qgc3RydWN0 IGRybV9jb2xvcl9sdXQgKmVudHJ5Owo+IEBAIC05MTEsNyArOTExLDcgQEAgaWNsX3Byb2dyYW1f Z2FtbWFfbXVsdGlfc2VnbWVudChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKPiAgc3RhdGljIHZvaWQgaWNsX2xvYWRfbHV0cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgewo+ICAJY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9i bG9iICpnYW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5ody5nYW1tYV9sdXQ7Cj4gLQlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiAr CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBp LmNydGMpOwo+ICAJc3RydWN0IGludGVsX2RzYiAqZHNiID0gaW50ZWxfZHNiX2dldChjcnRjKTsK PiAgCj4gIAlpZiAoY3J0Y19zdGF0ZS0+aHcuZGVnYW1tYV9sdXQpCj4gQEAgLTk5MCw3ICs5OTAs NyBAQCBzdGF0aWMgdm9pZCBjaHZfbG9hZF9jZ21fZ2FtbWEoc3RydWN0IGludGVsX2NydGMgKmNy dGMsCj4gIAo+ICBzdGF0aWMgdm9pZCBjaHZfbG9hZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9 IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ICAJY29u c3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpnYW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5ody5n YW1tYV9sdXQ7Cj4gIAljb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmRlZ2FtbWFfbHV0 ID0gY3J0Y19zdGF0ZS0+aHcuZGVnYW1tYV9sdXQ7Cj4gIAo+IEBAIC0xMDEwLDI4ICsxMDEwLDI4 IEBAIHN0YXRpYyB2b2lkIGNodl9sb2FkX2x1dHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCj4gIAo+ICB2b2lkIGludGVsX2NvbG9yX2xvYWRfbHV0cyhjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRl dik7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNf c3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKPiAgCj4gIAlkZXZfcHJpdi0+ZGlzcGxheS5sb2FkX2x1 dHMoY3J0Y19zdGF0ZSk7Cj4gIH0KPiAgCj4gIHZvaWQgaW50ZWxfY29sb3JfY29tbWl0KGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ ZGV2KTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0 Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwo+ICAKPiAgCWRldl9wcml2LT5kaXNwbGF5LmNvbG9y X2NvbW1pdChjcnRjX3N0YXRlKTsKPiAgfQo+ICAKPiAgaW50IGludGVsX2NvbG9yX2NoZWNrKHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2 KTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19z dGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwo+ICAKPiAgCXJldHVybiBkZXZfcHJpdi0+ZGlzcGxheS5j b2xvcl9jaGVjayhjcnRjX3N0YXRlKTsKPiAgfQo+ICAKPiAgdm9pZCBpbnRlbF9jb2xvcl9nZXRf Y29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7Cj4gLQlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2Uu Y3J0Yy0+ZGV2KTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwo+ICAKPiAgCWlmIChkZXZfcHJpdi0+ZGlz cGxheS5yZWFkX2x1dHMpCj4gIAkJZGV2X3ByaXYtPmRpc3BsYXkucmVhZF9sdXRzKGNydGNfc3Rh dGUpOwo+IEBAIC0xMDU1LDE2ICsxMDU1LDE2IEBAIHN0YXRpYyBib29sIG5lZWRfcGxhbmVfdXBk YXRlKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCj4gIHN0YXRpYyBpbnQKPiAgaW50ZWxfY29s b3JfYWRkX2FmZmVjdGVkX3BsYW5lcyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNf c3RhdGUpCj4gIHsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhu ZXdfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0g dG9faW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiAgCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ICAJc3Ry dWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUgPQo+IC0JCXRvX2ludGVsX2F0b21pY19zdGF0 ZShuZXdfY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZSk7Cj4gKwkJdG9faW50ZWxfYXRvbWljX3N0YXRl KG5ld19jcnRjX3N0YXRlLT51YXBpLnN0YXRlKTsKPiAgCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpvbGRfY3J0Y19zdGF0ZSA9Cj4gIAkJaW50ZWxfYXRvbWljX2dldF9vbGRfY3J0Y19z dGF0ZShzdGF0ZSwgY3J0Yyk7Cj4gIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lOwo+ICAKPiAg CWlmICghbmV3X2NydGNfc3RhdGUtPmh3LmFjdGl2ZSB8fAo+IC0JICAgIGRybV9hdG9taWNfY3J0 Y19uZWVkc19tb2Rlc2V0KCZuZXdfY3J0Y19zdGF0ZS0+YmFzZSkpCj4gKwkgICAgZHJtX2F0b21p Y19jcnRjX25lZWRzX21vZGVzZXQoJm5ld19jcnRjX3N0YXRlLT51YXBpKSkKPiAgCQlyZXR1cm4g MDsKPiAgCj4gIAlpZiAobmV3X2NydGNfc3RhdGUtPmdhbW1hX2VuYWJsZSA9PSBvbGRfY3J0Y19z dGF0ZS0+Z2FtbWFfZW5hYmxlICYmCj4gQEAgLTExMDcsNyArMTEwNyw3IEBAIHN0YXRpYyBpbnQg Y2hlY2tfbHV0X3NpemUoY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpsdXQsIGludCBl eHBlY3RlZCkKPiAgCj4gIHN0YXRpYyBpbnQgY2hlY2tfbHV0cyhjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7Cj4gKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGku Y3J0Yy0+ZGV2KTsKPiAgCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZ2FtbWFfbHV0 ID0gY3J0Y19zdGF0ZS0+aHcuZ2FtbWFfbHV0Owo+ICAJY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0 eV9ibG9iICpkZWdhbW1hX2x1dCA9IGNydGNfc3RhdGUtPmh3LmRlZ2FtbWFfbHV0Owo+ICAJaW50 IGdhbW1hX2xlbmd0aCwgZGVnYW1tYV9sZW5ndGg7Cj4gQEAgLTE0ODAsNyArMTQ4MCw3IEBAIHN0 YXRpYyBpbnQgZ2xrX2dhbW1hX3ByZWNpc2lvbihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKPiAgCj4gIGludCBpbnRlbF9jb2xvcl9nZXRfZ2FtbWFfYml0X3ByZWNp c2lvbihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgewo+IC0J c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2Uu Y3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+dWFwaS5jcnRjKTsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ICAKPiAgCWlmIChIQVNfR01DSChkZXZfcHJpdikp IHsKPiBAQCAtMTU4Niw3ICsxNTg2LDcgQEAgc3RhdGljIHUzMiBpbnRlbF9jb2xvcl9sdXRfcGFj ayh1MzIgdmFsLCB1MzIgYml0X3ByZWNpc2lvbikKPiAgc3RhdGljIHN0cnVjdCBkcm1fcHJvcGVy dHlfYmxvYiAqCj4gIGk5eHhfcmVhZF9sdXRfOChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiAgCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ICAJZW51 bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ICAJc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpi bG9iOwo+IEBAIC0xNjI5LDcgKzE2MjksNyBAQCBzdGF0aWMgdm9pZCBpOXh4X3JlYWRfbHV0cyhz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgc3RhdGljIHN0cnVjdCBkcm1f cHJvcGVydHlfYmxvYiAqCj4gIGk5NjVfcmVhZF9sdXRfMTBwNihjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGMg PSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiAgCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYp Owo+ICAJdTMyIGx1dF9zaXplID0gSU5URUxfSU5GTyhkZXZfcHJpdiktPmNvbG9yLmdhbW1hX2x1 dF9zaXplOwo+ICAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+IEBAIC0xNjgxLDcgKzE2 ODEsNyBAQCBzdGF0aWMgdm9pZCBpOTY1X3JlYWRfbHV0cyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKPiAgc3RhdGljIHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqCj4gIGNo dl9yZWFkX2NnbV9sdXQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp Cj4gIHsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0 YXRlLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKPiAgCXUzMiBsdXRfc2l6ZSA9IElO VEVMX0lORk8oZGV2X3ByaXYpLT5jb2xvci5nYW1tYV9sdXRfc2l6ZTsKPiAgCWVudW0gcGlwZSBw aXBlID0gY3J0Yy0+cGlwZTsKPiBAQCAtMTcyMyw3ICsxNzIzLDcgQEAgc3RhdGljIHZvaWQgY2h2 X3JlYWRfbHV0cyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgc3RhdGlj IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqCj4gIGlsa19yZWFkX2x1dF8xMChjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRj KTsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ YmFzZS5kZXYpOwo+ICAJdTMyIGx1dF9zaXplID0gSU5URUxfSU5GTyhkZXZfcHJpdiktPmNvbG9y LmdhbW1hX2x1dF9zaXplOwo+ICAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+IEBAIC0x NzcwLDcgKzE3NzAsNyBAQCBzdGF0aWMgdm9pZCBpbGtfcmVhZF9sdXRzKHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICBzdGF0aWMgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9i ICoKPiAgZ2xrX3JlYWRfbHV0XzEwKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlLCB1MzIgcHJlY19pbmRleCkKPiAgewo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGMg PSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiAgCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYp Owo+ICAJaW50IGh3X2x1dF9zaXplID0gaXZiX2x1dF8xMF9zaXplKHByZWNfaW5kZXgpOwo+ICAJ ZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2NydC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9jcnQuYwo+IGluZGV4IDM5OWFiYzNkNTIxZS4uMTY0YWYxOTM2ZDM4IDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY3J0LmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NydC5jCj4gQEAgLTE2MSw3ICsxNjEs NyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jcnRfc2V0X2RwbXMoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICAJc3RydWN0IGludGVsX2NydCAqY3J0ID0gaW50 ZWxfZW5jb2Rlcl90b19jcnQoZW5jb2Rlcik7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9 IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ICAJY29u c3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmY3J0Y19zdGF0ZS0+ aHcuYWRqdXN0ZWRfbW9kZTsKPiAgCXUzMiBhZHBhOwo+ICAKPiBAQCAtMjcxLDcgKzI3MSw3IEBA IHN0YXRpYyB2b2lkIGhzd19wcmVfZW5hYmxlX2NydChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKPiAgCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25u X3N0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gIAllbnVtIHBp cGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4gIAo+ICAJV0FSTl9PTighY3J0Y19zdGF0ZS0+aGFzX3Bj aF9lbmNvZGVyKTsKPiBAQCAtMjg4LDcgKzI4OCw3IEBAIHN0YXRpYyB2b2lkIGhzd19lbmFibGVf Y3J0KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkgICBjb25zdCBzdHJ1Y3Qg ZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gLQlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRj KTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRl LT51YXBpLmNydGMpOwo+ICAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ICAKPiAgCVdB Uk5fT04oIWNydGNfc3RhdGUtPmhhc19wY2hfZW5jb2Rlcik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2RkaS5jCj4gaW5kZXggYzg2MzliOTJhNmRhLi4xYjlmNjhkNGM1NjYg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMKPiBAQCAtMTc0 NCw3ICsxNzQ0LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX2Nsb2NrX2dldChzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgdm9pZCBpbnRlbF9kZGlfc2V0X2RwX21zYShjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQkJICBjb25zdCBzdHJ1Y3Qg ZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRj KTsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ YmFzZS5kZXYpOwo+ICAJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0gY3J0Y19zdGF0 ZS0+Y3B1X3RyYW5zY29kZXI7Cj4gIAl1MzIgdGVtcDsKPiBAQCAtMTgwNiw3ICsxODA2LDcgQEAg dm9pZCBpbnRlbF9kZGlfc2V0X2RwX21zYShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSwKPiAgdm9pZCBpbnRlbF9kZGlfc2V0X3ZjX3BheWxvYWRfYWxsb2MoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAkJCQkgICAgYm9vbCBzdGF0 ZSkKPiAgewo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNf c3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ICAJZW51bSB0cmFuc2NvZGVy IGNwdV90cmFuc2NvZGVyID0gY3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29kZXI7Cj4gIAl1MzIgdGVt cDsKPiBAQCAtMTgyOCw3ICsxODI4LDcgQEAgdm9pZCBpbnRlbF9kZGlfc2V0X3ZjX3BheWxvYWRf YWxsb2MoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIHN0YXRp YyB1MzIKPiAgaW50ZWxfZGRpX3RyYW5zY29kZXJfZnVuY19yZWdfdmFsX2dldChjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRj KTsKPiAgCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0gaW50ZWxfZGRpX2dldF9jcnRj X2VuY29kZXIoY3J0Yyk7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKPiAgCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsK PiBAQCAtMTkxNSw3ICsxOTE1LDcgQEAgaW50ZWxfZGRpX3RyYW5zY29kZXJfZnVuY19yZWdfdmFs X2dldChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgCj4gIHZv aWQgaW50ZWxfZGRpX2VuYWJsZV90cmFuc2NvZGVyX2Z1bmMoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIHsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsK PiAgCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IGNydGNfc3RhdGUtPmNwdV90cmFu c2NvZGVyOwo+ICAJdTMyIHRlbXA7Cj4gQEAgLTE5MzEsNyArMTkzMSw3IEBAIHZvaWQgaW50ZWxf ZGRpX2VuYWJsZV90cmFuc2NvZGVyX2Z1bmMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUpCj4gIHN0YXRpYyB2b2lkCj4gIGludGVsX2RkaV9jb25maWdfdHJhbnNjb2Rl cl9mdW5jKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7Cj4g LQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFz ZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT51YXBpLmNydGMpOwo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4gIAllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5z Y29kZXIgPSBjcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcjsKPiAgCXUzMiB0ZW1wOwo+IEBAIC0x OTQzLDcgKzE5NDMsNyBAQCBpbnRlbF9kZGlfY29uZmlnX3RyYW5zY29kZXJfZnVuYyhjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgCj4gIHZvaWQgaW50ZWxfZGRp X2Rpc2FibGVfdHJhbnNjb2Rlcl9mdW5jKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ICAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4gIAllbnVtIHRy YW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBjcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcjsKPiAg CWk5MTVfcmVnX3QgcmVnID0gVFJBTlNfRERJX0ZVTkNfQ1RMKGNwdV90cmFuc2NvZGVyKTsKPiBA QCAtMjI0MSw3ICsyMjQxLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX2dldF9wb3dlcl9kb21h aW5zKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAKPiAgdm9pZCBpbnRlbF9kZGlf ZW5hYmxlX3BpcGVfY2xvY2soY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUpCj4gIHsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyID0gaW50ZWxfZGRpX2dldF9jcnRjX2VuY29kZXIoY3J0Yyk7Cj4gIAll bnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7Cj4gQEAgLTIyNTksNyArMjI1OSw3IEBAIHZv aWQgaW50ZWxfZGRpX2VuYWJsZV9waXBlX2Nsb2NrKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlKQo+ICAKPiAgdm9pZCBpbnRlbF9kZGlfZGlzYWJsZV9waXBlX2Nsb2Nr KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7Cj4gLQlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2Uu Y3J0Yy0+ZGV2KTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwo+ICAJZW51bSB0cmFuc2NvZGVyIGNwdV90 cmFuc2NvZGVyID0gY3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29kZXI7Cj4gIAo+ICAJaWYgKGNwdV90 cmFuc2NvZGVyICE9IFRSQU5TQ09ERVJfRURQKSB7Cj4gQEAgLTMzMzcsNyArMzMzNyw3IEBAIHN0 YXRpYyB2b2lkIGludGVsX2RkaV9kaXNhYmxlX2ZlY19zdGF0ZShzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKPiAgc3RhdGljIHZvaWQKPiAgdGdsX2NsZWFyX3BzcjJfdHJhbnNjb2Rlcl9l eGl0bGluZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlKQo+ICB7Cj4gLQlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNzdGF0ZS0+YmFzZS5j cnRjLT5kZXYpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShjc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKPiAgCXUzMiB2YWw7Cj4gIAo+ICAJaWYgKCFjc3Rh dGUtPmRjM2NvX2V4aXRsaW5lKQo+IEBAIC0zMzUyLDcgKzMzNTIsNyBAQCBzdGF0aWMgdm9pZAo+ ICB0Z2xfc2V0X3BzcjJfdHJhbnNjb2Rlcl9leGl0bGluZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3N0YXRlKQo+ICB7Cj4gIAl1MzIgdmFsLCBleGl0X3NjYW5saW5lczsKPiAtCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3N0YXRlLT5iYXNlLmNy dGMtPmRldik7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGNzdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwo+ICAKPiAgCWlmICghY3N0YXRlLT5kYzNjb19leGl0 bGluZSkKPiAgCQlyZXR1cm47Cj4gQEAgLTMzNzAsNyArMzM3MCw3IEBAIHN0YXRpYyB2b2lkIHRn bF9kYzNjb19leGl0bGluZV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKPiAgCQkJCQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlKQo+ICB7 Cj4gIAl1MzIgZXhpdF9zY2FubGluZXM7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGNzdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOwo+ICsJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsK PiAgCXUzMiBjcnRjX3ZkaXNwbGF5ID0gY3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfdmRp c3BsYXk7Cj4gIAo+ICAJY3N0YXRlLT5kYzNjb19leGl0bGluZSA9IDA7Cj4gQEAgLTMzNzksNyAr MzM3OSw3IEBAIHN0YXRpYyB2b2lkIHRnbF9kYzNjb19leGl0bGluZV9jb21wdXRlX2NvbmZpZyhz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCQlyZXR1cm47Cj4gIAo+ICAJLyogQi5T cGVjczo0OTE5NiBEQzNDTyBvbmx5IHdvcmtzIHdpdGggcGlwZUEgYW5kIERESUEuKi8KPiAtCWlm ICh0b19pbnRlbF9jcnRjKGNzdGF0ZS0+YmFzZS5jcnRjKS0+cGlwZSAhPSBQSVBFX0EgfHwKPiAr CWlmICh0b19pbnRlbF9jcnRjKGNzdGF0ZS0+dWFwaS5jcnRjKS0+cGlwZSAhPSBQSVBFX0EgfHwK PiAgCSAgICBlbmNvZGVyLT5wb3J0ICE9IFBPUlRfQSkKPiAgCQlyZXR1cm47Cj4gIAo+IEBAIC0z NDAzLDcgKzM0MDMsNyBAQCBzdGF0aWMgdm9pZCB0Z2xfZGMzY29fZXhpdGxpbmVfY29tcHV0ZV9j b25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIHN0YXRpYyB2b2lkIHRnbF9k YzNjb19leGl0bGluZV9nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQo+ICB7Cj4gIAl1MzIgdmFsOwo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7Cj4gKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ ZGV2KTsKPiAgCj4gIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDEyKQo+ICAJCXJldHVybjsK PiBAQCAtMzY0OSw3ICszNjQ5LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3ByZV9lbmFibGUo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCQkgY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAkJCQkgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0 b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCj4gIHsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsK PiAgCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKPiAgCj4gQEAgLTQyMDYsNyArNDIwNiw3 IEBAIHZvaWQgaW50ZWxfZGRpX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsCj4gIAkJCSAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQo+ICB7Cj4g IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJh c2UuZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0 YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9j cnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRjKTsKPiAgCWVudW0gdHJh bnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IHBpcGVfY29uZmlnLT5jcHVfdHJhbnNjb2RlcjsKPiAg CXUzMiB0ZW1wLCBmbGFncyA9IDA7Cj4gIAo+IEBAIC00MzczLDcgKzQzNzMsNyBAQCBzdGF0aWMg aW50IGludGVsX2RkaV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKPiAgCQkJCSAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gIAkJ CQkgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCj4gIHsKPiAtCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5j cnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2Nv bmZpZy0+dWFwaS5jcnRjKTsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICAJZW51bSBwb3J0IHBvcnQgPSBlbmNvZGVy LT5wb3J0Owo+ICAJaW50IHJldDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2Rpc3BsYXkuYwo+IGluZGV4IDMxMDZhYWY1NWYxNy4uMDZjNTkzZDU2ZDkyIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtNTE2 LDcgKzUxNiw3IEBAIGljbF93YV9zY2FsZXJjbGtnYXRpbmcoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LCBlbnVtIHBpcGUgcGlwZSwKPiAgc3RhdGljIGJvb2wKPiAgbmVlZHNfbW9k ZXNldChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqc3RhdGUpCj4gIHsKPiAtCXJldHVy biBkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNldCgmc3RhdGUtPmJhc2UpOwo+ICsJcmV0dXJu IGRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KCZzdGF0ZS0+dWFwaSk7Cj4gIH0KPiAgCj4g IC8qCj4gQEAgLTYzMCw3ICs2MzAsNyBAQCBpOXh4X3NlbGVjdF9wMl9kaXYoY29uc3Qgc3RydWN0 IGludGVsX2xpbWl0ICpsaW1pdCwKPiAgCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSwKPiAgCQkgICBpbnQgdGFyZ2V0KQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2 KTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19z dGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwo+ICAKPiAgCWlmIChpbnRlbF9jcnRjX2hhc190eXBlKGNy dGNfc3RhdGUsIElOVEVMX09VVFBVVF9MVkRTKSkgewo+ICAJCS8qCj4gQEAgLTY2Niw3ICs2NjYs NyBAQCBpOXh4X2ZpbmRfYmVzdF9kcGxsKGNvbnN0IHN0cnVjdCBpbnRlbF9saW1pdCAqbGltaXQs Cj4gIAkJICAgIGludCB0YXJnZXQsIGludCByZWZjbGssIHN0cnVjdCBkcGxsICptYXRjaF9jbG9j aywKPiAgCQkgICAgc3RydWN0IGRwbGwgKmJlc3RfY2xvY2spCj4gIHsKPiAtCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldjsKPiArCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBjcnRjX3N0YXRlLT51YXBpLmNydGMtPmRldjsKPiAgCXN0cnVjdCBkcGxs IGNsb2NrOwo+ICAJaW50IGVyciA9IHRhcmdldDsKPiAgCj4gQEAgLTcyNCw3ICs3MjQsNyBAQCBw bnZfZmluZF9iZXN0X2RwbGwoY29uc3Qgc3RydWN0IGludGVsX2xpbWl0ICpsaW1pdCwKPiAgCQkg ICBpbnQgdGFyZ2V0LCBpbnQgcmVmY2xrLCBzdHJ1Y3QgZHBsbCAqbWF0Y2hfY2xvY2ssCj4gIAkJ ICAgc3RydWN0IGRwbGwgKmJlc3RfY2xvY2spCj4gIHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldjsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBjcnRjX3N0YXRlLT51YXBpLmNydGMtPmRldjsKPiAgCXN0cnVjdCBkcGxsIGNsb2NrOwo+ ICAJaW50IGVyciA9IHRhcmdldDsKPiAgCj4gQEAgLTc4MCw3ICs3ODAsNyBAQCBnNHhfZmluZF9i ZXN0X2RwbGwoY29uc3Qgc3RydWN0IGludGVsX2xpbWl0ICpsaW1pdCwKPiAgCQkgICBpbnQgdGFy Z2V0LCBpbnQgcmVmY2xrLCBzdHJ1Y3QgZHBsbCAqbWF0Y2hfY2xvY2ssCj4gIAkJICAgc3RydWN0 IGRwbGwgKmJlc3RfY2xvY2spCj4gIHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRj X3N0YXRlLT5iYXNlLmNydGMtPmRldjsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRj X3N0YXRlLT51YXBpLmNydGMtPmRldjsKPiAgCXN0cnVjdCBkcGxsIGNsb2NrOwo+ICAJaW50IG1h eF9uOwo+ICAJYm9vbCBmb3VuZCA9IGZhbHNlOwo+IEBAIC04NzQsNyArODc0LDcgQEAgdmx2X2Zp bmRfYmVzdF9kcGxsKGNvbnN0IHN0cnVjdCBpbnRlbF9saW1pdCAqbGltaXQsCj4gIAkJICAgaW50 IHRhcmdldCwgaW50IHJlZmNsaywgc3RydWN0IGRwbGwgKm1hdGNoX2Nsb2NrLAo+ICAJCSAgIHN0 cnVjdCBkcGxsICpiZXN0X2Nsb2NrKQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9 IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ICAJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2Owo+ICAJc3RydWN0IGRwbGwgY2xv Y2s7Cj4gIAl1bnNpZ25lZCBpbnQgYmVzdHBwbSA9IDEwMDAwMDA7Cj4gQEAgLTkzNCw3ICs5MzQs NyBAQCBjaHZfZmluZF9iZXN0X2RwbGwoY29uc3Qgc3RydWN0IGludGVsX2xpbWl0ICpsaW1pdCwK PiAgCQkgICBpbnQgdGFyZ2V0LCBpbnQgcmVmY2xrLCBzdHJ1Y3QgZHBsbCAqbWF0Y2hfY2xvY2ss Cj4gIAkJICAgc3RydWN0IGRwbGwgKmJlc3RfY2xvY2spCj4gIHsKPiAtCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0 Yyk7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7Cj4gIAl1bnNp Z25lZCBpbnQgYmVzdF9lcnJvcl9wcG07Cj4gIAlzdHJ1Y3QgZHBsbCBjbG9jazsKPiBAQCAtMTA2 Nyw3ICsxMDY3LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfd2FpdF9mb3JfcGlwZV9zY2FubGluZV9t b3Zpbmcoc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gIHN0YXRpYyB2b2lkCj4gIGludGVsX3dh aXRfZm9yX3BpcGVfb2ZmKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19z dGF0ZSkKPiAgewo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG9s ZF9jcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0 b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ICAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4gIAo+ICAJ aWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNCkgewo+IEBAIC0xNTI2LDcgKzE1MjYsNyBAQCBz dGF0aWMgdm9pZCBpOXh4X2VuYWJsZV9wbGwoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gIAo+ ICBzdGF0aWMgdm9pZCBpOXh4X2Rpc2FibGVfcGxsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2lu dGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ICAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4gIAll bnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4gIAo+IEBAIC0xNjE3LDcgKzE2MTcsNyBAQCB2 b2lkIHZsdl93YWl0X3BvcnRfcmVhZHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ICAKPiAgc3RhdGljIHZvaWQgaXJvbmxha2VfZW5hYmxlX3BjaF90cmFuc2NvZGVyKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiAr CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBp LmNydGMpOwo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShj cnRjLT5iYXNlLmRldik7Cj4gIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4gIAlpOTE1 X3JlZ190IHJlZzsKPiBAQCAtMTc2MSw3ICsxNzYxLDcgQEAgZW51bSBwaXBlIGludGVsX2NydGNf cGNoX3RyYW5zY29kZXIoc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gIAo+ICBzdGF0aWMgdTMy IGludGVsX2NydGNfbWF4X3ZibGFua19jb3VudChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7Cj4gKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2 KTsKPiAgCj4gIAkvKgo+ICAJICogT24gaTk2NWdtIHRoZSBoYXJkd2FyZSBmcmFtZSBjb3VudGVy IHJlYWRzCj4gQEAgLTE3ODEsNyArMTc4MSw3IEBAIHN0YXRpYyB1MzIgaW50ZWxfY3J0Y19tYXhf dmJsYW5rX2NvdW50KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlCj4g IAo+ICBzdGF0aWMgdm9pZCBpbnRlbF9jcnRjX3ZibGFua19vbihjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGMg PSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiAgCj4g IAlkcm1fY3J0Y19zZXRfbWF4X3ZibGFua19jb3VudCgmY3J0Yy0+YmFzZSwKPiAgCQkJCSAgICAg IGludGVsX2NydGNfbWF4X3ZibGFua19jb3VudChjcnRjX3N0YXRlKSk7Cj4gQEAgLTE3OTAsNyAr MTc5MCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2NydGNfdmJsYW5rX29uKGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICAKPiAgc3RhdGljIHZvaWQgaW50ZWxfZW5h YmxlX3BpcGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlKQo+ ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMobmV3X2NydGNf c3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMobmV3X2NydGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKPiAgCWVudW0gdHJhbnNj b2RlciBjcHVfdHJhbnNjb2RlciA9IG5ld19jcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcjsKPiAg CWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKPiBAQCAtMTg0OCw3ICsxODQ4LDcgQEAgc3Rh dGljIHZvaWQgaW50ZWxfZW5hYmxlX3BpcGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg Km5ld19jcnRjX3N0YXRlKQo+ICAKPiAgc3RhdGljIHZvaWQgaW50ZWxfZGlzYWJsZV9waXBlKGNv bnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSkKPiAgewo+IC0Jc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT5iYXNl LmNydGMpOwo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9j cnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4gIAllbnVtIHRyYW5zY29kZXIgY3B1X3Ry YW5zY29kZXIgPSBvbGRfY3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29kZXI7Cj4gIAllbnVtIHBpcGUg cGlwZSA9IGNydGMtPnBpcGU7Cj4gQEAgLTMxMDMsMTQgKzMxMDMsMTQgQEAgaW50ZWxfc2V0X3Bs YW5lX3Zpc2libGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAlwbGFu ZV9zdGF0ZS0+YmFzZS52aXNpYmxlID0gdmlzaWJsZTsKPiAgCj4gIAlpZiAodmlzaWJsZSkKPiAt CQljcnRjX3N0YXRlLT5iYXNlLnBsYW5lX21hc2sgfD0gZHJtX3BsYW5lX21hc2soJnBsYW5lLT5i YXNlKTsKPiArCQljcnRjX3N0YXRlLT51YXBpLnBsYW5lX21hc2sgfD0gZHJtX3BsYW5lX21hc2so JnBsYW5lLT5iYXNlKTsKPiAgCWVsc2UKPiAtCQljcnRjX3N0YXRlLT5iYXNlLnBsYW5lX21hc2sg Jj0gfmRybV9wbGFuZV9tYXNrKCZwbGFuZS0+YmFzZSk7Cj4gKwkJY3J0Y19zdGF0ZS0+dWFwaS5w bGFuZV9tYXNrICY9IH5kcm1fcGxhbmVfbWFzaygmcGxhbmUtPmJhc2UpOwo+ICB9Cj4gIAo+ICBz dGF0aWMgdm9pZCBmaXh1cF9hY3RpdmVfcGxhbmVzKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKPiArCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwo+ ICAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4gIAo+ICAJLyoKPiBAQCAtMzEyMSw3ICszMTIx LDcgQEAgc3RhdGljIHZvaWQgZml4dXBfYWN0aXZlX3BsYW5lcyhzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSkKPiAgCWNydGNfc3RhdGUtPmFjdGl2ZV9wbGFuZXMgPSAwOwo+ICAK PiAgCWRybV9mb3JfZWFjaF9wbGFuZV9tYXNrKHBsYW5lLCAmZGV2X3ByaXYtPmRybSwKPiAtCQkJ CWNydGNfc3RhdGUtPmJhc2UucGxhbmVfbWFzaykKPiArCQkJCWNydGNfc3RhdGUtPnVhcGkucGxh bmVfbWFzaykKPiAgCQljcnRjX3N0YXRlLT5hY3RpdmVfcGxhbmVzIHw9IEJJVCh0b19pbnRlbF9w bGFuZShwbGFuZSktPmlkKTsKPiAgfQo+ICAKPiBAQCAtMzU5Miw3ICszNTkyLDcgQEAgaTl4eF9w bGFuZV9tYXhfc3RyaWRlKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCj4gIAo+ICBzdGF0aWMg dTMyIGk5eHhfcGxhbmVfY3RsX2NydGMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUpCj4gIHsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0 b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKPiAgCXUzMiBkc3Bj bnRyID0gMDsKPiAgCj4gQEAgLTM3NDUsNyArMzc0NSw3IEBAIGk5eHhfcGxhbmVfY2hlY2soc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAkJcmV0dXJuIHJldDsKPiAgCj4g IAlyZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19wbGFuZV9zdGF0ZSgmcGxhbmVfc3RhdGUt PmJhc2UsCj4gLQkJCQkJCSAgJmNydGNfc3RhdGUtPmJhc2UsCj4gKwkJCQkJCSAgJmNydGNfc3Rh dGUtPnVhcGksCj4gIAkJCQkJCSAgRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HLAo+ICAJCQkJ CQkgIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywKPiAgCQkJCQkJICBpOXh4X3BsYW5lX2hh c193aW5kb3dpbmcocGxhbmUpLAo+IEBAIC0zOTIxLDcgKzM5MjEsNyBAQCBzdGF0aWMgdm9pZCBz a2xfZGV0YWNoX3NjYWxlcihzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywgaW50IGlkKQo+ ICAgKi8KPiAgc3RhdGljIHZvaWQgc2tsX2RldGFjaF9zY2FsZXJzKGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50 ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVj dCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBp LmNydGMpOwo+ICAJY29uc3Qgc3RydWN0IGludGVsX2NydGNfc2NhbGVyX3N0YXRlICpzY2FsZXJf c3RhdGUgPQo+ICAJCSZjcnRjX3N0YXRlLT5zY2FsZXJfc3RhdGU7Cj4gIAlpbnQgaTsKPiBAQCAt NDExNiw3ICs0MTE2LDcgQEAgc3RhdGljIHUzMiBjbmxfcGxhbmVfY3RsX2ZsaXAodW5zaWduZWQg aW50IHJlZmxlY3QpCj4gIAo+ICB1MzIgc2tsX3BsYW5lX2N0bF9jcnRjKGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKPiAr CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+ dWFwaS5jcnRjLT5kZXYpOwo+ICAJdTMyIHBsYW5lX2N0bCA9IDA7Cj4gIAo+ICAJaWYgKElOVEVM X0dFTihkZXZfcHJpdikgPj0gMTAgfHwgSVNfR0VNSU5JTEFLRShkZXZfcHJpdikpCj4gQEAgLTQx NzIsNyArNDE3Miw3IEBAIHUzMiBza2xfcGxhbmVfY3RsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlLAo+ICAKPiAgdTMyIGdsa19wbGFuZV9jb2xvcl9jdGxfY3J0Yyhj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgewo+IC0Jc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNy dGMtPmRldik7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKPiAgCXUzMiBwbGFuZV9jb2xvcl9jdGwgPSAw Owo+ICAKPiAgCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKQo+IEBAIC00Nzg4LDcgKzQ3 ODgsNyBAQCBzdGF0aWMgdm9pZCBpdmJfbWFudWFsX2ZkaV9saW5rX3RyYWluKHN0cnVjdCBpbnRl bF9jcnRjICpjcnRjLAo+ICAKPiAgc3RhdGljIHZvaWQgaXJvbmxha2VfZmRpX3BsbF9lbmFibGUo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIHsKPiAtCXN0cnVj dCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNl LmNydGMpOwo+ICsJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRj KGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGludGVsX2NydGMtPmJhc2UuZGV2KTsKPiAgCWVudW0gcGlwZSBwaXBl ID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiAgCWk5MTVfcmVnX3QgcmVnOwo+IEBAIC00OTQ5LDcgKzQ5 NDksNyBAQCB2b2lkIGxwdF9kaXNhYmxlX2ljbGtpcChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCj4gIC8qIFByb2dyYW0gaUNMS0lQIGNsb2NrIHRvIHRoZSBkZXNpcmVkIGZyZXF1 ZW5jeSAqLwo+ICBzdGF0aWMgdm9pZCBscHRfcHJvZ3JhbV9pY2xraXAoY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIHsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4g IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2Uu ZGV2KTsKPiAgCWludCBjbG9jayA9IGNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGUuY3J0Y19j bG9jazsKPiAgCXUzMiBkaXZzZWwsIHBoYXNlaW5jLCBhdXhkaXYsIHBoYXNlZGlyID0gMDsKPiBA QCAtNTA2NSw3ICs1MDY1LDcgQEAgaW50IGxwdF9nZXRfaWNsa2lwKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKPiAgc3RhdGljIHZvaWQgaXJvbmxha2VfcGNoX3RyYW5zY29kZXJf c2V0X3RpbWluZ3MoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4g IAkJCQkJCWVudW0gcGlwZSBwY2hfdHJhbnNjb2RlcikKPiAgewo+IC0Jc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRj KTsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ YmFzZS5kZXYpOwo+ICAJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0gY3J0Y19zdGF0 ZS0+Y3B1X3RyYW5zY29kZXI7Cj4gIAo+IEBAIC01MTA4LDcgKzUxMDgsNyBAQCBzdGF0aWMgdm9p ZCBjcHRfc2V0X2ZkaV9iY19iaWZ1cmNhdGlvbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsIGJvb2wgZQo+ICAKPiAgc3RhdGljIHZvaWQgaXZ5YnJpZGdlX3VwZGF0ZV9mZGlfYmNf YmlmdXJjYXRpb24oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4g IHsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRl LT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKPiAgCj4gIAlzd2l0Y2ggKGNydGMtPnBp cGUpIHsKPiBAQCAtNTEzOCw3ICs1MTM4LDcgQEAgc3RhdGljIHN0cnVjdCBpbnRlbF9lbmNvZGVy ICoKPiAgaW50ZWxfZ2V0X2NydGNfbmV3X2VuY29kZXIoY29uc3Qgc3RydWN0IGludGVsX2F0b21p Y19zdGF0ZSAqc3RhdGUsCj4gIAkJCSAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ICAJY29uc3Qgc3RydWN0IGRy bV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5lY3Rvcl9zdGF0ZTsKPiAgCWNvbnN0IHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3I7Cj4gIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9 IE5VTEw7Cj4gQEAgLTUxNzAsNyArNTE3MCw3IEBAIGludGVsX2dldF9jcnRjX25ld19lbmNvZGVy KGNvbnN0IHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ICBzdGF0aWMgdm9pZCBp cm9ubGFrZV9wY2hfZW5hYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRl LAo+ICAJCQkJY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIHsK PiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5i YXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ YmFzZS5kZXY7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGRldik7Cj4gIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4gQEAgLTUyNTQsNyArNTI1 NCw3IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX3BjaF9lbmFibGUoY29uc3Qgc3RydWN0IGludGVs X2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gIHN0YXRpYyB2b2lkIGxwdF9wY2hfZW5hYmxlKGNvbnN0 IHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ICAJCQkgICBjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsK PiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFz ZS5kZXYpOwo+ICAJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0gY3J0Y19zdGF0ZS0+ Y3B1X3RyYW5zY29kZXI7Cj4gIAo+IEBAIC01MzcxLDcgKzUzNzEsNyBAQCBza2xfdXBkYXRlX3Nj YWxlcihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwgYm9vbCBmb3JjZV9kZXRh Y2gsCj4gIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zY2FsZXJfc3RhdGUgKnNjYWxlcl9zdGF0ZSA9Cj4g IAkJJmNydGNfc3RhdGUtPnNjYWxlcl9zdGF0ZTsKPiAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRl bF9jcnRjID0KPiAtCQl0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwkJ dG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ICAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9jcnRjLT5iYXNlLmRldik7Cj4gIAlj b25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Cj4gIAkJJmNydGNf c3RhdGUtPmh3LmFkanVzdGVkX21vZGU7Cj4gQEAgLTU1NjgsNyArNTU2OCw3IEBAIHN0YXRpYyB2 b2lkIHNreWxha2Vfc2NhbGVyX2Rpc2FibGUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gIAo+ ICBzdGF0aWMgdm9pZCBza3lsYWtlX3BmaXRfZW5hYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ICAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4g IAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4gIAljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zY2FsZXJfc3RhdGUgKnNjYWxlcl9zdGF0ZSA9Cj4gQEAgLTU2MDUsNyArNTYwNSw3IEBAIHN0 YXRpYyB2b2lkIHNreWxha2VfcGZpdF9lbmFibGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCj4gIAo+ICBzdGF0aWMgdm9pZCBpcm9ubGFrZV9wZml0X2VuYWJsZShj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgewo+IC0Jc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7 Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+ dWFwaS5jcnRjKTsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ICAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ICAK PiBAQCAtNTYyNiw3ICs1NjI2LDcgQEAgc3RhdGljIHZvaWQgaXJvbmxha2VfcGZpdF9lbmFibGUo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIAo+ICB2b2lkIGhz d19lbmFibGVfaXBzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNy dGMtPmJhc2UuZGV2Owo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShkZXYpOwo+ICAKPiBAQCAtNTY2Miw3ICs1NjYyLDcgQEAgdm9pZCBoc3dfZW5hYmxlX2lw cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgCj4gIHZvaWQg aHN3X2Rpc2FibGVfaXBzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl KQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGNydGMtPmJhc2UuZGV2Owo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShkZXYpOwo+ICAKPiBAQCAtNTc2Nyw3ICs1NzY3LDcgQEAgaW50ZWxfcHJlX2Rpc2Fi bGVfcHJpbWFyeV9ub2F0b21pYyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIHN0YXRpYyBib29s IGhzd19wcmVfdXBkYXRlX2Rpc2FibGVfaXBzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpvbGRfY3J0Y19zdGF0ZSwKPiAgCQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqbmV3X2NydGNfc3RhdGUpCj4gIHsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0g dG9faW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsK PiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFz ZS5kZXYpOwo+ICAKPiAgCWlmICghb2xkX2NydGNfc3RhdGUtPmlwc19lbmFibGVkKQo+IEBAIC01 NzgzLDcgKzU3ODMsNyBAQCBzdGF0aWMgYm9vbCBoc3dfcHJlX3VwZGF0ZV9kaXNhYmxlX2lwcyhj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfcwo+ICAJICogRGlzYWJsZSBJ UFMgYmVmb3JlIHdlIHByb2dyYW0gdGhlIExVVC4KPiAgCSAqLwo+ICAJaWYgKElTX0hBU1dFTEwo ZGV2X3ByaXYpICYmCj4gLQkgICAgKG5ld19jcnRjX3N0YXRlLT5iYXNlLmNvbG9yX21nbXRfY2hh bmdlZCB8fAo+ICsJICAgIChuZXdfY3J0Y19zdGF0ZS0+dWFwaS5jb2xvcl9tZ210X2NoYW5nZWQg fHwKPiAgCSAgICAgbmV3X2NydGNfc3RhdGUtPnVwZGF0ZV9waXBlKSAmJgo+ICAJICAgIG5ld19j cnRjX3N0YXRlLT5nYW1tYV9tb2RlID09IEdBTU1BX01PREVfTU9ERV9TUExJVCkKPiAgCQlyZXR1 cm4gdHJ1ZTsKPiBAQCAtNTc5NCw3ICs1Nzk0LDcgQEAgc3RhdGljIGJvb2wgaHN3X3ByZV91cGRh dGVfZGlzYWJsZV9pcHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3MK PiAgc3RhdGljIGJvb2wgaHN3X3Bvc3RfdXBkYXRlX2VuYWJsZV9pcHMoY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAo+ICAJCQkJICAgICAgIGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRl LT51YXBpLmNydGMpOwo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShjcnRjLT5iYXNlLmRldik7Cj4gIAo+ICAJaWYgKCFuZXdfY3J0Y19zdGF0ZS0+aXBzX2Vu YWJsZWQpCj4gQEAgLTU4MTAsNyArNTgxMCw3IEBAIHN0YXRpYyBib29sIGhzd19wb3N0X3VwZGF0 ZV9lbmFibGVfaXBzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zCj4g IAkgKiBSZS1lbmFibGUgSVBTIGFmdGVyIHRoZSBMVVQgaGFzIGJlZW4gcHJvZ3JhbW1lZC4KPiAg CSAqLwo+ICAJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpICYmCj4gLQkgICAgKG5ld19jcnRjX3N0 YXRlLT5iYXNlLmNvbG9yX21nbXRfY2hhbmdlZCB8fAo+ICsJICAgIChuZXdfY3J0Y19zdGF0ZS0+ dWFwaS5jb2xvcl9tZ210X2NoYW5nZWQgfHwKPiAgCSAgICAgbmV3X2NydGNfc3RhdGUtPnVwZGF0 ZV9waXBlKSAmJgo+ICAJICAgIG5ld19jcnRjX3N0YXRlLT5nYW1tYV9tb2RlID09IEdBTU1BX01P REVfTU9ERV9TUExJVCkKPiAgCQlyZXR1cm4gdHJ1ZTsKPiBAQCAtNTg1MSwxMCArNTg1MSwxMCBA QCBzdGF0aWMgYm9vbCBuZWVkc19zY2FsZXJjbGtfd2Eoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAo+ICAKPiAgc3RhdGljIHZvaWQgaW50ZWxfcG9zdF9wbGFuZV91cGRhdGUoc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7 Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3Rh dGUtPnVhcGkuY3J0Yyk7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5k ZXY7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7 Cj4gLQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBvbGRfY3J0Y19zdGF0ZS0+YmFz ZS5zdGF0ZTsKPiArCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IG9sZF9jcnRjX3N0 YXRlLT51YXBpLnN0YXRlOwo+ICAJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmln ID0KPiAgCQlpbnRlbF9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHRvX2ludGVsX2F0b21pY19z dGF0ZShzdGF0ZSksCj4gIAkJCQkJCWNydGMpOwo+IEBAIC01ODk0LDEwICs1ODk0LDEwIEBAIHN0 YXRpYyB2b2lkIGludGVsX3Bvc3RfcGxhbmVfdXBkYXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpvbGRfY3J0Y19zdGF0ZSkKPiAgc3RhdGljIHZvaWQgaW50ZWxfcHJlX3BsYW5lX3VwZGF0ZShz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCj4gIAkJCQkgICBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4gIHsKPiAtCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+dWFw aS5jcnRjKTsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKPiAg CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAtCXN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IG9sZF9jcnRjX3N0YXRlLT5iYXNlLnN0YXRl Owo+ICsJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gb2xkX2NydGNfc3RhdGUtPnVh cGkuc3RhdGU7Cj4gIAlzdHJ1Y3QgZHJtX3BsYW5lICpwcmltYXJ5ID0gY3J0Yy0+YmFzZS5wcmlt YXJ5Owo+ICAJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3ByaW1hcnlfc3RhdGUgPQo+ICAJ CWRybV9hdG9taWNfZ2V0X29sZF9wbGFuZV9zdGF0ZShzdGF0ZSwgcHJpbWFyeSk7Cj4gQEAgLTYy NDksNyArNjI0OSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2VuY29kZXJzX3VwZGF0ZV9waXBlKHN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAKPiAgc3RhdGljIHZvaWQgaW50ZWxfZGlzYWJsZV9w cmltYXJ5X3BsYW5lKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ICAJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSA9 IHRvX2ludGVsX3BsYW5lKGNydGMtPmJhc2UucHJpbWFyeSk7Cj4gIAo+ICAJcGxhbmUtPmRpc2Fi bGVfcGxhbmUocGxhbmUsIGNydGNfc3RhdGUpOwo+IEBAIC02MjU4LDcgKzYyNTgsNyBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9kaXNhYmxlX3ByaW1hcnlfcGxhbmUoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdAo+ICBzdGF0aWMgdm9pZCBpcm9ubGFrZV9jcnRjX2VuYWJsZShz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gIAkJCQkgc3RydWN0IGludGVs X2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIHsKPiAtCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHBp cGVfY29uZmlnLT5iYXNlLmNydGM7Cj4gKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBwaXBlX2Nv bmZpZy0+dWFwaS5jcnRjOwo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsK PiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAg CXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiBA QCAtNjM5Miw3ICs2MzkyLDcgQEAgc3RhdGljIHZvaWQgaWNsX3BpcGVfbWJ1c19lbmFibGUoc3Ry dWN0IGludGVsX2NydGMgKmNydGMpCj4gIHN0YXRpYyB2b2lkIGhhc3dlbGxfY3J0Y19lbmFibGUo c3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAo+ICAJCQkJc3RydWN0IGludGVs X2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIHsKPiAtCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHBp cGVfY29uZmlnLT5iYXNlLmNydGM7Cj4gKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBwaXBlX2Nv bmZpZy0+dWFwaS5jcnRjOwo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShjcnRjLT5kZXYpOwo+ICAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0 b19pbnRlbF9jcnRjKGNydGMpOwo+ICAJZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBl LCBoc3dfd29ya2Fyb3VuZF9waXBlOwo+IEBAIC02NTAwLDcgKzY1MDAsNyBAQCBzdGF0aWMgdm9p ZCBoYXN3ZWxsX2NydGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZp ZywKPiAgCj4gIHN0YXRpYyB2b2lkIGlyb25sYWtlX3BmaXRfZGlzYWJsZShjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUpCj4gIHsKPiAtCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiAr CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+ dWFwaS5jcnRjKTsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ICAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ICAK PiBAQCAtNjUxNiw3ICs2NTE2LDcgQEAgc3RhdGljIHZvaWQgaXJvbmxha2VfcGZpdF9kaXNhYmxl KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSkKPiAgc3RhdGlj IHZvaWQgaXJvbmxha2VfY3J0Y19kaXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRf Y3J0Y19zdGF0ZSwKPiAgCQkJCSAgc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4g IHsKPiAtCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IG9sZF9jcnRjX3N0YXRlLT5iYXNlLmNydGM7 Cj4gKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBvbGRfY3J0Y19zdGF0ZS0+dWFwaS5jcnRjOwo+ ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKPiAgCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9jcnRj ICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiBAQCAtNjU3NSw3ICs2NTc1LDcg QEAgc3RhdGljIHZvaWQgaXJvbmxha2VfY3J0Y19kaXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpvbGRfY3J0Y19zdGF0ZSwKPiAgc3RhdGljIHZvaWQgaGFzd2VsbF9jcnRjX2Rpc2FibGUo c3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAo+ICAJCQkJIHN0cnVjdCBp bnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMg PSBvbGRfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjOwo+ICsJc3RydWN0IGRybV9jcnRjICpjcnRjID0g b2xkX2NydGNfc3RhdGUtPnVhcGkuY3J0YzsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRl bF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiAgCWVudW0gdHJhbnNjb2RlciBjcHVfdHJh bnNjb2RlciA9IG9sZF9jcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcjsKPiBAQCAtNjYwOSw3ICs2 NjA5LDcgQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9jcnRjX2Rpc2FibGUoc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAo+ICAKPiAgc3RhdGljIHZvaWQgaTl4eF9wZml0X2Vu YWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgewo+IC0J c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2Uu Y3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+dWFwaS5jcnRjKTsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ICAKPiAgCWlmICghY3J0Y19zdGF0ZS0+Z21jaF9w Zml0LmNvbnRyb2wpCj4gQEAgLTY3NDUsNyArNjc0NSw3IEBAIGludGVsX2F1eF9wb3dlcl9kb21h aW4oc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpCj4gIAo+ICBzdGF0aWMgdTY0 IGdldF9jcnRjX3Bvd2VyX2RvbWFpbnMoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUpCj4gIHsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKPiAgCXN0cnVjdCBkcm1fZW5j b2RlciAqZW5jb2RlcjsKPiAgCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKPiBAQCAtNjc2 Miw3ICs2NzYyLDcgQEAgc3RhdGljIHU2NCBnZXRfY3J0Y19wb3dlcl9kb21haW5zKHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICAJCW1hc2sgfD0gQklUX1VMTChQT1dFUl9E T01BSU5fUElQRV9QQU5FTF9GSVRURVIocGlwZSkpOwo+ICAKPiAgCWRybV9mb3JfZWFjaF9lbmNv ZGVyX21hc2soZW5jb2RlciwgJmRldl9wcml2LT5kcm0sCj4gLQkJCQkgIGNydGNfc3RhdGUtPmJh c2UuZW5jb2Rlcl9tYXNrKSB7Cj4gKwkJCQkgIGNydGNfc3RhdGUtPnVhcGkuZW5jb2Rlcl9tYXNr KSB7Cj4gIAkJc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIgPSB0b19pbnRlbF9l bmNvZGVyKGVuY29kZXIpOwo+ICAKPiAgCQltYXNrIHw9IEJJVF9VTEwoaW50ZWxfZW5jb2Rlci0+ cG93ZXJfZG9tYWluKTsKPiBAQCAtNjc4MCw3ICs2NzgwLDcgQEAgc3RhdGljIHU2NCBnZXRfY3J0 Y19wb3dlcl9kb21haW5zKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICBz dGF0aWMgdTY0Cj4gIG1vZGVzZXRfZ2V0X2NydGNfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGMg PSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiAgCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYp Owo+ICAJZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBkb21haW47Cj4gIAl1NjQgZG9t YWlucywgbmV3X2RvbWFpbnMsIG9sZF9kb21haW5zOwo+IEBAIC02ODA5LDcgKzY4MDksNyBAQCBz dGF0aWMgdm9pZCBtb2Rlc2V0X3B1dF9wb3dlcl9kb21haW5zKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKPiAgc3RhdGljIHZvaWQgdmFsbGV5dmlld19jcnRjX2VuYWJsZShzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gIAkJCQkgICBzdHJ1Y3QgaW50ZWxf YXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGRybV9jcnRjICpjcnRjID0gcGlw ZV9jb25maWctPmJhc2UuY3J0YzsKPiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHBpcGVfY29u ZmlnLT51YXBpLmNydGM7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+ ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ICAJ c3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+IEBA IC02ODY1LDcgKzY4NjUsNyBAQCBzdGF0aWMgdm9pZCB2YWxsZXl2aWV3X2NydGNfZW5hYmxlKHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiAgCj4gIHN0YXRpYyB2b2lkIGk5 eHhfc2V0X3BsbF9kaXZpZGVycyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKPiAgewo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2lu dGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ICAKPiAgCUk5MTVfV1JJ VEUoRlAwKGNydGMtPnBpcGUpLCBjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlLmZwMCk7Cj4gQEAg LTY4NzUsNyArNjg3NSw3IEBAIHN0YXRpYyB2b2lkIGk5eHhfc2V0X3BsbF9kaXZpZGVycyhjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgc3RhdGljIHZvaWQgaTl4 eF9jcnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gIAkJ CSAgICAgc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIHsKPiAtCXN0cnVjdCBk cm1fY3J0YyAqY3J0YyA9IHBpcGVfY29uZmlnLT5iYXNlLmNydGM7Cj4gKwlzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMgPSBwaXBlX2NvbmZpZy0+dWFwaS5jcnRjOwo+ICAJc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9IGNydGMtPmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50 ZWxfY3J0YyhjcnRjKTsKPiBAQCAtNjkyNSw3ICs2OTI1LDcgQEAgc3RhdGljIHZvaWQgaTl4eF9j cnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gIAo+ICBz dGF0aWMgdm9pZCBpOXh4X3BmaXRfZGlzYWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqb2xkX2NydGNfc3RhdGUpCj4gIHsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9f aW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiAg CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5k ZXYpOwo+ICAKPiAgCWlmICghb2xkX2NydGNfc3RhdGUtPmdtY2hfcGZpdC5jb250cm9sKQo+IEBA IC02OTQxLDcgKzY5NDEsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X3BmaXRfZGlzYWJsZShjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUpCj4gIHN0YXRpYyB2b2lkIGk5 eHhfY3J0Y19kaXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwK PiAgCQkJICAgICAgc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIHsKPiAtCXN0 cnVjdCBkcm1fY3J0YyAqY3J0YyA9IG9sZF9jcnRjX3N0YXRlLT5iYXNlLmNydGM7Cj4gKwlzdHJ1 Y3QgZHJtX2NydGMgKmNydGMgPSBvbGRfY3J0Y19zdGF0ZS0+dWFwaS5jcnRjOwo+ICAJc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9j cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiBAQCAtNzE0MCw3ICs3MTQwLDcgQEAgc3RhdGlj IGludCBpcm9ubGFrZV9jaGVja19mZGlfbGFuZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51 bSBwaXBlIHBpcGUsCj4gIAkJCQkgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2Nv bmZpZykKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShkZXYpOwo+IC0Jc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gcGlwZV9jb25maWct PmJhc2Uuc3RhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBwaXBlX2Nv bmZpZy0+dWFwaS5zdGF0ZTsKPiAgCXN0cnVjdCBpbnRlbF9jcnRjICpvdGhlcl9jcnRjOwo+ICAJ c3RydWN0IGludGVsX2NydGNfc3RhdGUgKm90aGVyX2NydGNfc3RhdGU7Cj4gIAo+IEBAIC03MjU5 LDcgKzcyNTksNyBAQCBzdGF0aWMgaW50IGlyb25sYWtlX2ZkaV9jb21wdXRlX2NvbmZpZyhzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKPiAgCj4gIGJvb2wgaHN3X2NydGNfc3RhdGVfaXBz X2NhcGFibGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIHsK PiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5i YXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKPiAgCj4gIAkvKiBJUFMgb25seSBleGlzdHMg b24gVUxUIG1hY2hpbmVzIGFuZCBpcyB0aWVkIHRvIHBpcGUgQS4gKi8KPiBAQCAtNzI4OSw5ICs3 Mjg5LDkgQEAgYm9vbCBoc3dfY3J0Y19zdGF0ZV9pcHNfY2FwYWJsZShjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgc3RhdGljIGJvb2wgaHN3X2NvbXB1dGVfaXBz X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgewo+ICAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KPiAtCQl0b19pOTE1KGNydGNfc3RhdGUt PmJhc2UuY3J0Yy0+ZGV2KTsKPiArCQl0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2 KTsKPiAgCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKmludGVsX3N0YXRlID0KPiAtCQl0b19p bnRlbF9hdG9taWNfc3RhdGUoY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZSk7Cj4gKwkJdG9faW50ZWxf YXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPnVhcGkuc3RhdGUpOwo+ICAKPiAgCWlmICghaHN3X2Ny dGNfc3RhdGVfaXBzX2NhcGFibGUoY3J0Y19zdGF0ZSkpCj4gIAkJcmV0dXJuIGZhbHNlOwo+IEBA IC03MzYzLDcgKzczNjMsNyBAQCBzdGF0aWMgdTMyIGlsa19waXBlX3BpeGVsX3JhdGUoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQo+ICAKPiAgc3RhdGljIHZvaWQg aW50ZWxfY3J0Y19jb21wdXRlX3BpeGVsX3JhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUpCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOwo+ICsJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNydGMtPmRldik7Cj4g IAo+ICAJaWYgKEhBU19HTUNIKGRldl9wcml2KSkKPiAgCQkvKiBGSVhNRSBjYWxjdWxhdGUgcHJv cGVyIHBpcGUgcGl4ZWwgcmF0ZSBmb3IgR01DSCBwZml0ICovCj4gQEAgLTc1OTgsNyArNzU5OCw3 IEBAIHN0YXRpYyB2b2lkIHZsdl9wbGxiX3JlY2FsX29wYW1wKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwgZW51bSBwaXBlCj4gIHN0YXRpYyB2b2lkIGludGVsX3BjaF90cmFuc2Nv ZGVyX3NldF9tX24oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4g IAkJCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9saW5rX21fbiAqbV9uKQo+ICB7Cj4gLQlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsK PiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51 YXBpLmNydGMpOwo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShjcnRjLT5iYXNlLmRldik7Cj4gIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4gIAo+ IEBAIC03NjI1LDcgKzc2MjUsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jcHVfdHJhbnNjb2Rlcl9z ZXRfbV9uKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YQo+ICAJCQkJCSBj b25zdCBzdHJ1Y3QgaW50ZWxfbGlua19tX24gKm1fbiwKPiAgCQkJCQkgY29uc3Qgc3RydWN0IGlu dGVsX2xpbmtfbV9uICptMl9uMikKPiAgewo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0 b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiAgCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ ICAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ICAJZW51bSB0cmFuc2NvZGVyIHRyYW5z Y29kZXIgPSBjcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcjsKPiBAQCAtNzkzOCw3ICs3OTM4LDcg QEAgaW50IHZsdl9mb3JjZV9wbGxfb24oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LCBlbnVtIHBpcGUgcGlwZSwKPiAgCWlmICghcGlwZV9jb25maWcpCj4gIAkJcmV0dXJuIC1FTk9N RU07Cj4gIAo+IC0JcGlwZV9jb25maWctPmJhc2UuY3J0YyA9ICZjcnRjLT5iYXNlOwo+ICsJcGlw ZV9jb25maWctPnVhcGkuY3J0YyA9ICZjcnRjLT5iYXNlOwo+ICAJcGlwZV9jb25maWctPnBpeGVs X211bHRpcGxpZXIgPSAxOwo+ICAJcGlwZV9jb25maWctPmRwbGwgPSAqZHBsbDsKPiAgCj4gQEAg LTgwOTgsNyArODA5OCw3IEBAIHN0YXRpYyB2b2lkIGk4eHhfY29tcHV0ZV9kcGxsKHN0cnVjdCBp bnRlbF9jcnRjICpjcnRjLAo+ICAKPiAgc3RhdGljIHZvaWQgaW50ZWxfc2V0X3BpcGVfdGltaW5n cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgewo+IC0Jc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0 Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0+dWFwaS5jcnRjKTsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ICAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ ICAJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0gY3J0Y19zdGF0ZS0+Y3B1X3RyYW5z Y29kZXI7Cj4gQEAgLTgxNjAsNyArODE2MCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3NldF9waXBl X3RpbWluZ3MoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIAo+ ICBzdGF0aWMgdm9pZCBpbnRlbF9zZXRfcGlwZV9zcmNfc2l6ZShjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGMg PSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiAgCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYp Owo+ICAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ICAKPiBAQCAtODE3NCw3ICs4MTc0 LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfc2V0X3BpcGVfc3JjX3NpemUoY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIAo+ICBzdGF0aWMgYm9vbCBpbnRlbF9waXBl X2lzX2ludGVybGFjZWQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp Cj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0 Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNydGMtPmRldik7Cj4gIAllbnVtIHRy YW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBjcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcjsKPiAg Cj4gIAlpZiAoSVNfR0VOKGRldl9wcml2LCAyKSkKPiBAQCAtODI3Miw3ICs4MjcyLDcgQEAgdm9p ZCBpbnRlbF9tb2RlX2Zyb21fcGlwZV9jb25maWcoc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1v ZGUsCj4gIAo+ICBzdGF0aWMgdm9pZCBpOXh4X3NldF9waXBlY29uZihjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiAg CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5k ZXYpOwo+ICAJdTMyIHBpcGVjb25mOwo+ICAKPiBAQCAtODcxOCw3ICs4NzE4LDcgQEAgYmR3X2dl dF9waXBlbWlzY19vdXRwdXRfZm9ybWF0KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+ICAKPiAg c3RhdGljIHZvaWQgaTl4eF9nZXRfcGlwZV9jb2xvcl9jb25maWcoc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUpCj4gIHsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gIAlzdHJ1Y3Qg aW50ZWxfcGxhbmUgKnBsYW5lID0gdG9faW50ZWxfcGxhbmUoY3J0Yy0+YmFzZS5wcmltYXJ5KTsK PiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFz ZS5kZXYpOwo+ICAJZW51bSBpOXh4X3BsYW5lX2lkIGk5eHhfcGxhbmUgPSBwbGFuZS0+aTl4eF9w bGFuZTsKPiBAQCAtOTM1Niw3ICs5MzU2LDcgQEAgdm9pZCBpbnRlbF9pbml0X3BjaF9yZWZjbGso c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAKPiAgc3RhdGljIHZvaWQgaXJv bmxha2Vfc2V0X3BpcGVjb25mKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50 ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4gIAllbnVtIHBpcGUgcGlw ZSA9IGNydGMtPnBpcGU7Cj4gIAl1MzIgdmFsOwo+IEBAIC05NDEwLDcgKzk0MTAsNyBAQCBzdGF0 aWMgdm9pZCBpcm9ubGFrZV9zZXRfcGlwZWNvbmYoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCj4gIAo+ICBzdGF0aWMgdm9pZCBoYXN3ZWxsX3NldF9waXBlY29uZihj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgewo+IC0Jc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7 Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+ dWFwaS5jcnRjKTsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ICAJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0g Y3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29kZXI7Cj4gIAl1MzIgdmFsID0gMDsKPiBAQCAtOTQzMyw3 ICs5NDMzLDcgQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9zZXRfcGlwZWNvbmYoY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIAo+ICBzdGF0aWMgdm9pZCBiZHdfc2V0 X3BpcGVtaXNjKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7 Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+ YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4gIAl1MzIgdmFsID0gMDsKPiAgCj4gQEAg LTk2MTksNyArOTYxOSw3IEBAIHN0YXRpYyBpbnQgaXJvbmxha2VfY3J0Y19jb21wdXRlX2Nsb2Nr KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9h dG9taWNfc3RhdGUgKnN0YXRlID0KPiAtCQl0b19pbnRlbF9hdG9taWNfc3RhdGUoY3J0Y19zdGF0 ZS0+YmFzZS5zdGF0ZSk7Cj4gKwkJdG9faW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPnVh cGkuc3RhdGUpOwo+ICAJY29uc3Qgc3RydWN0IGludGVsX2xpbWl0ICpsaW1pdDsKPiAgCWludCBy ZWZjbGsgPSAxMjAwMDA7Cj4gIAo+IEBAIC0xMDA0NCw3ICsxMDA0NCw3IEBAIHN0YXRpYyBpbnQg aGFzd2VsbF9jcnRjX2NvbXB1dGVfY2xvY2soc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gIHsK PiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFz ZS5kZXYpOwo+ICAJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUgPQo+IC0JCXRvX2lu dGVsX2F0b21pY19zdGF0ZShjcnRjX3N0YXRlLT5iYXNlLnN0YXRlKTsKPiArCQl0b19pbnRlbF9h dG9taWNfc3RhdGUoY3J0Y19zdGF0ZS0+dWFwaS5zdGF0ZSk7Cj4gIAo+ICAJaWYgKCFpbnRlbF9j cnRjX2hhc190eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9EU0kpIHx8Cj4gIAkgICAgSU5U RUxfR0VOKGRldl9wcml2KSA+PSAxMSkgewo+IEBAIC0xMDYxNSw3ICsxMDYxNSw3IEBAIHN0YXRp YyBpbnQgaW50ZWxfY2hlY2tfY3Vyc29yKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlLAo+ICAJfQo+ICAKPiAgCXJldCA9IGRybV9hdG9taWNfaGVscGVyX2NoZWNrX3BsYW5lX3N0 YXRlKCZwbGFuZV9zdGF0ZS0+YmFzZSwKPiAtCQkJCQkJICAmY3J0Y19zdGF0ZS0+YmFzZSwKPiAr CQkJCQkJICAmY3J0Y19zdGF0ZS0+dWFwaSwKPiAgCQkJCQkJICBEUk1fUExBTkVfSEVMUEVSX05P X1NDQUxJTkcsCj4gIAkJCQkJCSAgRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HLAo+ICAJCQkJ CQkgIHRydWUsIHRydWUpOwo+IEBAIC0xMDgwMiw3ICsxMDgwMiw3IEBAIGk5eHhfY3Vyc29yX21h eF9zdHJpZGUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKPiAgCj4gIHN0YXRpYyB1MzIgaTl4 eF9jdXJzb3JfY3RsX2NydGMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUpCj4gIHsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKPiAgCXUzMiBjbnRsID0gMDsK PiAgCj4gQEAgLTExMjE5LDcgKzExMjE5LDcgQEAgaW50IGludGVsX2dldF9sb2FkX2RldGVjdF9w aXBlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gIAlpZiAoIW1vZGUpCj4gIAkJ bW9kZSA9ICZsb2FkX2RldGVjdF9tb2RlOwo+ICAKPiAtCXJldCA9IGRybV9hdG9taWNfc2V0X21v ZGVfZm9yX2NydGMoJmNydGNfc3RhdGUtPmJhc2UsIG1vZGUpOwo+ICsJcmV0ID0gZHJtX2F0b21p Y19zZXRfbW9kZV9mb3JfY3J0YygmY3J0Y19zdGF0ZS0+dWFwaSwgbW9kZSk7Cj4gIAlpZiAocmV0 KQo+ICAJCWdvdG8gZmFpbDsKPiAgCj4gQEAgLTExNDU3LDcgKzExNDU3LDcgQEAgaW50ZWxfZW5j b2Rlcl9jdXJyZW50X21vZGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gIAkJcmV0 dXJuIE5VTEw7Cj4gIAl9Cj4gIAo+IC0JY3J0Y19zdGF0ZS0+YmFzZS5jcnRjID0gJmNydGMtPmJh c2U7Cj4gKwljcnRjX3N0YXRlLT51YXBpLmNydGMgPSAmY3J0Yy0+YmFzZTsKPiAgCj4gIAlpZiAo IWRldl9wcml2LT5kaXNwbGF5LmdldF9waXBlX2NvbmZpZyhjcnRjLCBjcnRjX3N0YXRlKSkgewo+ ICAJCWtmcmVlKGNydGNfc3RhdGUpOwo+IEBAIC0xMTUyOCw3ICsxMTUyOCw3IEBAIGludCBpbnRl bF9wbGFuZV9hdG9taWNfY2FsY19jaGFuZ2VzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpvbGRfY3J0Y19zdGF0Cj4gIAkJCQkgICAgY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRl ICpvbGRfcGxhbmVfc3RhdGUsCj4gIAkJCQkgICAgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpw bGFuZV9zdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9 IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiAgCXN0cnVjdCBpbnRlbF9w bGFuZSAqcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZSk7Cj4g IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2Uu ZGV2KTsKPiAgCWJvb2wgbW9kZV9jaGFuZ2VkID0gbmVlZHNfbW9kZXNldChjcnRjX3N0YXRlKTsK PiBAQCAtMTE3MDAsOSArMTE3MDAsOSBAQCBzdGF0aWMgaW50IGljbF9hZGRfbGlua2VkX3BsYW5l cyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgCj4gIHN0YXRpYyBpbnQgaWNs X2NoZWNrX252MTJfcGxhbmVzKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4gLQlzdHJ1Y3QgaW50ZWxfYXRvbWlj X3N0YXRlICpzdGF0ZSA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShjcnRjX3N0YXRlLT5iYXNlLnN0 YXRlKTsKPiArCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0gdG9faW50ZWxfYXRv bWljX3N0YXRlKGNydGNfc3RhdGUtPnVhcGkuc3RhdGUpOwo+ICAJc3RydWN0IGludGVsX3BsYW5l ICpwbGFuZSwgKmxpbmtlZDsKPiAgCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3Rh dGU7Cj4gIAlpbnQgaTsKPiBAQCAtMTE3NzIsOSArMTE3NzIsOSBAQCBzdGF0aWMgaW50IGljbF9j aGVja19udjEyX3BsYW5lcyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAg Cj4gIHN0YXRpYyBib29sIGM4X3BsYW5lc19jaGFuZ2VkKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpuZXdfY3J0Y19zdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGMg PSB0b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRlLT51YXBpLmNydGMp Owo+ICAJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUgPQo+IC0JCXRvX2ludGVsX2F0 b21pY19zdGF0ZShuZXdfY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZSk7Cj4gKwkJdG9faW50ZWxfYXRv bWljX3N0YXRlKG5ld19jcnRjX3N0YXRlLT51YXBpLnN0YXRlKTsKPiAgCWNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSA9Cj4gIAkJaW50ZWxfYXRvbWljX2dldF9v bGRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7Cj4gIAo+IEBAIC0xMTgwNywxMCArMTE4MDcsMTAg QEAgc3RhdGljIGludCBpbnRlbF9jcnRjX2F0b21pY19jaGVjayhzdHJ1Y3QgaW50ZWxfYXRvbWlj X3N0YXRlICpzdGF0ZSwKPiAgCSAqIHdoZW4gQzggcGxhbmVzIGFyZSBnZXR0aW5nIGVuYWJsZWQv ZGlzYWJsZWQuCj4gIAkgKi8KPiAgCWlmIChjOF9wbGFuZXNfY2hhbmdlZChjcnRjX3N0YXRlKSkK PiAtCQljcnRjX3N0YXRlLT5iYXNlLmNvbG9yX21nbXRfY2hhbmdlZCA9IHRydWU7Cj4gKwkJY3J0 Y19zdGF0ZS0+dWFwaS5jb2xvcl9tZ210X2NoYW5nZWQgPSB0cnVlOwo+ICAKPiAgCWlmIChtb2Rl X2NoYW5nZWQgfHwgY3J0Y19zdGF0ZS0+dXBkYXRlX3BpcGUgfHwKPiAtCSAgICBjcnRjX3N0YXRl LT5iYXNlLmNvbG9yX21nbXRfY2hhbmdlZCkgewo+ICsJICAgIGNydGNfc3RhdGUtPnVhcGkuY29s b3JfbWdtdF9jaGFuZ2VkKSB7Cj4gIAkJcmV0ID0gaW50ZWxfY29sb3JfY2hlY2soY3J0Y19zdGF0 ZSk7Cj4gIAkJaWYgKHJldCkKPiAgCQkJcmV0dXJuIHJldDsKPiBAQCAtMTE5MjgsNyArMTE5Mjgs NyBAQCBjb21wdXRlX2Jhc2VsaW5lX3BpcGVfYnBwKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ ICAJCQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKPiAgewo+ICAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7 Cj4gLQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBwaXBlX2NvbmZpZy0+YmFzZS5z dGF0ZTsKPiArCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IHBpcGVfY29uZmlnLT51 YXBpLnN0YXRlOwo+ICAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKPiAgCXN0cnVj dCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uZWN0b3Jfc3RhdGU7Cj4gIAlpbnQgYnBwLCBpOwo+ IEBAIC0xMjA4MSw3ICsxMjA4MSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2R1bXBfcGlwZV9jb25m aWcoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAo+ICAJCQkJICAg c3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gIAkJCQkgICBjb25zdCBjaGFyICpj b250ZXh0KQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMo cGlwZV9jb25maWctPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMocGlwZV9jb25maWctPnVhcGkuY3J0Yyk7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKPiAgCWNvbnN0IHN0 cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGU7Cj4gIAlzdHJ1Y3QgaW50ZWxfcGxh bmUgKnBsYW5lOwo+IEBAIC0xMjI1OCw3ICsxMjI1OCw3IEBAIHN0YXRpYyBpbnQKPiAgY2xlYXJf aW50ZWxfY3J0Y19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAg ewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KPiAtCQl0b19pOTE1KGNy dGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKPiArCQl0b19pOTE1KGNydGNfc3RhdGUtPnVhcGku Y3J0Yy0+ZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpzYXZlZF9zdGF0ZTsKPiAg Cj4gIAlzYXZlZF9zdGF0ZSA9IGt6YWxsb2Moc2l6ZW9mKCpzYXZlZF9zdGF0ZSksIEdGUF9LRVJO RUwpOwo+IEBAIC0xMjI4NCw4ICsxMjI4NCw4IEBAIGNsZWFyX2ludGVsX2NydGNfc3RhdGUoc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIAlCVUlMRF9CVUdfT04ob2Zmc2V0 b2Yoc3RydWN0IGludGVsX2NydGNfc3RhdGUsIGJhc2UpKTsKPiAgCUJVSUxEX0JVR19PTihvZmZz ZXRvZihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSwgdWFwaSkpOwo+ICAJQlVJTERfQlVHX09OKG9m ZnNldG9mKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlLCBodykpOwo+IC0JbWVtY3B5KCZjcnRjX3N0 YXRlLT5iYXNlICsgMSwgJnNhdmVkX3N0YXRlLT5iYXNlICsgMSwKPiAtCSAgICAgICBzaXplb2Yo KmNydGNfc3RhdGUpIC0gc2l6ZW9mKGNydGNfc3RhdGUtPmJhc2UpKTsKPiArCW1lbWNweSgmY3J0 Y19zdGF0ZS0+dWFwaSArIDEsICZzYXZlZF9zdGF0ZS0+dWFwaSArIDEsCj4gKwkgICAgICAgc2l6 ZW9mKCpjcnRjX3N0YXRlKSAtIHNpemVvZihjcnRjX3N0YXRlLT51YXBpKSk7Cj4gIAo+ICAJa2Zy ZWUoc2F2ZWRfc3RhdGUpOwo+ICAJcmV0dXJuIDA7Cj4gQEAgLTEyMjk0LDggKzEyMjk0LDggQEAg Y2xlYXJfaW50ZWxfY3J0Y19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSkKPiAgc3RhdGljIGludAo+ICBpbnRlbF9tb2Rlc2V0X3BpcGVfY29uZmlnKHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKPiAgewo+IC0Jc3RydWN0IGRybV9jcnRjICpjcnRj ID0gcGlwZV9jb25maWctPmJhc2UuY3J0YzsKPiAtCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSA9IHBpcGVfY29uZmlnLT5iYXNlLnN0YXRlOwo+ICsJc3RydWN0IGRybV9jcnRjICpjcnRj ID0gcGlwZV9jb25maWctPnVhcGkuY3J0YzsKPiArCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSA9IHBpcGVfY29uZmlnLT51YXBpLnN0YXRlOwo+ICAJc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXI7Cj4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+ICAJc3RydWN0 IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5lY3Rvcl9zdGF0ZTsKPiBAQCAtMTI1NjAsNyArMTI1 NjAsNyBAQCBpbnRlbF9waXBlX2NvbmZpZ19jb21wYXJlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjdXJyZW50X2NvbmZpZywKPiAgCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqcGlwZV9jb25maWcsCj4gIAkJCSAgYm9vbCBmYXN0c2V0KQo+ICB7Cj4gLQlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGN1cnJlbnRfY29uZmlnLT5iYXNl LmNydGMtPmRldik7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGN1cnJlbnRfY29uZmlnLT51YXBpLmNydGMtPmRldik7Cj4gIAlib29sIHJldCA9IHRydWU7 Cj4gIAl1MzIgYnBfZ2FtbWEgPSAwOwo+ICAJYm9vbCBmaXh1cF9pbmhlcml0ZWQgPSBmYXN0c2V0 ICYmCj4gQEAgLTEzMTA4LDEyICsxMzEwOCwxMiBAQCB2ZXJpZnlfY3J0Y19zdGF0ZShzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YywKPiAgCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKPiAg CWJvb2wgYWN0aXZlOwo+ICAKPiAtCXN0YXRlID0gb2xkX2NydGNfc3RhdGUtPmJhc2Uuc3RhdGU7 Cj4gLQlfX2RybV9hdG9taWNfaGVscGVyX2NydGNfZGVzdHJveV9zdGF0ZSgmb2xkX2NydGNfc3Rh dGUtPmJhc2UpOwo+ICsJc3RhdGUgPSBvbGRfY3J0Y19zdGF0ZS0+dWFwaS5zdGF0ZTsKPiArCV9f ZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kZXN0cm95X3N0YXRlKCZvbGRfY3J0Y19zdGF0ZS0+dWFw aSk7Cj4gIAlwaXBlX2NvbmZpZyA9IG9sZF9jcnRjX3N0YXRlOwo+ICAJbWVtc2V0KHBpcGVfY29u ZmlnLCAwLCBzaXplb2YoKnBpcGVfY29uZmlnKSk7Cj4gLQlwaXBlX2NvbmZpZy0+YmFzZS5jcnRj ID0gJmNydGMtPmJhc2U7Cj4gLQlwaXBlX2NvbmZpZy0+YmFzZS5zdGF0ZSA9IHN0YXRlOwo+ICsJ cGlwZV9jb25maWctPnVhcGkuY3J0YyA9ICZjcnRjLT5iYXNlOwo+ICsJcGlwZV9jb25maWctPnVh cGkuc3RhdGUgPSBzdGF0ZTsKPiAgCj4gIAlEUk1fREVCVUdfS01TKCJbQ1JUQzolZDolc11cbiIs IGNydGMtPmJhc2UuYmFzZS5pZCwgY3J0Yy0+YmFzZS5uYW1lKTsKPiAgCj4gQEAgLTEzMjkzLDcg KzEzMjkzLDcgQEAgaW50ZWxfbW9kZXNldF92ZXJpZnlfZGlzYWJsZWQoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAo+ICBzdGF0aWMgdm9pZAo+ICBpbnRlbF9jcnRjX3VwZGF0ZV9h Y3RpdmVfdGltaW5ncyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkK PiAgewo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3Rh dGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ICAJY29uc3Qgc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQo+ICAJCSZjcnRjX3N0YXRlLT5ody5hZGp1c3Rl ZF9tb2RlOwo+IEBAIC0xMzQ5MCw3ICsxMzQ5MCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2NydGNf Y2hlY2tfZmFzdHNldChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3Rh Cj4gIAlpZiAoIWludGVsX3BpcGVfY29uZmlnX2NvbXBhcmUob2xkX2NydGNfc3RhdGUsIG5ld19j cnRjX3N0YXRlLCB0cnVlKSkKPiAgCQlyZXR1cm47Cj4gIAo+IC0JbmV3X2NydGNfc3RhdGUtPmJh c2UubW9kZV9jaGFuZ2VkID0gZmFsc2U7Cj4gKwluZXdfY3J0Y19zdGF0ZS0+dWFwaS5tb2RlX2No YW5nZWQgPSBmYWxzZTsKPiAgCW5ld19jcnRjX3N0YXRlLT51cGRhdGVfcGlwZSA9IHRydWU7Cj4g IAo+ICAJLyoKPiBAQCAtMTM1NjMsNyArMTM1NjMsNyBAQCBzdGF0aWMgaW50IGludGVsX2F0b21p Y19jaGVjayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCQkJCSAgICBuZXdfY3J0Y19zdGF0 ZSwgaSkgewo+ICAJCWlmIChuZXdfY3J0Y19zdGF0ZS0+aHcubW9kZS5wcml2YXRlX2ZsYWdzICE9 Cj4gIAkJICAgIG9sZF9jcnRjX3N0YXRlLT5ody5tb2RlLnByaXZhdGVfZmxhZ3MpCj4gLQkJCW5l d19jcnRjX3N0YXRlLT5iYXNlLm1vZGVfY2hhbmdlZCA9IHRydWU7Cj4gKwkJCW5ld19jcnRjX3N0 YXRlLT51YXBpLm1vZGVfY2hhbmdlZCA9IHRydWU7Cj4gIAl9Cj4gIAo+ICAJcmV0ID0gZHJtX2F0 b21pY19oZWxwZXJfY2hlY2tfbW9kZXNldChkZXYsICZzdGF0ZS0+YmFzZSk7Cj4gQEAgLTEzNjg3 LDcgKzEzNjg3LDcgQEAgdm9pZCBpbnRlbF9jcnRjX2FybV9maWZvX3VuZGVycnVuKHN0cnVjdCBp bnRlbF9jcnRjICpjcnRjLAo+ICBzdGF0aWMgdm9pZCBpbnRlbF9waXBlX2Zhc3RzZXQoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAo+ICAJCQkgICAgICAgY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlKQo+ICB7Cj4gLQlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMobmV3X2NydGNfc3RhdGUtPmJhc2Uu Y3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMobmV3X2Ny dGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKPiAgCj4gIAkvKiBkcm1fYXRvbWljX2hlbHBl cl91cGRhdGVfbGVnYWN5X21vZGVzZXRfc3RhdGUgbWlnaHQgbm90IGJlIGNhbGxlZC4gKi8KPiBA QCAtMTM3MzIsNyArMTM3MzIsNyBAQCBzdGF0aWMgdm9pZCBjb21taXRfcGlwZV9jb25maWcoc3Ry dWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gIAkgKiBDUlRDIHdhcyBlbmFibGVkLgo+ ICAJICovCj4gIAlpZiAoIW1vZGVzZXQpIHsKPiAtCQlpZiAobmV3X2NydGNfc3RhdGUtPmJhc2Uu Y29sb3JfbWdtdF9jaGFuZ2VkIHx8Cj4gKwkJaWYgKG5ld19jcnRjX3N0YXRlLT51YXBpLmNvbG9y X21nbXRfY2hhbmdlZCB8fAo+ICAJCSAgICBuZXdfY3J0Y19zdGF0ZS0+dXBkYXRlX3BpcGUpCj4g IAkJCWludGVsX2NvbG9yX2NvbW1pdChuZXdfY3J0Y19zdGF0ZSk7Cj4gIAo+IEBAIC0xMzkzOCw3 ICsxMzkzOCw3IEBAIHN0YXRpYyB2b2lkIHNrbF9jb21taXRfbW9kZXNldF9lbmFibGVzKHN0cnVj dCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICAJCQkgKi8KPiAgCQkJaWYgKCFza2xfZGRi X2VudHJ5X2VxdWFsKCZuZXdfY3J0Y19zdGF0ZS0+d20uc2tsLmRkYiwKPiAgCQkJCQkJICZvbGRf Y3J0Y19zdGF0ZS0+d20uc2tsLmRkYikgJiYKPiAtCQkJICAgICFuZXdfY3J0Y19zdGF0ZS0+YmFz ZS5hY3RpdmVfY2hhbmdlZCAmJgo+ICsJCQkgICAgIW5ld19jcnRjX3N0YXRlLT51YXBpLmFjdGl2 ZV9jaGFuZ2VkICYmCj4gIAkJCSAgICBzdGF0ZS0+d21fcmVzdWx0cy5kaXJ0eV9waXBlcyAhPSB1 cGRhdGVkKQo+ICAJCQkJdmJsX3dhaXQgPSB0cnVlOwo+ICAKPiBAQCAtMTQwNzEsMTIgKzE0MDcx LDEzIEBAIHN0YXRpYyB2b2lkIGludGVsX2F0b21pY19jb21taXRfdGFpbChzdHJ1Y3QgaW50ZWxf YXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgCQlib29sIG1vZGVzZXQgPSBuZWVkc19tb2Rlc2V0KG5l d19jcnRjX3N0YXRlKTsKPiAgCj4gIAkJLyogQ29tcGxldGUgZXZlbnRzIGZvciBub3cgZGlzYWJs ZSBwaXBlcyBoZXJlLiAqLwo+IC0JCWlmIChtb2Rlc2V0ICYmICFuZXdfY3J0Y19zdGF0ZS0+aHcu YWN0aXZlICYmIG5ld19jcnRjX3N0YXRlLT5iYXNlLmV2ZW50KSB7Cj4gKwkJaWYgKG1vZGVzZXQg JiYgIW5ld19jcnRjX3N0YXRlLT5ody5hY3RpdmUgJiYgbmV3X2NydGNfc3RhdGUtPnVhcGkuZXZl bnQpIHsKPiAgCQkJc3Bpbl9sb2NrX2lycSgmZGV2LT5ldmVudF9sb2NrKTsKPiAtCQkJZHJtX2Ny dGNfc2VuZF92YmxhbmtfZXZlbnQoJmNydGMtPmJhc2UsIG5ld19jcnRjX3N0YXRlLT5iYXNlLmV2 ZW50KTsKPiArCQkJZHJtX2NydGNfc2VuZF92YmxhbmtfZXZlbnQoJmNydGMtPmJhc2UsCj4gKwkJ CQkJCSAgIG5ld19jcnRjX3N0YXRlLT51YXBpLmV2ZW50KTsKPiAgCQkJc3Bpbl91bmxvY2tfaXJx KCZkZXYtPmV2ZW50X2xvY2spOwo+ICAKPiAtCQkJbmV3X2NydGNfc3RhdGUtPmJhc2UuZXZlbnQg PSBOVUxMOwo+ICsJCQluZXdfY3J0Y19zdGF0ZS0+dWFwaS5ldmVudCA9IE5VTEw7Cj4gIAkJfQo+ ICAJfQo+ICAKPiBAQCAtMTQxMDksNyArMTQxMTAsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9hdG9t aWNfY29tbWl0X3RhaWwoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIAlmb3Jf ZWFjaF9uZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgbmV3X2NydGNfc3RhdGUs IGkpIHsKPiAgCQlpZiAobmV3X2NydGNfc3RhdGUtPmh3LmFjdGl2ZSAmJgo+ICAJCSAgICAhbmVl ZHNfbW9kZXNldChuZXdfY3J0Y19zdGF0ZSkgJiYKPiAtCQkgICAgKG5ld19jcnRjX3N0YXRlLT5i YXNlLmNvbG9yX21nbXRfY2hhbmdlZCB8fAo+ICsJCSAgICAobmV3X2NydGNfc3RhdGUtPnVhcGku Y29sb3JfbWdtdF9jaGFuZ2VkIHx8Cj4gIAkJICAgICBuZXdfY3J0Y19zdGF0ZS0+dXBkYXRlX3Bp cGUpKQo+ICAJCQlpbnRlbF9jb2xvcl9sb2FkX2x1dHMobmV3X2NydGNfc3RhdGUpOwo+ICAJfQo+ IEBAIC0xNDU1Nyw3ICsxNDU1OCw3IEBAIGludAo+ICBza2xfbWF4X3NjYWxlKGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJICAgICAgY29uc3Qgc3RydWN0IGRy bV9mb3JtYXRfaW5mbyAqZm9ybWF0KQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9 IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ICAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7 Cj4gIAlpbnQgbWF4X3NjYWxlOwo+ICAJaW50IGNydGNfY2xvY2ssIG1heF9kb3RjbGssIHRtcGNs azEsIHRtcGNsazI7Cj4gQEAgLTE0NTY2LDcgKzE0NTY3LDcgQEAgc2tsX21heF9zY2FsZShjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQlyZXR1cm4gRFJNX1BM QU5FX0hFTFBFUl9OT19TQ0FMSU5HOwo+ICAKPiAgCWNydGNfY2xvY2sgPSBjcnRjX3N0YXRlLT5o dy5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2s7Cj4gLQltYXhfZG90Y2xrID0gdG9faW50ZWxfYXRv bWljX3N0YXRlKGNydGNfc3RhdGUtPmJhc2Uuc3RhdGUpLT5jZGNsay5sb2dpY2FsLmNkY2xrOwo+ ICsJbWF4X2RvdGNsayA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShjcnRjX3N0YXRlLT51YXBpLnN0 YXRlKS0+Y2RjbGsubG9naWNhbC5jZGNsazsKPiAgCj4gIAlpZiAoSVNfR0VNSU5JTEFLRShkZXZf cHJpdikgfHwgSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMCkKPiAgCQltYXhfZG90Y2xrICo9IDI7 Cj4gQEAgLTE0Nzg2LDcgKzE0Nzg3LDcgQEAgaW50ZWxfbGVnYWN5X2N1cnNvcl91cGRhdGUoc3Ry dWN0IGRybV9wbGFuZSAqX3BsYW5lLAo+ICAKPiAgb3V0X2ZyZWU6Cj4gIAlpZiAobmV3X2NydGNf c3RhdGUpCj4gLQkJaW50ZWxfY3J0Y19kZXN0cm95X3N0YXRlKCZjcnRjLT5iYXNlLCAmbmV3X2Ny dGNfc3RhdGUtPmJhc2UpOwo+ICsJCWludGVsX2NydGNfZGVzdHJveV9zdGF0ZSgmY3J0Yy0+YmFz ZSwgJm5ld19jcnRjX3N0YXRlLT51YXBpKTsKPiAgCWlmIChyZXQpCj4gIAkJaW50ZWxfcGxhbmVf ZGVzdHJveV9zdGF0ZSgmcGxhbmUtPmJhc2UsICZuZXdfcGxhbmVfc3RhdGUtPmJhc2UpOwo+ICAJ ZWxzZQo+IEBAIC0xNTExMiw3ICsxNTExMyw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19pbml0 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwaXBlIHBpcGUpCj4gIAkJ cmV0ID0gLUVOT01FTTsKPiAgCQlnb3RvIGZhaWw7Cj4gIAl9Cj4gLQlfX2RybV9hdG9taWNfaGVs cGVyX2NydGNfcmVzZXQoJmludGVsX2NydGMtPmJhc2UsICZjcnRjX3N0YXRlLT5iYXNlKTsKPiAr CV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19yZXNldCgmaW50ZWxfY3J0Yy0+YmFzZSwgJmNydGNf c3RhdGUtPnVhcGkpOwo+ICAJaW50ZWxfY3J0Yy0+Y29uZmlnID0gY3J0Y19zdGF0ZTsKPiAgCj4g IAlwcmltYXJ5ID0gaW50ZWxfcHJpbWFyeV9wbGFuZV9jcmVhdGUoZGV2X3ByaXYsIHBpcGUpOwo+ IEBAIC0xNjEyOCw3ICsxNjEyOSw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfaW5pdGlhbF9jb21taXQo c3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCQkJICogaGF2aW5nIGEgcHJvcGVyIExVVCBsb2Fk ZWQuIFJlbW92ZSBvbmNlIHdlCj4gIAkJCSAqIGhhdmUgcmVhZG91dCBmb3IgcGlwZSBnYW1tYSBl bmFibGUuCj4gIAkJCSAqLwo+IC0JCQljcnRjX3N0YXRlLT5iYXNlLmNvbG9yX21nbXRfY2hhbmdl ZCA9IHRydWU7Cj4gKwkJCWNydGNfc3RhdGUtPnVhcGkuY29sb3JfbWdtdF9jaGFuZ2VkID0gdHJ1 ZTsKPiAgCQl9Cj4gIAl9Cj4gIAo+IEBAIC0xNjUyNiw3ICsxNjUyNyw3IEBAIHN0YXRpYyB2b2lk IGludGVsX3Nhbml0aXplX2NydGMoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gIAo+ICBzdGF0 aWMgYm9vbCBoYXNfYm9ndXNfZHBsbF9jb25maWcoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOwo+ICsJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNydGMtPmRl dik7Cj4gIAo+ICAJLyoKPiAgCSAqIFNvbWUgU05CIEJJT1NlbiAoZWcuIEFTVVMgSzUzU1YpIGFy ZSBrbm93biB0byBtaXNwcm9ncmFtCj4gQEAgLTE2NjYwLDkgKzE2NjYxLDkgQEAgc3RhdGljIHZv aWQgaW50ZWxfbW9kZXNldF9yZWFkb3V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp Cj4gIAkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPQo+ICAJCQl0b19pbnRl bF9jcnRjX3N0YXRlKGNydGMtPmJhc2Uuc3RhdGUpOwo+ICAKPiAtCQlfX2RybV9hdG9taWNfaGVs cGVyX2NydGNfZGVzdHJveV9zdGF0ZSgmY3J0Y19zdGF0ZS0+YmFzZSk7Cj4gKwkJX19kcm1fYXRv bWljX2hlbHBlcl9jcnRjX2Rlc3Ryb3lfc3RhdGUoJmNydGNfc3RhdGUtPnVhcGkpOwo+ICAJCW1l bXNldChjcnRjX3N0YXRlLCAwLCBzaXplb2YoKmNydGNfc3RhdGUpKTsKPiAtCQlfX2RybV9hdG9t aWNfaGVscGVyX2NydGNfcmVzZXQoJmNydGMtPmJhc2UsICZjcnRjX3N0YXRlLT5iYXNlKTsKPiAr CQlfX2RybV9hdG9taWNfaGVscGVyX2NydGNfcmVzZXQoJmNydGMtPmJhc2UsICZjcnRjX3N0YXRl LT51YXBpKTsKPiAgCj4gIAkJY3J0Y19zdGF0ZS0+aHcuYWN0aXZlID0gY3J0Y19zdGF0ZS0+aHcu ZW5hYmxlID0KPiAgCQkJZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X3BpcGVfY29uZmlnKGNydGMsIGNy dGNfc3RhdGUpOwo+IEBAIC0xNjc0OCw5ICsxNjc0OSw5IEBAIHN0YXRpYyB2b2lkIGludGVsX21v ZGVzZXRfcmVhZG91dF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJCQkJICog YmVjYXVzZSBhbnl0aGluZyBjYWxsaW5nIC5jcnRjX2Rpc2FibGUgbWF5Cj4gIAkJCQkgKiByZWx5 IG9uIHRoZSBjb25uZWN0b3JfbWFzayBiZWluZyBhY2N1cmF0ZS4KPiAgCQkJCSAqLwo+IC0JCQkJ Y3J0Y19zdGF0ZS0+YmFzZS5jb25uZWN0b3JfbWFzayB8PQo+ICsJCQkJY3J0Y19zdGF0ZS0+dWFw aS5jb25uZWN0b3JfbWFzayB8PQo+ICAJCQkJCWRybV9jb25uZWN0b3JfbWFzaygmY29ubmVjdG9y LT5iYXNlKTsKPiAtCQkJCWNydGNfc3RhdGUtPmJhc2UuZW5jb2Rlcl9tYXNrIHw9Cj4gKwkJCQlj cnRjX3N0YXRlLT51YXBpLmVuY29kZXJfbWFzayB8PQo+ICAJCQkJCWRybV9lbmNvZGVyX21hc2so JmVuY29kZXItPmJhc2UpOwo+ICAJCQl9Cj4gIAkJfSBlbHNlIHsKPiBAQCAtMTY3NzgsNyArMTY3 NzksNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9tb2Rlc2V0X3JlYWRvdXRfaHdfc3RhdGUoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKPiAgCQkJY3J0Yy0+YmFzZS5tb2RlLnZkaXNwbGF5ID0gY3J0Y19z dGF0ZS0+cGlwZV9zcmNfaDsKPiAgCQkJaW50ZWxfbW9kZV9mcm9tX3BpcGVfY29uZmlnKCZjcnRj X3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlLAo+ICAJCQkJCQkgICAgY3J0Y19zdGF0ZSk7Cj4gLQkJ CVdBUk5fT04oZHJtX2F0b21pY19zZXRfbW9kZV9mb3JfY3J0YygmY3J0Y19zdGF0ZS0+YmFzZSwg JmNydGMtPmJhc2UubW9kZSkpOwo+ICsJCQlXQVJOX09OKGRybV9hdG9taWNfc2V0X21vZGVfZm9y X2NydGMoJmNydGNfc3RhdGUtPnVhcGksICZjcnRjLT5iYXNlLm1vZGUpKTsKPiAgCj4gIAkJCS8q Cj4gIAkJCSAqIFRoZSBpbml0aWFsIG1vZGUgbmVlZHMgdG8gYmUgc2V0IGluIG9yZGVyIHRvIGtl ZXAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jCj4gaW5kZXggMjEzYjBj MGNkZDY3Li43ZDY5MWY2ZmMzNjkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9kcC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kcC5jCj4gQEAgLTIyMjIsNyArMjIyMiw3IEBAIGludGVsX2RwX3ljYmNyNDIwX2NvbmZp ZyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ICAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5 X2luZm8gKmluZm8gPSAmY29ubmVjdG9yLT5kaXNwbGF5X2luZm87Cj4gIAljb25zdCBzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Cj4gIAkJJmNydGNfc3RhdGUtPmh3LmFk anVzdGVkX21vZGU7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMo Y3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ICAJaW50IHJldDsKPiAgCj4gIAlp ZiAoIWRybV9tb2RlX2lzXzQyMF9vbmx5KGluZm8sIGFkanVzdGVkX21vZGUpIHx8Cj4gQEAgLTIy ODcsNyArMjI4Nyw3IEBAIGludGVsX2RwX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAo+ICAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRl bF9kcCgmZW5jb2Rlci0+YmFzZSk7Cj4gIAlzdHJ1Y3QgaW50ZWxfbHNwY29uICpsc3Bjb24gPSBl bmNfdG9faW50ZWxfbHNwY29uKCZlbmNvZGVyLT5iYXNlKTsKPiAgCWVudW0gcG9ydCBwb3J0ID0g ZW5jb2Rlci0+cG9ydDsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50 ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpp bnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRjKTsKPiAgCXN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvciA9IGludGVsX2RwLT5hdHRhY2hl ZF9jb25uZWN0b3I7Cj4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9jb25uZWN0b3Jfc3RhdGUgKmlu dGVsX2Nvbm5fc3RhdGUgPQo+ICAJCXRvX2ludGVsX2RpZ2l0YWxfY29ubmVjdG9yX3N0YXRlKGNv bm5fc3RhdGUpOwo+IEBAIC0yNDAyLDcgKzI0MDIsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kcF9w cmVwYXJlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gIAlzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsK PiAgCWVudW0gcG9ydCBwb3J0ID0gZW5jb2Rlci0+cG9ydDsKPiAtCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRjKTsKPiArCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRj KTsKPiAgCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBp cGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwo+ICAKPiAgCWludGVsX2RwX3NldF9saW5rX3Bh cmFtcyhpbnRlbF9kcCwgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCj4gQEAgLTMwMDAsNyArMzAw MCw3IEBAIHN0YXRpYyB2b2lkIGFzc2VydF9lZHBfcGxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwgYm9vbCBzdGF0ZSkKPiAgc3RhdGljIHZvaWQgaXJvbmxha2VfZWRwX3BsbF9v bihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ICAJCQkJY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKnBpcGVfY29uZmlnKQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9 IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPnVhcGkuY3J0Yyk7Cj4gIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2 KTsKPiAgCj4gIAlhc3NlcnRfcGlwZV9kaXNhYmxlZChkZXZfcHJpdiwgY3J0Yy0+cGlwZSk7Cj4g QEAgLTMwNDAsNyArMzA0MCw3IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX2VkcF9wbGxfb24oc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCwKPiAgc3RhdGljIHZvaWQgaXJvbmxha2VfZWRwX3BsbF9v ZmYoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiAgCQkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUpCj4gIHsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+dWFwaS5j cnRjKTsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0 Yy0+YmFzZS5kZXYpOwo+ICAKPiAgCWFzc2VydF9waXBlX2Rpc2FibGVkKGRldl9wcml2LCBjcnRj LT5waXBlKTsKPiBAQCAtMzIwMCw3ICszMjAwLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHBfZ2V0 X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCXN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwo+ICAJdTMyIHRt cCwgZmxhZ3MgPSAwOwo+ICAJZW51bSBwb3J0IHBvcnQgPSBlbmNvZGVyLT5wb3J0Owo+IC0Jc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNy dGMpOwo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29u ZmlnLT51YXBpLmNydGMpOwo+ICAKPiAgCWlmIChlbmNvZGVyLT50eXBlID09IElOVEVMX09VVFBV VF9FRFApCj4gIAkJcGlwZV9jb25maWctPm91dHB1dF90eXBlcyB8PSBCSVQoSU5URUxfT1VUUFVU X0VEUCk7Cj4gQEAgLTM0NjcsNyArMzQ2Nyw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2VuYWJsZV9k cChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gIAlzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsK PiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+ YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhw aXBlX2NvbmZpZy0+dWFwaS5jcnRjKTsKPiAgCXUzMiBkcF9yZWcgPSBJOTE1X1JFQUQoaW50ZWxf ZHAtPm91dHB1dF9yZWcpOwo+ICAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ICAJaW50 ZWxfd2FrZXJlZl90IHdha2VyZWY7Cj4gQEAgLTM2MDAsNyArMzYwMCw3IEBAIHN0YXRpYyB2b2lk IHZsdl9pbml0X3BhbmVsX3Bvd2VyX3NlcXVlbmNlcihzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShlbmNvZGVyLT5iYXNlLmRldik7Cj4gIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5j X3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj ID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gIAo+ ICAJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPnBwc19tdXRleCk7Cj4gIAo+IEBAIC00 MTIyLDcgKzQxMjIsNyBAQCBpbnRlbF9kcF9saW5rX2Rvd24oc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9 IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPnVhcGku Y3J0Yyk7Cj4gIAllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7Cj4gIAl1MzIgRFAgPSBp bnRlbF9kcC0+RFA7Cj4gIAo+IEBAIC02ODc0LDcgKzY4NzQsNyBAQCBzdGF0aWMgdm9pZCBpbnRl bF9kcF9zZXRfZHJyc19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4g IAkJCQkgICAgaW50IHJlZnJlc2hfcmF0ZSkKPiAgewo+ICAJc3RydWN0IGludGVsX2RwICppbnRl bF9kcCA9IGRldl9wcml2LT5kcnJzLmRwOwo+IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2Ny dGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50 ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRj KTsKPiAgCWVudW0gZHJyc19yZWZyZXNoX3JhdGVfdHlwZSBpbmRleCA9IERSUlNfSElHSF9SUjsK PiAgCj4gIAlpZiAocmVmcmVzaF9yYXRlIDw9IDApIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9tc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmMKPiBpbmRleCA3ZDYzZjBhNzljYTEuLmFkZjFkMzg5NTQx OSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwX21z dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9tc3QuYwo+ IEBAIC00Miw3ICs0Miw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfZHBfbXN0X2NvbXB1dGVfbGlua19j b25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCQkJICAgIHN0cnVjdCBk cm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlLAo+ICAJCQkJCSAgICBzdHJ1Y3QgbGlua19j b25maWdfbGltaXRzICpsaW1pdHMpCj4gIHsKPiAtCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSA9IGNydGNfc3RhdGUtPmJhc2Uuc3RhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT51YXBpLnN0YXRlOwo+ICAJc3RydWN0IGludGVsX2RwX21z dF9lbmNvZGVyICppbnRlbF9tc3QgPSBlbmNfdG9fbXN0KCZlbmNvZGVyLT5iYXNlKTsKPiAgCXN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSAmaW50ZWxfbXN0LT5wcmltYXJ5LT5kcDsKPiAgCXN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciA9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBpb19waHkuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZHBpb19waHkuYwo+IGluZGV4IDU1NmQxYjMwZjA2YS4uNzA0ZjM4 NjgxYzRiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZHBpb19waHkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBp b19waHkuYwo+IEBAIC03MzksNyArNzM5LDcgQEAgdm9pZCBjaHZfZGF0YV9sYW5lX3NvZnRfcmVz ZXQoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICAJZW51 bSBkcGlvX2NoYW5uZWwgY2ggPSB2bHZfZHBvcnRfdG9fY2hhbm5lbChlbmNfdG9fZGlnX3BvcnQo JmVuY29kZXItPmJhc2UpKTsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMg PSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gIAllbnVtIHBpcGUgcGlw ZSA9IGNydGMtPnBpcGU7Cj4gIAl1MzIgdmFsOwo+ICAKPiBAQCAtNzgzLDcgKzc4Myw3IEBAIHZv aWQgY2h2X3BoeV9wcmVfcGxsX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK PiAgewo+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZHBvcnQgPSBlbmNfdG9fZGlnX3Bv cnQoJmVuY29kZXItPmJhc2UpOwo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ICAJ ZW51bSBkcGlvX2NoYW5uZWwgY2ggPSB2bHZfZHBvcnRfdG9fY2hhbm5lbChkcG9ydCk7Cj4gIAll bnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4gIAl1bnNpZ25lZCBpbnQgbGFuZV9tYXNrID0K PiBAQCAtODY0LDcgKzg2NCw3IEBAIHZvaWQgY2h2X3BoeV9wcmVfZW5jb2Rlcl9lbmFibGUoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw ID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKPiAgCXN0cnVjdCBpbnRlbF9kaWdp dGFsX3BvcnQgKmRwb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwo+ICAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4g LQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFz ZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT51YXBpLmNydGMpOwo+ICAJZW51bSBkcGlvX2NoYW5uZWwgY2ggPSB2bHZfZHBvcnRf dG9fY2hhbm5lbChkcG9ydCk7Cj4gIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4gIAlp bnQgZGF0YSwgaSwgc3RhZ2dlcjsKPiBAQCAtOTUzLDcgKzk1Myw3IEBAIHZvaWQgY2h2X3BoeV9w b3N0X3BsbF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkgICAg ICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUpCj4gIHsKPiAg CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFz ZS5kZXYpOwo+IC0JZW51bSBwaXBlIHBpcGUgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRl LT5iYXNlLmNydGMpLT5waXBlOwo+ICsJZW51bSBwaXBlIHBpcGUgPSB0b19pbnRlbF9jcnRjKG9s ZF9jcnRjX3N0YXRlLT51YXBpLmNydGMpLT5waXBlOwo+ICAJdTMyIHZhbDsKPiAgCj4gIAl2bHZf ZHBpb19nZXQoZGV2X3ByaXYpOwo+IEBAIC0xMDE2LDcgKzEwMTYsNyBAQCB2b2lkIHZsdl9waHlf cHJlX3BsbF9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIHsKPiAgCXN0 cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRwb3J0ID0gZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVy LT5iYXNlKTsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZW5jb2Rlci0+YmFzZS5kZXYpOwo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiAgCWVudW0gZHBpb19j aGFubmVsIHBvcnQgPSB2bHZfZHBvcnRfdG9fY2hhbm5lbChkcG9ydCk7Cj4gIAllbnVtIHBpcGUg cGlwZSA9IGNydGMtPnBpcGU7Cj4gIAo+IEBAIC0xMDQ2LDcgKzEwNDYsNyBAQCB2b2lkIHZsdl9w aHlfcHJlX2VuY29kZXJfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJ c3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFz ZSk7Cj4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkcG9ydCA9IGRwX3RvX2RpZ19wb3J0 KGludGVsX2RwKTsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19p bnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiAgCWVudW0gZHBp b19jaGFubmVsIHBvcnQgPSB2bHZfZHBvcnRfdG9fY2hhbm5lbChkcG9ydCk7Cj4gIAllbnVtIHBp cGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4gIAl1MzIgdmFsOwo+IEBAIC0xMDc1LDcgKzEwNzUsNyBA QCB2b2lkIHZsdl9waHlfcmVzZXRfbGFuZXMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs Cj4gIHsKPiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRwb3J0ID0gZW5jX3RvX2RpZ19w b3J0KCZlbmNvZGVyLT5iYXNlKTsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT51YXBpLmNy dGMpOwo+ICAJZW51bSBkcGlvX2NoYW5uZWwgcG9ydCA9IHZsdl9kcG9ydF90b19jaGFubmVsKGRw b3J0KTsKPiAgCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKPiAgCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBsbF9tZ3IuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBsbF9tZ3IuYwo+IGluZGV4IGVjMTBmYTdkM2M2 OS4uMzNkYjFmNTliNDA2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfZHBsbF9tZ3IuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZHBsbF9tZ3IuYwo+IEBAIC0xMzYsNyArMTM2LDcgQEAgdm9pZCBhc3NlcnRfc2hhcmVk X2RwbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAgKi8KPiAgdm9pZCBp bnRlbF9wcmVwYXJlX3NoYXJlZF9kcGxsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ICAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4gIAlzdHJ1Y3Qg aW50ZWxfc2hhcmVkX2RwbGwgKnBsbCA9IGNydGNfc3RhdGUtPnNoYXJlZF9kcGxsOwo+ICAKPiBA QCAtMTYzLDcgKzE2Myw3IEBAIHZvaWQgaW50ZWxfcHJlcGFyZV9zaGFyZWRfZHBsbChjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgICovCj4gIHZvaWQgaW50ZWxf ZW5hYmxlX3NoYXJlZF9kcGxsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50 ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4gIAlzdHJ1Y3QgaW50ZWxf c2hhcmVkX2RwbGwgKnBsbCA9IGNydGNfc3RhdGUtPnNoYXJlZF9kcGxsOwo+ICAJdW5zaWduZWQg aW50IGNydGNfbWFzayA9IGRybV9jcnRjX21hc2soJmNydGMtPmJhc2UpOwo+IEBAIC0yMDgsNyAr MjA4LDcgQEAgdm9pZCBpbnRlbF9lbmFibGVfc2hhcmVkX2RwbGwoY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gICAqLwo+ICB2b2lkIGludGVsX2Rpc2FibGVfc2hh cmVkX2RwbGwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIHsK PiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5i YXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBs bCAqcGxsID0gY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGw7Cj4gIAl1bnNpZ25lZCBpbnQgY3J0Y19t YXNrID0gZHJtX2NydGNfbWFzaygmY3J0Yy0+YmFzZSk7Cj4gQEAgLTgyNyw3ICs4MjcsNyBAQCBo c3dfZGRpX2hkbWlfZ2V0X2RwbGwoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4g IHN0YXRpYyBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKgo+ICBoc3dfZGRpX2RwX2dldF9kcGxs KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ ZGV2KTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0 Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwo+ICAJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpw bGw7Cj4gIAllbnVtIGludGVsX2RwbGxfaWQgcGxsX2lkOwo+ICAJaW50IGNsb2NrID0gY3J0Y19z dGF0ZS0+cG9ydF9jbG9jazsKPiBAQCAtMTczNiw3ICsxNzM2LDcgQEAgc3RhdGljIGJvb2wKPiAg Ynh0X2RkaV9oZG1pX3BsbF9kaXZpZGVycyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSwKPiAgCQkJICBzdHJ1Y3QgYnh0X2Nsa19kaXYgKmNsa19kaXYpCj4gIHsKPiAtCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMp Owo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUt PnVhcGkuY3J0Yyk7Cj4gIAlzdHJ1Y3QgZHBsbCBiZXN0X2Nsb2NrOwo+ICAKPiAgCS8qIENhbGN1 bGF0ZSBIRE1JIGRpdiAqLwo+IEBAIC0yMjU5LDcgKzIyNTksNyBAQCBzdGF0aWMgYm9vbAo+ICBj bmxfZGRpX2NhbGN1bGF0ZV93cnBsbChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSwKPiAgCQkJc3RydWN0IHNrbF93cnBsbF9wYXJhbXMgKndycGxsX3BhcmFtcykKPiAgewo+IC0J c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5i YXNlLmNydGMtPmRldik7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKPiAgCXUzMiBhZmVfY2xvY2sgPSBj cnRjX3N0YXRlLT5wb3J0X2Nsb2NrICogNTsKPiAgCXUzMiByZWZfY2xvY2s7Cj4gIAl1MzIgZGNv X21pbiA9IDc5OTgwMDA7Cj4gQEAgLTI1MzgsNyArMjUzOCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3Qgc2tsX3dycGxsX3BhcmFtcyB0Z2xfdGJ0X3BsbF8yNE1Iel92YWx1ZXMgPSB7Cj4gIHN0YXRp YyBib29sIGljbF9jYWxjX2RwX2NvbWJvX3BsbChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSwKPiAgCQkJCSAgc3RydWN0IHNrbF93cnBsbF9wYXJhbXMgKnBsbF9wYXJhbXMpCj4g IHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19z dGF0ZS0+YmFzZS5jcnRjLT5kZXYpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNydGMtPmRldik7Cj4gIAljb25zdCBzdHJ1 Y3QgaWNsX2NvbWJvX3BsbF9wYXJhbXMgKnBhcmFtcyA9Cj4gIAkJZGV2X3ByaXYtPmNkY2xrLmh3 LnJlZiA9PSAyNDAwMCA/Cj4gIAkJaWNsX2RwX2NvbWJvX3BsbF8yNE1Iel92YWx1ZXMgOgo+IEBA IC0yNTYwLDcgKzI1NjAsNyBAQCBzdGF0aWMgYm9vbCBpY2xfY2FsY19kcF9jb21ib19wbGwoc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIHN0YXRpYyBib29sIGljbF9jYWxj X3RidF9wbGwoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAkJCSAgICAg c3RydWN0IHNrbF93cnBsbF9wYXJhbXMgKnBsbF9wYXJhbXMpCj4gIHsKPiAtCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5k ZXYpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRj X3N0YXRlLT51YXBpLmNydGMtPmRldik7Cj4gIAo+ICAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikg Pj0gMTIpIHsKPiAgCQlzd2l0Y2ggKGRldl9wcml2LT5jZGNsay5ody5yZWYpIHsKPiBAQCAtMjU5 Nyw3ICsyNTk3LDcgQEAgc3RhdGljIGJvb2wgaWNsX2NhbGNfZHBsbF9zdGF0ZShzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQkJCXN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLAo+ICAJCQkJc3RydWN0IGludGVsX2RwbGxfaHdfc3RhdGUgKnBsbF9zdGF0ZSkKPiAg ewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0 YXRlLT5iYXNlLmNydGMtPmRldik7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKPiAgCXUzMiBjZmdjcjAs IGNmZ2NyMTsKPiAgCXN0cnVjdCBza2xfd3JwbGxfcGFyYW1zIHBsbF9wYXJhbXMgPSB7IDAgfTsK PiAgCWJvb2wgcmV0Owo+IEBAIC0yNzI5LDcgKzI3MjksNyBAQCBzdGF0aWMgYm9vbCBpY2xfbWdf cGxsX2ZpbmRfZGl2aXNvcnMoaW50IGNsb2NrX2toeiwgYm9vbCBpc19kcCwgYm9vbCB1c2Vfc3Nj LAo+ICBzdGF0aWMgYm9vbCBpY2xfY2FsY19tZ19wbGxfc3RhdGUoc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUsCj4gIAkJCQkgIHN0cnVjdCBpbnRlbF9kcGxsX2h3X3N0YXRlICpw bGxfc3RhdGUpCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOwo+ICsJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNydGMtPmRldik7Cj4g IAlpbnQgcmVmY2xrX2toeiA9IGRldl9wcml2LT5jZGNsay5ody5yZWY7Cj4gIAlpbnQgY2xvY2sg PSBjcnRjX3N0YXRlLT5wb3J0X2Nsb2NrOwo+ICAJdTMyIGRjb19raHosIG0xZGl2LCBtMmRpdl9p bnQsIG0yZGl2X3JlbSwgbTJkaXZfZnJhYzsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9kdm8uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZHZvLmMKPiBpbmRleCBhNjhlNWM1YjkxYjQuLjI4NzcwYzU3NjVhZCAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2R2by5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kdm8uYwo+IEBAIC0yNzcsNyArMjc3LDcg QEAgc3RhdGljIHZvaWQgaW50ZWxfZHZvX3ByZV9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCj4gIAkJCQkgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5f c3RhdGUpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19p bnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT51YXBpLmNydGMpOwo+ICAJY29uc3Qg c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmh3 LmFkanVzdGVkX21vZGU7Cj4gIAlzdHJ1Y3QgaW50ZWxfZHZvICppbnRlbF9kdm8gPSBlbmNfdG9f ZHZvKGVuY29kZXIpOwo+ICAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hkbWkuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRtaS5jCj4gaW5kZXggMmY1ZmM3MWFjOWEwLi4z NTdhZDQ1OWJmYmMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9oZG1pLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hk bWkuYwo+IEBAIC0yODUsNyArMjg1LDcgQEAgc3RhdGljIHZvaWQgaWJ4X3dyaXRlX2luZm9mcmFt ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgewo+ICAJY29uc3QgdTMyICpkYXRh ID0gZnJhbWU7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGVuY29kZXItPmJhc2UuZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVsX2Ny dGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4g IAlpOTE1X3JlZ190IHJlZyA9IFRWSURFT19ESVBfQ1RMKGludGVsX2NydGMtPnBpcGUpOwo+ICAJ dTMyIHZhbCA9IEk5MTVfUkVBRChyZWcpOwo+ICAJaW50IGk7Cj4gQEAgLTMyMSw3ICszMjEsNyBA QCBzdGF0aWMgdm9pZCBpYnhfcmVhZF9pbmZvZnJhbWUoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCj4gIAkJCSAgICAgICB2b2lkICpmcmFtZSwgc3NpemVfdCBsZW4pCj4gIHsKPiAgCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5k ZXYpOwo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3Rh dGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiAgCXUzMiB2YWwsICpkYXRhID0gZnJhbWU7Cj4g IAlpbnQgaTsKPiAgCj4gQEAgLTM0MCw3ICszNDAsNyBAQCBzdGF0aWMgdTMyIGlieF9pbmZvZnJh bWVzX2VuYWJsZWQoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCQkgIGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKPiAgewo+ICAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4g LQllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yykt PnBpcGU7Cj4gKwllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPnVh cGkuY3J0YyktPnBpcGU7Cj4gIAlpOTE1X3JlZ190IHJlZyA9IFRWSURFT19ESVBfQ1RMKHBpcGUp Owo+ICAJdTMyIHZhbCA9IEk5MTVfUkVBRChyZWcpOwo+ICAKPiBAQCAtMzYyLDcgKzM2Miw3IEBA IHN0YXRpYyB2b2lkIGNwdF93cml0ZV9pbmZvZnJhbWUoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCj4gIHsKPiAgCWNvbnN0IHUzMiAqZGF0YSA9IGZyYW1lOwo+ICAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gLQlz dHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+ YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ICAJaTkxNV9yZWdfdCByZWcgPSBUVklERU9f RElQX0NUTChpbnRlbF9jcnRjLT5waXBlKTsKPiAgCXUzMiB2YWwgPSBJOTE1X1JFQUQocmVnKTsK PiAgCWludCBpOwo+IEBAIC00MDEsNyArNDAxLDcgQEAgc3RhdGljIHZvaWQgY3B0X3JlYWRfaW5m b2ZyYW1lKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkgICAgICAgdm9pZCAq ZnJhbWUsIHNzaXplX3QgbGVuKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7 Cj4gIAl1MzIgdmFsLCAqZGF0YSA9IGZyYW1lOwo+ICAJaW50IGk7Cj4gIAo+IEBAIC00MjAsNyAr NDIwLDcgQEAgc3RhdGljIHUzMiBjcHRfaW5mb2ZyYW1lc19lbmFibGVkKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAo+ICAJCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq cGlwZV9jb25maWcpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+IC0JZW51bSBwaXBlIHBpcGUgPSB0b19pbnRl bF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpLT5waXBlOwo+ICsJZW51bSBwaXBlIHBpcGUg PSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT51YXBpLmNydGMpLT5waXBlOwo+ICAJdTMyIHZh bCA9IEk5MTVfUkVBRChUVklERU9fRElQX0NUTChwaXBlKSk7Cj4gIAo+ICAJaWYgKCh2YWwgJiBW SURFT19ESVBfRU5BQkxFKSA9PSAwKQo+IEBAIC00MzgsNyArNDM4LDcgQEAgc3RhdGljIHZvaWQg dmx2X3dyaXRlX2luZm9mcmFtZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgewo+ ICAJY29uc3QgdTMyICpkYXRhID0gZnJhbWU7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9j cnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ ICsJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3Rh dGUtPnVhcGkuY3J0Yyk7Cj4gIAlpOTE1X3JlZ190IHJlZyA9IFZMVl9UVklERU9fRElQX0NUTChp bnRlbF9jcnRjLT5waXBlKTsKPiAgCXUzMiB2YWwgPSBJOTE1X1JFQUQocmVnKTsKPiAgCWludCBp Owo+IEBAIC00NzQsNyArNDc0LDcgQEAgc3RhdGljIHZvaWQgdmx2X3JlYWRfaW5mb2ZyYW1lKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkgICAgICAgdm9pZCAqZnJhbWUsIHNz aXplX3QgbGVuKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gIAl1MzIg dmFsLCAqZGF0YSA9IGZyYW1lOwo+ICAJaW50IGk7Cj4gIAo+IEBAIC00OTMsNyArNDkzLDcgQEAg c3RhdGljIHUzMiB2bHZfaW5mb2ZyYW1lc19lbmFibGVkKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLAo+ICAJCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25m aWcpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZW5jb2Rlci0+YmFzZS5kZXYpOwo+IC0JZW51bSBwaXBlIHBpcGUgPSB0b19pbnRlbF9jcnRjKHBp cGVfY29uZmlnLT5iYXNlLmNydGMpLT5waXBlOwo+ICsJZW51bSBwaXBlIHBpcGUgPSB0b19pbnRl bF9jcnRjKHBpcGVfY29uZmlnLT51YXBpLmNydGMpLT5waXBlOwo+ICAJdTMyIHZhbCA9IEk5MTVf UkVBRChWTFZfVFZJREVPX0RJUF9DVEwocGlwZSkpOwo+ICAKPiAgCWlmICgodmFsICYgVklERU9f RElQX0VOQUJMRSkgPT0gMCkKPiBAQCAtOTY1LDcgKzk2NSw3IEBAIHN0YXRpYyBib29sIGludGVs X2hkbWlfc2V0X2djcF9pbmZvZnJhbWUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4g IAkJCQkJIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICB7 Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXIt PmJhc2UuZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19p bnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gIAlpOTE1X3JlZ190IHJlZzsKPiAg Cj4gIAlpZiAoKGNydGNfc3RhdGUtPmluZm9mcmFtZXMuZW5hYmxlICYKPiBAQCAtOTkwLDcgKzk5 MCw3IEBAIHZvaWQgaW50ZWxfaGRtaV9yZWFkX2djcF9pbmZvZnJhbWUoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCj4gIAkJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShlbmNvZGVyLT5iYXNlLmRldik7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2lu dGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ICAJaTkxNV9yZWdf dCByZWc7Cj4gIAo+ICAJaWYgKChjcnRjX3N0YXRlLT5pbmZvZnJhbWVzLmVuYWJsZSAmCj4gQEAg LTEwMzcsNyArMTAzNyw3IEBAIHN0YXRpYyB2b2lkIGlieF9zZXRfaW5mb2ZyYW1lcyhzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fY29u bmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAtCXN0cnVjdCBpbnRl bF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMp Owo+ICsJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNf c3RhdGUtPnVhcGkuY3J0Yyk7Cj4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9k aWdfcG9ydCA9IGVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7Cj4gIAlzdHJ1Y3QgaW50 ZWxfaGRtaSAqaW50ZWxfaGRtaSA9ICZpbnRlbF9kaWdfcG9ydC0+aGRtaTsKPiAgCWk5MTVfcmVn X3QgcmVnID0gVFZJREVPX0RJUF9DVEwoaW50ZWxfY3J0Yy0+cGlwZSk7Cj4gQEAgLTEwOTYsNyAr MTA5Niw3IEBAIHN0YXRpYyB2b2lkIGNwdF9zZXRfaW5mb2ZyYW1lcyhzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKPiAgCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0 YXRlICpjb25uX3N0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpp bnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJc3Ry dWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVh cGkuY3J0Yyk7Cj4gIAlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGVuY190b19pbnRl bF9oZG1pKCZlbmNvZGVyLT5iYXNlKTsKPiAgCWk5MTVfcmVnX3QgcmVnID0gVFZJREVPX0RJUF9D VEwoaW50ZWxfY3J0Yy0+cGlwZSk7Cj4gIAl1MzIgdmFsID0gSTkxNV9SRUFEKHJlZyk7Cj4gQEAg LTExNDUsNyArMTE0NSw3IEBAIHN0YXRpYyB2b2lkIHZsdl9zZXRfaW5mb2ZyYW1lcyhzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fY29u bmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAtCXN0cnVjdCBpbnRl bF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMp Owo+ICsJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNf c3RhdGUtPnVhcGkuY3J0Yyk7Cj4gIAlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGVu Y190b19pbnRlbF9oZG1pKCZlbmNvZGVyLT5iYXNlKTsKPiAgCWk5MTVfcmVnX3QgcmVnID0gVkxW X1RWSURFT19ESVBfQ1RMKGludGVsX2NydGMtPnBpcGUpOwo+ICAJdTMyIHZhbCA9IEk5MTVfUkVB RChyZWcpOwo+IEBAIC0xNzQxLDcgKzE3NDEsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9oZG1pX3By ZXBhcmUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIHsKPiAgCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj ID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gIAlz dHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGVuY190b19pbnRlbF9oZG1pKCZlbmNvZGVy LT5iYXNlKTsKPiAgCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2Rl ID0gJmNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7Cj4gIAl1MzIgaGRtaV92YWw7Cj4gQEAg LTE4NjUsNyArMTg2NSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2VuYWJsZV9oZG1pX2F1ZGlvKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkJICAgIGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiAgCQkJCSAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nv bm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT51YXBpLmNydGMpOwo+ ICAKPiAgCVdBUk5fT04oIXBpcGVfY29uZmlnLT5oYXNfaGRtaV9zaW5rKTsKPiAgCURSTV9ERUJV R19EUklWRVIoIkVuYWJsaW5nIEhETUkgYXVkaW8gb24gcGlwZSAlY1xuIiwKPiBAQCAtMTk1MSw3 ICsxOTUxLDcgQEAgc3RhdGljIHZvaWQgY3B0X2VuYWJsZV9oZG1pKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ YmFzZS5kZXY7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGRldik7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9j b25maWctPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMocGlwZV9jb25maWctPnVhcGkuY3J0Yyk7Cj4gIAlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50 ZWxfaGRtaSA9IGVuY190b19pbnRlbF9oZG1pKCZlbmNvZGVyLT5iYXNlKTsKPiAgCWVudW0gcGlw ZSBwaXBlID0gY3J0Yy0+cGlwZTsKPiAgCXUzMiB0ZW1wOwo+IEBAIC0yMDE1LDcgKzIwMTUsNyBA QCBzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX2hkbWkoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCj4gIAlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGVuY190b19pbnRlbF9o ZG1pKCZlbmNvZGVyLT5iYXNlKTsKPiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVs X2RpZ19wb3J0ID0KPiAgCQloZG1pX3RvX2RpZ19wb3J0KGludGVsX2hkbWkpOwo+IC0Jc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT5iYXNlLmNy dGMpOwo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRj X3N0YXRlLT51YXBpLmNydGMpOwo+ICAJdTMyIHRlbXA7Cj4gIAo+ICAJdGVtcCA9IEk5MTVfUkVB RChpbnRlbF9oZG1pLT5oZG1pX3JlZyk7Cj4gQEAgLTIyMTUsOCArMjIxNSw4IEBAIHN0YXRpYyBi b29sIGhkbWlfZGVlcF9jb2xvcl9wb3NzaWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSwKPiAgCQkJCSAgICAgaW50IGJwYykKPiAgewo+ICAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0KPiAtCQl0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0 Yy0+ZGV2KTsKPiAtCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IGNydGNfc3RhdGUt PmJhc2Uuc3RhdGU7Cj4gKwkJdG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNydGMtPmRldik7Cj4g KwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT51YXBpLnN0YXRl Owo+ICAJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5lY3Rvcl9zdGF0ZTsKPiAgCXN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7Cj4gIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Cj4gQEAgLTIyNDUsNyArMjI0NSw3IEBAIHN0YXRpYyBi b29sIGhkbWlfZGVlcF9jb2xvcl9wb3NzaWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSwKPiAgCWZvcl9lYWNoX25ld19jb25uZWN0b3JfaW5fc3RhdGUoc3RhdGUs IGNvbm5lY3RvciwgY29ubmVjdG9yX3N0YXRlLCBpKSB7Cj4gIAkJY29uc3Qgc3RydWN0IGRybV9k aXNwbGF5X2luZm8gKmluZm8gPSAmY29ubmVjdG9yLT5kaXNwbGF5X2luZm87Cj4gIAo+IC0JCWlm IChjb25uZWN0b3Jfc3RhdGUtPmNydGMgIT0gY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKQo+ICsJCWlm IChjb25uZWN0b3Jfc3RhdGUtPmNydGMgIT0gY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKQo+ICAJCQlj b250aW51ZTsKPiAgCj4gIAkJaWYgKGNydGNfc3RhdGUtPm91dHB1dF9mb3JtYXQgPT0gSU5URUxf T1VUUFVUX0ZPUk1BVF9ZQ0JDUjQyMCkgewo+IEBAIC0yMjg2LDcgKzIyODYsNyBAQCBzdGF0aWMg Ym9vbAo+ICBpbnRlbF9oZG1pX3ljYmNyNDIwX2NvbmZpZyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yLAo+ICAJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY29uZmlnKQo+ICB7 Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY29uZmln LT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRl bF9jcnRjKGNvbmZpZy0+dWFwaS5jcnRjKTsKPiAgCj4gIAlpZiAoIWNvbm5lY3Rvci0+eWNiY3Jf NDIwX2FsbG93ZWQpIHsKPiAgCQlEUk1fRVJST1IoIlBsYXRmb3JtIGRvZXNuJ3Qgc3VwcG9ydCBZ Q0JDUjQyMCBvdXRwdXRcbiIpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2x2ZHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf bHZkcy5jCj4gaW5kZXggZjE3ZDZlMDI0NjBmLi5jYTRlYmIwZjIyMzAgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9sdmRzLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2x2ZHMuYwo+IEBAIC0yMzAsNyArMjMwLDcgQEAg c3RhdGljIHZvaWQgaW50ZWxfcHJlX2VuYWJsZV9sdmRzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLAo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfbHZkc19lbmNvZGVyICpsdmRzX2VuY29kZXIg PSB0b19sdmRzX2VuY29kZXIoJmVuY29kZXItPmJhc2UpOwo+ICAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gLQlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yyk7 Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWct PnVhcGkuY3J0Yyk7Cj4gIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRf bW9kZSA9ICZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKPiAgCWVudW0gcGlwZSBwaXBl ID0gY3J0Yy0+cGlwZTsKPiAgCXUzMiB0ZW1wOwo+IEBAIC0zOTMsNyArMzkzLDcgQEAgc3RhdGlj IGludCBpbnRlbF9sdmRzX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRl bF9lbmNvZGVyLAo+ICAJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yID0K PiAgCQlsdmRzX2VuY29kZXItPmF0dGFjaGVkX2Nvbm5lY3RvcjsKPiAgCXN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2Rl Owo+IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVf Y29uZmlnLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0 b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT51YXBpLmNydGMpOwo+ICAJdW5zaWduZWQgaW50IGx2 ZHNfYnBwOwo+ICAKPiAgCS8qIFNob3VsZCBuZXZlciBoYXBwZW4hISAqLwo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3BhbmVsLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3BhbmVsLmMKPiBpbmRleCA1ZTNmZDM3ZDk0NzEuLjZm M2VhYWUzNzYxZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX3BhbmVsLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bh bmVsLmMKPiBAQCAtMTA0Nyw3ICsxMDQ3LDcgQEAgc3RhdGljIHZvaWQgdmx2X2VuYWJsZV9iYWNr bGlnaHQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAlzdHJ1 Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IgPSB0b19pbnRlbF9jb25uZWN0b3IoY29ubl9z dGF0ZS0+Y29ubmVjdG9yKTsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7Cj4gIAlzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBh bmVsID0gJmNvbm5lY3Rvci0+cGFuZWw7Cj4gLQllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKS0+cGlwZTsKPiArCWVudW0gcGlwZSBwaXBlID0gdG9f aW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpLT5waXBlOwo+ICAJdTMyIGN0bCwgY3Rs MjsKPiAgCj4gIAljdGwyID0gSTkxNV9SRUFEKFZMVl9CTENfUFdNX0NUTDIocGlwZSkpOwo+IEBA IC0xMDc3LDcgKzEwNzcsNyBAQCBzdGF0aWMgdm9pZCBieHRfZW5hYmxlX2JhY2tsaWdodChjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCXN0cnVjdCBpbnRlbF9j b25uZWN0b3IgKmNvbm5lY3RvciA9IHRvX2ludGVsX2Nvbm5lY3Rvcihjb25uX3N0YXRlLT5jb25u ZWN0b3IpOwo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShj b25uZWN0b3ItPmJhc2UuZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwgPSAmY29u bmVjdG9yLT5wYW5lbDsKPiAtCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0 YXRlLT5iYXNlLmNydGMpLT5waXBlOwo+ICsJZW51bSBwaXBlIHBpcGUgPSB0b19pbnRlbF9jcnRj KGNydGNfc3RhdGUtPnVhcGkuY3J0YyktPnBpcGU7Cj4gIAl1MzIgcHdtX2N0bCwgdmFsOwo+ICAK PiAgCS8qIENvbnRyb2xsZXIgMSB1c2VzIHRoZSB1dGlsaXR5IHBpbi4gKi8KPiBAQCAtMTE4OSw3 ICsxMTg5LDcgQEAgdm9pZCBpbnRlbF9wYW5lbF9lbmFibGVfYmFja2xpZ2h0KGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJc3RydWN0IGludGVsX2Nvbm5lY3Rv ciAqY29ubmVjdG9yID0gdG9faW50ZWxfY29ubmVjdG9yKGNvbm5fc3RhdGUtPmNvbm5lY3Rvcik7 Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rv ci0+YmFzZS5kZXYpOwo+ICAJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25uZWN0b3It PnBhbmVsOwo+IC0JZW51bSBwaXBlIHBpcGUgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJh c2UuY3J0YyktPnBpcGU7Cj4gKwllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+dWFwaS5jcnRjKS0+cGlwZTsKPiAgCj4gIAlpZiAoIXBhbmVsLT5iYWNrbGlnaHQucHJl c2VudCkKPiAgCQlyZXR1cm47Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfcGlwZV9jcmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfcGlwZV9jcmMuYwo+IGluZGV4IGZjNjAyNTMzYTYwMi4uMjc0NjUxMmY0NDY2IDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcGlwZV9jcmMuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcGlwZV9jcmMuYwo+IEBAIC0z MDksMTMgKzMwOSwxMyBAQCBpbnRlbF9jcnRjX2NyY19zZXR1cF93b3JrYXJvdW5kcyhzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YywgYm9vbCBlbmFibGUpCj4gIAkJZ290byBwdXRfc3RhdGU7Cj4gIAl9 Cj4gIAo+IC0JcGlwZV9jb25maWctPmJhc2UubW9kZV9jaGFuZ2VkID0gcGlwZV9jb25maWctPmhh c19wc3I7Cj4gKwlwaXBlX2NvbmZpZy0+dWFwaS5tb2RlX2NoYW5nZWQgPSBwaXBlX2NvbmZpZy0+ aGFzX3BzcjsKPiAgCXBpcGVfY29uZmlnLT5jcmNfZW5hYmxlZCA9IGVuYWJsZTsKPiAgCj4gIAlp ZiAoSVNfSEFTV0VMTChkZXZfcHJpdikgJiYKPiAgCSAgICBwaXBlX2NvbmZpZy0+aHcuYWN0aXZl ICYmIGNydGMtPnBpcGUgPT0gUElQRV9BICYmCj4gIAkgICAgcGlwZV9jb25maWctPmNwdV90cmFu c2NvZGVyID09IFRSQU5TQ09ERVJfRURQKQo+IC0JCXBpcGVfY29uZmlnLT5iYXNlLm1vZGVfY2hh bmdlZCA9IHRydWU7Cj4gKwkJcGlwZV9jb25maWctPnVhcGkubW9kZV9jaGFuZ2VkID0gdHJ1ZTsK PiAgCj4gIAlyZXQgPSBkcm1fYXRvbWljX2NvbW1pdChzdGF0ZSk7Cj4gIAo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bzci5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3IuYwo+IGluZGV4IDM0NzAwNDk4MWNmZi4uOWM3NmFk NTM4M2I5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf cHNyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bzci5jCj4g QEAgLTgxMiw3ICs4MTIsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wc3JfZW5hYmxlX2xvY2tlZChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAo+ICAJZGV2X3ByaXYtPnBzci5w c3IyX2VuYWJsZWQgPSBpbnRlbF9wc3IyX2VuYWJsZWQoZGV2X3ByaXYsIGNydGNfc3RhdGUpOwo+ ICAJZGV2X3ByaXYtPnBzci5idXN5X2Zyb250YnVmZmVyX2JpdHMgPSAwOwo+IC0JZGV2X3ByaXYt PnBzci5waXBlID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpLT5waXBlOwo+ ICsJZGV2X3ByaXYtPnBzci5waXBlID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNy dGMpLT5waXBlOwo+ICAJZGV2X3ByaXYtPnBzci5kYzNjb19lbmFibGVkID0gISFjcnRjX3N0YXRl LT5kYzNjb19leGl0bGluZTsKPiAgCWRldl9wcml2LT5wc3IuZGMzY29fZXhpdF9kZWxheSA9IGlu dGVsX2dldF9mcmFtZV90aW1lX3VzKGNydGNfc3RhdGUpOwo+ICAJZGV2X3ByaXYtPnBzci50cmFu c2NvZGVyID0gY3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29kZXI7Cj4gQEAgLTEwNTksNyArMTA1OSw3 IEBAIHZvaWQgaW50ZWxfcHNyX3VwZGF0ZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ICBp bnQgaW50ZWxfcHNyX3dhaXRfZm9yX2lkbGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg Km5ld19jcnRjX3N0YXRlLAo+ICAJCQkgICAgdTMyICpvdXRfdmFsdWUpCj4gIHsKPiAtCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+YmFzZS5j cnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0 Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ICAKPiAgCWlmICghZGV2X3ByaXYtPnBzci5l bmFibGVkIHx8ICFuZXdfY3J0Y19zdGF0ZS0+aGFzX3BzcikKPiBAQCAtMTE0MSw3ICsxMTQxLDcg QEAgc3RhdGljIGludCBpbnRlbF9wc3JfZmFzdHNldF9mb3JjZShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCj4gIAo+ICAJCWlmIChpbnRlbF9jcnRjX3N0YXRlLT5ody5hY3RpdmUg JiYgaW50ZWxfY3J0Y19zdGF0ZS0+aGFzX3Bzcikgewo+ICAJCQkvKiBNYXJrIG1vZGUgYXMgY2hh bmdlZCB0byB0cmlnZ2VyIGEgcGlwZS0+dXBkYXRlKCkgKi8KPiAtCQkJaW50ZWxfY3J0Y19zdGF0 ZS0+YmFzZS5tb2RlX2NoYW5nZWQgPSB0cnVlOwo+ICsJCQlpbnRlbF9jcnRjX3N0YXRlLT51YXBp Lm1vZGVfY2hhbmdlZCA9IHRydWU7Cj4gIAkJCWJyZWFrOwo+ICAJCX0KPiAgCX0KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9zZHZvLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Nkdm8uYwo+IGluZGV4IDk3YWU4Y2MxMzE0ZS4u MTA0NzM1N2MxNWM0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfc2R2by5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9z ZHZvLmMKPiBAQCAtMTQyOSw3ICsxNDI5LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfc2R2b19wcmVf ZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAo+ICAJCQkJICBjb25z dCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiAgewo+ICAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9lbmNvZGVyLT5iYXNl LmRldik7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ICAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKmFkanVzdGVkX21vZGUgPSAmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKPiAg CWNvbnN0IHN0cnVjdCBpbnRlbF9zZHZvX2Nvbm5lY3Rvcl9zdGF0ZSAqc2R2b19zdGF0ZSA9Cj4g IAkJdG9faW50ZWxfc2R2b19jb25uZWN0b3Jfc3RhdGUoY29ubl9zdGF0ZSk7Cj4gQEAgLTE3MjMs NyArMTcyMyw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2Rpc2FibGVfc2R2byhzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gIAlzdHJ1Y3QgaW50ZWxfc2R2byAq aW50ZWxfc2R2byA9IHRvX3Nkdm8oZW5jb2Rlcik7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPnVhcGkuY3J0 Yyk7Cj4gIAl1MzIgdGVtcDsKPiAgCj4gIAlpZiAob2xkX2NydGNfc3RhdGUtPmhhc19hdWRpbykK PiBAQCAtMTc4NSw3ICsxNzg1LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZW5hYmxlX3Nkdm8oc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g ZW5jb2Rlci0+YmFzZS5kZXY7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGRldik7Cj4gIAlzdHJ1Y3QgaW50ZWxfc2R2byAqaW50ZWxfc2R2byA9IHRvX3Nk dm8oZW5jb2Rlcik7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVs X2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50 ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPnVhcGkuY3J0Yyk7Cj4gIAl1MzIg dGVtcDsKPiAgCWJvb2wgaW5wdXQxLCBpbnB1dDI7Cj4gIAlpbnQgaTsKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9zcHJpdGUuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc3ByaXRlLmMKPiBpbmRleCBlZjBjYTdjNmQxMWYuLmZh Njg3YzA1YjFlZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX3Nwcml0ZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9z cHJpdGUuYwo+IEBAIC04MSw3ICs4MSw3IEBAIGludCBpbnRlbF91c2Vjc190b19zY2FubGluZXMo Y29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUsCj4gICAqLwo+ICB2 b2lkIGludGVsX3BpcGVfdXBkYXRlX3N0YXJ0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpuZXdfY3J0Y19zdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19p bnRlbF9jcnRjKG5ld19jcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ICAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRl dik7Cj4gIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZu ZXdfY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKPiAgCWxvbmcgdGltZW91dCA9IG1zZWNz X3RvX2ppZmZpZXNfdGltZW91dCgxKTsKPiBAQCAtMTkwLDcgKzE5MCw3IEBAIHZvaWQgaW50ZWxf cGlwZV91cGRhdGVfc3RhcnQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19jcnRj X3N0YXRlKQo+ICAgKi8KPiAgdm9pZCBpbnRlbF9waXBlX3VwZGF0ZV9lbmQoc3RydWN0IGludGVs X2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMobmV3X2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMobmV3X2NydGNfc3RhdGUtPnVhcGku Y3J0Yyk7Cj4gIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4gIAlpbnQgc2NhbmxpbmVf ZW5kID0gaW50ZWxfZ2V0X2NydGNfc2NhbmxpbmUoY3J0Yyk7Cj4gIAl1MzIgZW5kX3ZibF9jb3Vu dCA9IGludGVsX2NydGNfZ2V0X3ZibGFua19jb3VudGVyKGNydGMpOwo+IEBAIC0yMDMsMTQgKzIw MywxNSBAQCB2b2lkIGludGVsX3BpcGVfdXBkYXRlX2VuZChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqbmV3X2NydGNfc3RhdGUpCj4gIAkgKiBXb3VsZCBiZSBzbGlnaHRseSBuaWNlIHRvIGp1c3Qg Z3JhYiB0aGUgdmJsYW5rIGNvdW50IGFuZCBhcm0gdGhlCj4gIAkgKiBldmVudCBvdXRzaWRlIG9m IHRoZSBjcml0aWNhbCBzZWN0aW9uIC0gdGhlIHNwaW5sb2NrIG1pZ2h0IHNwaW4gZm9yIGEKPiAg CSAqIHdoaWxlIC4uLiAqLwo+IC0JaWYgKG5ld19jcnRjX3N0YXRlLT5iYXNlLmV2ZW50KSB7Cj4g KwlpZiAobmV3X2NydGNfc3RhdGUtPnVhcGkuZXZlbnQpIHsKPiAgCQlXQVJOX09OKGRybV9jcnRj X3ZibGFua19nZXQoJmNydGMtPmJhc2UpICE9IDApOwo+ICAKPiAgCQlzcGluX2xvY2soJmNydGMt PmJhc2UuZGV2LT5ldmVudF9sb2NrKTsKPiAtCQlkcm1fY3J0Y19hcm1fdmJsYW5rX2V2ZW50KCZj cnRjLT5iYXNlLCBuZXdfY3J0Y19zdGF0ZS0+YmFzZS5ldmVudCk7Cj4gKwkJZHJtX2NydGNfYXJt X3ZibGFua19ldmVudCgmY3J0Yy0+YmFzZSwKPiArCQkJCSAgICAgICAgICBuZXdfY3J0Y19zdGF0 ZS0+dWFwaS5ldmVudCk7Cj4gIAkJc3Bpbl91bmxvY2soJmNydGMtPmJhc2UuZGV2LT5ldmVudF9s b2NrKTsKPiAgCj4gLQkJbmV3X2NydGNfc3RhdGUtPmJhc2UuZXZlbnQgPSBOVUxMOwo+ICsJCW5l d19jcnRjX3N0YXRlLT51YXBpLmV2ZW50ID0gTlVMTDsKPiAgCX0KPiAgCj4gIAlsb2NhbF9pcnFf ZW5hYmxlKCk7Cj4gQEAgLTE1ODYsNyArMTU4Nyw3IEBAIGc0eF9zcHJpdGVfY2hlY2soc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAl9Cj4gIAo+ICAJcmV0ID0gZHJtX2F0 b21pY19oZWxwZXJfY2hlY2tfcGxhbmVfc3RhdGUoJnBsYW5lX3N0YXRlLT5iYXNlLAo+IC0JCQkJ CQkgICZjcnRjX3N0YXRlLT5iYXNlLAo+ICsJCQkJCQkgICZjcnRjX3N0YXRlLT51YXBpLAo+ICAJ CQkJCQkgIG1pbl9zY2FsZSwgbWF4X3NjYWxlLAo+ICAJCQkJCQkgIHRydWUsIHRydWUpOwo+ICAJ aWYgKHJldCkKPiBAQCAtMTY0Myw3ICsxNjQ0LDcgQEAgdmx2X3Nwcml0ZV9jaGVjayhzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQlyZXR1cm4gcmV0Owo+ICAKPiAgCXJl dCA9IGRybV9hdG9taWNfaGVscGVyX2NoZWNrX3BsYW5lX3N0YXRlKCZwbGFuZV9zdGF0ZS0+YmFz ZSwKPiAtCQkJCQkJICAmY3J0Y19zdGF0ZS0+YmFzZSwKPiArCQkJCQkJICAmY3J0Y19zdGF0ZS0+ dWFwaSwKPiAgCQkJCQkJICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCj4gIAkJCQkJCSAg RFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HLAo+ICAJCQkJCQkgIHRydWUsIHRydWUpOwo+IEBA IC0xODA4LDcgKzE4MDksNyBAQCBzdGF0aWMgaW50IHNrbF9wbGFuZV9jaGVjayhzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCX0KPiAgCj4gIAlyZXQgPSBkcm1fYXRvbWlj X2hlbHBlcl9jaGVja19wbGFuZV9zdGF0ZSgmcGxhbmVfc3RhdGUtPmJhc2UsCj4gLQkJCQkJCSAg JmNydGNfc3RhdGUtPmJhc2UsCj4gKwkJCQkJCSAgJmNydGNfc3RhdGUtPnVhcGksCj4gIAkJCQkJ CSAgbWluX3NjYWxlLCBtYXhfc2NhbGUsCj4gIAkJCQkJCSAgdHJ1ZSwgdHJ1ZSk7Cj4gIAlpZiAo cmV0KQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3R2 LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3R2LmMKPiBpbmRleCBlODAw ZDQ1YjgxM2QuLjQ0OTlkNDAyYzMxNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX3R2LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX3R2LmMKPiBAQCAtOTI0LDcgKzkyNCw3IEBAIGludGVsX2VuYWJsZV90dihzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCj4gIAkvKiBQcmV2ZW50cyB2Ymxhbmsgd2FpdHMg ZnJvbSB0aW1pbmcgb3V0IGluIGludGVsX3R2X2RldGVjdF90eXBlKCkgKi8KPiAgCWludGVsX3dh aXRfZm9yX3ZibGFuayhkZXZfcHJpdiwKPiAtCQkJICAgICAgdG9faW50ZWxfY3J0YyhwaXBlX2Nv bmZpZy0+YmFzZS5jcnRjKS0+cGlwZSk7Cj4gKwkJCSAgICAgIHRvX2ludGVsX2NydGMocGlwZV9j b25maWctPnVhcGkuY3J0YyktPnBpcGUpOwo+ICAKPiAgCUk5MTVfV1JJVEUoVFZfQ1RMLCBJOTE1 X1JFQUQoVFZfQ1RMKSB8IFRWX0VOQ19FTkFCTEUpOwo+ICB9Cj4gQEAgLTE0MTcsNyArMTQxNyw3 IEBAIHN0YXRpYyB2b2lkIGludGVsX3R2X3ByZV9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCj4gIAkJCQljb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9z dGF0ZSkKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShlbmNvZGVyLT5iYXNlLmRldik7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9 IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxf Y3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPnVhcGkuY3J0Yyk7 Cj4gIAlzdHJ1Y3QgaW50ZWxfdHYgKmludGVsX3R2ID0gZW5jX3RvX3R2KGVuY29kZXIpOwo+ICAJ Y29uc3Qgc3RydWN0IGludGVsX3R2X2Nvbm5lY3Rvcl9zdGF0ZSAqdHZfY29ubl9zdGF0ZSA9Cj4g IAkJdG9faW50ZWxfdHZfY29ubmVjdG9yX3N0YXRlKGNvbm5fc3RhdGUpOwo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Zkc2MuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdmRzYy5jCj4gaW5kZXggNmEzMzhhODNhYWVkLi4zOGMx ODE0OTk1MDUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF92ZHNjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Zkc2Mu Ywo+IEBAIC00NTksNyArNDU5LDcgQEAgaW50IGludGVsX2RwX2NvbXB1dGVfZHNjX3BhcmFtcyhz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ICBlbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9t YWluCj4gIGludGVsX2RzY19wb3dlcl9kb21haW4oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0g dG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwo+ICAJ ZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0gY3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29k ZXI7Cj4gIAo+ICAJLyoKPiBAQCAtNDgzLDcgKzQ4Myw3IEBAIGludGVsX2RzY19wb3dlcl9kb21h aW4oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIHN0YXRpYyB2 b2lkIGludGVsX2NvbmZpZ3VyZV9wcHNfZm9yX2RzY19lbmNvZGVyKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAo+ICAJCQkJCQljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiAgCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICAJY29uc3Qg c3RydWN0IGRybV9kc2NfY29uZmlnICp2ZHNjX2NmZyA9ICZjcnRjX3N0YXRlLT5kcF9kc2NfY2Zn Owo+ICAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+IEBAIC05MDIsNyArOTAyLDcgQEAg c3RhdGljIHZvaWQgaW50ZWxfZHBfd3JpdGVfZHNjX3Bwc19zZHAoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsCj4gIHZvaWQgaW50ZWxfZHNjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKPiAgCQkgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiAgCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICAJZW51bSBw aXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ICAJaTkxNV9yZWdfdCBkc3NfY3RsMV9yZWcsIGRzc19j dGwyX3JlZzsKPiBAQCAtOTM4LDcgKzkzOCw3IEBAIHZvaWQgaW50ZWxfZHNjX2VuYWJsZShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCj4gIHZvaWQgaW50ZWxfZHNjX2Rpc2FibGUo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlKQo+ICB7Cj4gLQlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPmJh c2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xk X2NydGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKPiAgCWVudW0gcGlwZSBwaXBlID0gY3J0 Yy0+cGlwZTsKPiAgCWk5MTVfcmVnX3QgZHNzX2N0bDFfcmVnLCBkc3NfY3RsMl9yZWc7Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvdmx2X2RzaS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS92bHZfZHNpLmMKPiBpbmRleCAzYmY4MzgyNzlmYzIuLjE2 ZjkzZDFlNzFlNSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L3Zs dl9kc2kuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvdmx2X2RzaS5jCj4g QEAgLTI2MSw3ICsyNjEsNyBAQCBzdGF0aWMgaW50IGludGVsX2RzaV9jb21wdXRlX2NvbmZpZyhz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCXN0cnVjdCBpbnRlbF9kc2kgKmludGVs X2RzaSA9IGNvbnRhaW5lcl9vZihlbmNvZGVyLCBzdHJ1Y3QgaW50ZWxfZHNpLAo+ICAJCQkJCQkg ICBiYXNlKTsKPiAgCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvciA9IGlu dGVsX2RzaS0+YXR0YWNoZWRfY29ubmVjdG9yOwo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGMg PSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT51YXBpLmNydGMpOwo+ICAJ Y29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmZpeGVkX21vZGUgPSBpbnRlbF9jb25uZWN0 b3ItPnBhbmVsLmZpeGVkX21vZGU7Cj4gIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0 ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKPiAgCWludCByZXQ7Cj4g QEAgLTYyNCw3ICs2MjQsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfcG9ydF9lbmFibGUoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0 Yyk7Cj4gIAlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZl bmNvZGVyLT5iYXNlKTsKPiAgCWVudW0gcG9ydCBwb3J0Owo+ICAKPiBAQCAtNzQ2LDcgKzc0Niw3 IEBAIHN0YXRpYyB2b2lkIGludGVsX2RzaV9wcmVfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAo+ICAJCQkJIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25u X3N0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50 ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKPiAtCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHBpcGVf Y29uZmlnLT5iYXNlLmNydGM7Cj4gKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBwaXBlX2NvbmZp Zy0+dWFwaS5jcnRjOwo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShjcnRjLT5kZXYpOwo+ICAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19p bnRlbF9jcnRjKGNydGMpOwo+ICAJZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+ IEBAIC0xMDM0LDcgKzEwMzQsNyBAQCBzdGF0aWMgdm9pZCBieHRfZHNpX2dldF9waXBlX2NvbmZp ZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCXN0cnVjdCBkcm1fZGlzcGxheV9t b2RlICphZGp1c3RlZF9tb2RlID0KPiAgCQkJCQkmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21v ZGU7Cj4gIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZV9zdzsKPiAtCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5j cnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2Nv bmZpZy0+dWFwaS5jcnRjKTsKPiAgCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190 b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOwo+ICAJdW5zaWduZWQgaW50IGxhbmVfY291bnQg PSBpbnRlbF9kc2ktPmxhbmVfY291bnQ7Cj4gIAl1bnNpZ25lZCBpbnQgYnBwLCBmbXQ7Cj4gQEAg LTEzMTUsNyArMTMxNSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RzaV9wcmVwYXJlKHN0cnVjdCBp bnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAo+ICAJc3RydWN0IGRybV9lbmNvZGVyICplbmNv ZGVyID0gJmludGVsX2VuY29kZXItPmJhc2U7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g ZW5jb2Rlci0+ZGV2Owo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShkZXYpOwo+IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9j cnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT51YXBpLmNydGMpOwo+ICAJc3RydWN0 IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaShlbmNvZGVyKTsKPiAgCWNv bnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmln LT5ody5hZGp1c3RlZF9tb2RlOwo+ICAJZW51bSBwb3J0IHBvcnQ7Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kZWJ1Z2ZzLmMKPiBpbmRleCA1MWU4M2RhMjE3MzguLmJkYWNlMmYxNGNkZSAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gQEAgLTQyMjIsNyArNDIyMiw3IEBAIHN0 YXRpYyBpbnQgaTkxNV9kcnJzX2N0bF9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbCkKPiAgCQkgICAg IWNydGNfc3RhdGUtPmhhc19kcnJzKQo+ICAJCQlnb3RvIG91dDsKPiAgCj4gLQkJY29tbWl0ID0g Y3J0Y19zdGF0ZS0+YmFzZS5jb21taXQ7Cj4gKwkJY29tbWl0ID0gY3J0Y19zdGF0ZS0+dWFwaS5j b21taXQ7Cj4gIAkJaWYgKGNvbW1pdCkgewo+ICAJCQlyZXQgPSB3YWl0X2Zvcl9jb21wbGV0aW9u X2ludGVycnVwdGlibGUoJmNvbW1pdC0+aHdfZG9uZSk7Cj4gIAkJCWlmIChyZXQpCj4gQEAgLTQy MzQsNyArNDIzNCw3IEBAIHN0YXRpYyBpbnQgaTkxNV9kcnJzX2N0bF9zZXQodm9pZCAqZGF0YSwg dTY0IHZhbCkKPiAgCQkJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7Cj4gIAkJCXN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHA7Cj4gIAo+IC0JCQlpZiAoIShjcnRjX3N0YXRlLT5iYXNlLmNv bm5lY3Rvcl9tYXNrICYKPiArCQkJaWYgKCEoY3J0Y19zdGF0ZS0+dWFwaS5jb25uZWN0b3JfbWFz ayAmCj4gIAkJCSAgICAgIGRybV9jb25uZWN0b3JfbWFzayhjb25uZWN0b3IpKSkKPiAgCQkJCWNv bnRpbnVlOwo+ICAKPiBAQCAtNDI5Myw3ICs0MjkzLDcgQEAgaTkxNV9maWZvX3VuZGVycnVuX3Jl c2V0X3dyaXRlKHN0cnVjdCBmaWxlICpmaWxwLAo+ICAJCQlyZXR1cm4gcmV0Owo+ICAKPiAgCQlj cnRjX3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0ZShpbnRlbF9jcnRjLT5iYXNlLnN0YXRlKTsK PiAtCQljb21taXQgPSBjcnRjX3N0YXRlLT5iYXNlLmNvbW1pdDsKPiArCQljb21taXQgPSBjcnRj X3N0YXRlLT51YXBpLmNvbW1pdDsKPiAgCQlpZiAoY29tbWl0KSB7Cj4gIAkJCXJldCA9IHdhaXRf Zm9yX2NvbXBsZXRpb25faW50ZXJydXB0aWJsZSgmY29tbWl0LT5od19kb25lKTsKPiAgCQkJaWYg KCFyZXQpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gaW5kZXggOTY3MWZmMjljMjVmLi43NmY4 ZWVhMTVkZGYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiBAQCAtNDY0LDcgKzQ2NCw3 IEBAIHN0YXRpYyBjb25zdCBpbnQgcGVzc2ltYWxfbGF0ZW5jeV9ucyA9IDUwMDA7Cj4gIAo+ICBz dGF0aWMgdm9pZCB2bHZfZ2V0X2ZpZm9fc2l6ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiAgCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ICAJc3RydWN0IHZs dl9maWZvX3N0YXRlICpmaWZvX3N0YXRlID0gJmNydGNfc3RhdGUtPndtLnZsdi5maWZvX3N0YXRl Owo+ICAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+IEBAIC0xMTQ0LDcgKzExNDQsNyBA QCBzdGF0aWMgdTE2IGc0eF9jb21wdXRlX3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlLAo+ICBzdGF0aWMgYm9vbCBnNHhfcmF3X3BsYW5lX3dtX3NldChzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQkJCSBpbnQgbGV2ZWwsIGVudW0gcGxh bmVfaWQgcGxhbmVfaWQsIHUxNiB2YWx1ZSkKPiAgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7Cj4gKwlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVh cGkuY3J0Yy0+ZGV2KTsKPiAgCWJvb2wgZGlydHkgPSBmYWxzZTsKPiAgCj4gIAlmb3IgKDsgbGV2 ZWwgPCBpbnRlbF93bV9udW1fbGV2ZWxzKGRldl9wcml2KTsgbGV2ZWwrKykgewo+IEBAIC0xMTYw LDcgKzExNjAsNyBAQCBzdGF0aWMgYm9vbCBnNHhfcmF3X3BsYW5lX3dtX3NldChzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgc3RhdGljIGJvb2wgZzR4X3Jhd19mYmNfd21f c2V0KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJCQkgICAgICAgaW50 IGxldmVsLCB1MTYgdmFsdWUpCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOwo+ICsJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNydGMt PmRldik7Cj4gIAlib29sIGRpcnR5ID0gZmFsc2U7Cj4gIAo+ICAJLyogTk9STUFMIGxldmVsIGRv ZXNuJ3QgaGF2ZSBhbiBGQkMgd2F0ZXJtYXJrICovCj4gQEAgLTEyNjIsNyArMTI2Miw3IEBAIHN0 YXRpYyBib29sIGc0eF9yYXdfcGxhbmVfd21faXNfdmFsaWQoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIHN0YXRpYyBib29sIGc0eF9yYXdfY3J0Y193bV9pc192 YWxpZChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQkJCSAg ICAgaW50IGxldmVsKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKPiArCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYp Owo+ICAKPiAgCWlmIChsZXZlbCA+IGRldl9wcml2LT53bS5tYXhfbGV2ZWwpCj4gIAkJcmV0dXJu IGZhbHNlOwo+IEBAIC0xMzAwLDkgKzEzMDAsOSBAQCBzdGF0aWMgdm9pZCBnNHhfaW52YWxpZGF0 ZV93bXMoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gIAo+ICBzdGF0aWMgaW50IGc0eF9jb21w dXRlX3BpcGVfd20oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIHsKPiAt CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNl LmNydGMpOwo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNf c3RhdGUtPnVhcGkuY3J0Yyk7Cj4gIAlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSA9 Cj4gLQkJdG9faW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPmJhc2Uuc3RhdGUpOwo+ICsJ CXRvX2ludGVsX2F0b21pY19zdGF0ZShjcnRjX3N0YXRlLT51YXBpLnN0YXRlKTsKPiAgCXN0cnVj dCBnNHhfd21fc3RhdGUgKndtX3N0YXRlID0gJmNydGNfc3RhdGUtPndtLmc0eC5vcHRpbWFsOwo+ ICAJaW50IG51bV9hY3RpdmVfcGxhbmVzID0gaHdlaWdodDgoY3J0Y19zdGF0ZS0+YWN0aXZlX3Bs YW5lcyAmCj4gIAkJCQkJIH5CSVQoUExBTkVfQ1VSU09SKSk7Cj4gQEAgLTEzODksMTcgKzEzODks MTcgQEAgc3RhdGljIGludCBnNHhfY29tcHV0ZV9waXBlX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlKQo+ICAKPiAgc3RhdGljIGludCBnNHhfY29tcHV0ZV9pbnRlcm1lZGlh dGVfd20oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlKQo+ICB7Cj4gLQlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMobmV3X2NydGNfc3RhdGUtPmJh c2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMobmV3 X2NydGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gIAlzdHJ1Y3QgZzR4X3dtX3N0YXRlICppbnRlcm1l ZGlhdGUgPSAmbmV3X2NydGNfc3RhdGUtPndtLmc0eC5pbnRlcm1lZGlhdGU7Cj4gIAljb25zdCBz dHJ1Y3QgZzR4X3dtX3N0YXRlICpvcHRpbWFsID0gJm5ld19jcnRjX3N0YXRlLT53bS5nNHgub3B0 aW1hbDsKPiAgCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKmludGVsX3N0YXRlID0KPiAtCQl0 b19pbnRlbF9hdG9taWNfc3RhdGUobmV3X2NydGNfc3RhdGUtPmJhc2Uuc3RhdGUpOwo+ICsJCXRv X2ludGVsX2F0b21pY19zdGF0ZShuZXdfY3J0Y19zdGF0ZS0+dWFwaS5zdGF0ZSk7Cj4gIAljb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUgPQo+ICAJCWludGVsX2F0 b21pY19nZXRfb2xkX2NydGNfc3RhdGUoaW50ZWxfc3RhdGUsIGNydGMpOwo+ICAJY29uc3Qgc3Ry dWN0IGc0eF93bV9zdGF0ZSAqYWN0aXZlID0gJm9sZF9jcnRjX3N0YXRlLT53bS5nNHgub3B0aW1h bDsKPiAgCWVudW0gcGxhbmVfaWQgcGxhbmVfaWQ7Cj4gIAo+IC0JaWYgKCFuZXdfY3J0Y19zdGF0 ZS0+aHcuYWN0aXZlIHx8IGRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KCZuZXdfY3J0Y19z dGF0ZS0+YmFzZSkpIHsKPiArCWlmICghbmV3X2NydGNfc3RhdGUtPmh3LmFjdGl2ZSB8fCBkcm1f YXRvbWljX2NydGNfbmVlZHNfbW9kZXNldCgmbmV3X2NydGNfc3RhdGUtPnVhcGkpKSB7Cj4gIAkJ KmludGVybWVkaWF0ZSA9ICpvcHRpbWFsOwo+ICAKPiAgCQlpbnRlcm1lZGlhdGUtPmN4c3IgPSBm YWxzZTsKPiBAQCAtMTUzMSw4ICsxNTMxLDggQEAgc3RhdGljIHZvaWQgZzR4X3Byb2dyYW1fd2F0 ZXJtYXJrcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIHN0YXRpYyB2b2lk IGc0eF9pbml0aWFsX3dhdGVybWFya3Moc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUs Cj4gIAkJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgewo+IC0J c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5i YXNlLmNydGMtPmRldik7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwo+ICsJc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7 Cj4gIAo+ICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPndtLndtX211dGV4KTsKPiAgCWNydGMtPndt LmFjdGl2ZS5nNHggPSBjcnRjX3N0YXRlLT53bS5nNHguaW50ZXJtZWRpYXRlOwo+IEBAIC0xNTQz LDggKzE1NDMsOCBAQCBzdGF0aWMgdm9pZCBnNHhfaW5pdGlhbF93YXRlcm1hcmtzKHN0cnVjdCBp bnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ICBzdGF0aWMgdm9pZCBnNHhfb3B0aW1pemVfd2F0 ZXJtYXJrcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKPiAgCQkJCSAgICBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7 Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+ YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwo+ICsJc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gIAo+ICAJaWYgKCFj cnRjX3N0YXRlLT53bS5uZWVkX3Bvc3R2YmxfdXBkYXRlKQo+ICAJCXJldHVybjsKPiBAQCAtMTYz MSw3ICsxNjMxLDcgQEAgc3RhdGljIGJvb2wgdmx2X25lZWRfc3ByaXRlMF9maWZvX3dvcmthcm91 bmQodW5zaWduZWQgaW50IGFjdGl2ZV9wbGFuZXMpCj4gIAo+ICBzdGF0aWMgaW50IHZsdl9jb21w dXRlX2ZpZm8oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIHsKPiAtCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNy dGMpOwo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3Rh dGUtPnVhcGkuY3J0Yyk7Cj4gIAljb25zdCBzdHJ1Y3QgZzR4X3BpcGVfd20gKnJhdyA9Cj4gIAkJ JmNydGNfc3RhdGUtPndtLnZsdi5yYXdbVkxWX1dNX0xFVkVMX1BNMl07Cj4gIAlzdHJ1Y3Qgdmx2 X2ZpZm9fc3RhdGUgKmZpZm9fc3RhdGUgPSAmY3J0Y19zdGF0ZS0+d20udmx2LmZpZm9fc3RhdGU7 Cj4gQEAgLTE3NDMsNyArMTc0Myw3IEBAIHN0YXRpYyB1MTYgdmx2X2ludmVydF93bV92YWx1ZSh1 MTYgd20sIHUxNiBmaWZvX3NpemUpCj4gIHN0YXRpYyBib29sIHZsdl9yYXdfcGxhbmVfd21fc2V0 KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJCQkJIGludCBsZXZlbCwg ZW51bSBwbGFuZV9pZCBwbGFuZV9pZCwgdTE2IHZhbHVlKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2 KTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19z dGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwo+ICAJaW50IG51bV9sZXZlbHMgPSBpbnRlbF93bV9udW1f bGV2ZWxzKGRldl9wcml2KTsKPiAgCWJvb2wgZGlydHkgPSBmYWxzZTsKPiAgCj4gQEAgLTE4MTgs MTYgKzE4MTgsMTYgQEAgc3RhdGljIGJvb2wgdmx2X3Jhd19jcnRjX3dtX2lzX3ZhbGlkKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICAKPiAgc3RhdGljIGludCB2 bHZfY29tcHV0ZV9waXBlX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4gIAlzdHJ1Y3QgaW50ZWxfYXRvbWlj X3N0YXRlICpzdGF0ZSA9Cj4gLQkJdG9faW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPmJh c2Uuc3RhdGUpOwo+ICsJCXRvX2ludGVsX2F0b21pY19zdGF0ZShjcnRjX3N0YXRlLT51YXBpLnN0 YXRlKTsKPiAgCXN0cnVjdCB2bHZfd21fc3RhdGUgKndtX3N0YXRlID0gJmNydGNfc3RhdGUtPndt LnZsdi5vcHRpbWFsOwo+ICAJY29uc3Qgc3RydWN0IHZsdl9maWZvX3N0YXRlICpmaWZvX3N0YXRl ID0KPiAgCQkmY3J0Y19zdGF0ZS0+d20udmx2LmZpZm9fc3RhdGU7Cj4gIAlpbnQgbnVtX2FjdGl2 ZV9wbGFuZXMgPSBod2VpZ2h0OChjcnRjX3N0YXRlLT5hY3RpdmVfcGxhbmVzICYKPiAgCQkJCQkg fkJJVChQTEFORV9DVVJTT1IpKTsKPiAtCWJvb2wgbmVlZHNfbW9kZXNldCA9IGRybV9hdG9taWNf Y3J0Y19uZWVkc19tb2Rlc2V0KCZjcnRjX3N0YXRlLT5iYXNlKTsKPiArCWJvb2wgbmVlZHNfbW9k ZXNldCA9IGRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KCZjcnRjX3N0YXRlLT51YXBpKTsK PiAgCWNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqb2xkX3BsYW5lX3N0YXRlOwo+ICAJ Y29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpuZXdfcGxhbmVfc3RhdGU7Cj4gIAlzdHJ1 Y3QgaW50ZWxfcGxhbmUgKnBsYW5lOwo+IEBAIC0xOTI2LDcgKzE5MjYsNyBAQCBzdGF0aWMgaW50 IHZsdl9jb21wdXRlX3BpcGVfd20oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp Cj4gIHN0YXRpYyB2b2lkIHZsdl9hdG9taWNfdXBkYXRlX2ZpZm8oc3RydWN0IGludGVsX2F0b21p Y19zdGF0ZSAqc3RhdGUsCj4gIAkJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKPiAgewo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2lu dGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ICAJc3RydWN0IGludGVs X3VuY29yZSAqdW5jb3JlID0gJmRldl9wcml2LT51bmNvcmU7Cj4gIAljb25zdCBzdHJ1Y3Qgdmx2 X2ZpZm9fc3RhdGUgKmZpZm9fc3RhdGUgPQo+IEBAIC0yMDIyLDE3ICsyMDIyLDE3IEBAIHN0YXRp YyB2b2lkIHZsdl9hdG9taWNfdXBkYXRlX2ZpZm8oc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAq c3RhdGUsCj4gIAo+ICBzdGF0aWMgaW50IHZsdl9jb21wdXRlX2ludGVybWVkaWF0ZV93bShzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUpCj4gIHsKPiAtCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsK PiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0 ZS0+dWFwaS5jcnRjKTsKPiAgCXN0cnVjdCB2bHZfd21fc3RhdGUgKmludGVybWVkaWF0ZSA9ICZu ZXdfY3J0Y19zdGF0ZS0+d20udmx2LmludGVybWVkaWF0ZTsKPiAgCWNvbnN0IHN0cnVjdCB2bHZf d21fc3RhdGUgKm9wdGltYWwgPSAmbmV3X2NydGNfc3RhdGUtPndtLnZsdi5vcHRpbWFsOwo+ICAJ c3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPQo+IC0JCXRvX2ludGVsX2F0 b21pY19zdGF0ZShuZXdfY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZSk7Cj4gKwkJdG9faW50ZWxfYXRv bWljX3N0YXRlKG5ld19jcnRjX3N0YXRlLT51YXBpLnN0YXRlKTsKPiAgCWNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSA9Cj4gIAkJaW50ZWxfYXRvbWljX2dldF9v bGRfY3J0Y19zdGF0ZShpbnRlbF9zdGF0ZSwgY3J0Yyk7Cj4gIAljb25zdCBzdHJ1Y3Qgdmx2X3dt X3N0YXRlICphY3RpdmUgPSAmb2xkX2NydGNfc3RhdGUtPndtLnZsdi5vcHRpbWFsOwo+ICAJaW50 IGxldmVsOwo+ICAKPiAtCWlmICghbmV3X2NydGNfc3RhdGUtPmh3LmFjdGl2ZSB8fCBkcm1fYXRv bWljX2NydGNfbmVlZHNfbW9kZXNldCgmbmV3X2NydGNfc3RhdGUtPmJhc2UpKSB7Cj4gKwlpZiAo IW5ld19jcnRjX3N0YXRlLT5ody5hY3RpdmUgfHwgZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVz ZXQoJm5ld19jcnRjX3N0YXRlLT51YXBpKSkgewo+ICAJCSppbnRlcm1lZGlhdGUgPSAqb3B0aW1h bDsKPiAgCj4gIAkJaW50ZXJtZWRpYXRlLT5jeHNyID0gZmFsc2U7Cj4gQEAgLTIxNTAsOCArMjE1 MCw4IEBAIHN0YXRpYyB2b2lkIHZsdl9wcm9ncmFtX3dhdGVybWFya3Moc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQo+ICBzdGF0aWMgdm9pZCB2bHZfaW5pdGlhbF93YXRlcm1hcmtz KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ICAJCQkJICAgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOwo+IC0Jc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0 Yyk7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNf c3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ICAKPiAgCW11dGV4X2xvY2soJmRl dl9wcml2LT53bS53bV9tdXRleCk7Cj4gIAljcnRjLT53bS5hY3RpdmUudmx2ID0gY3J0Y19zdGF0 ZS0+d20udmx2LmludGVybWVkaWF0ZTsKPiBAQCAtMjE2Miw4ICsyMTYyLDggQEAgc3RhdGljIHZv aWQgdmx2X2luaXRpYWxfd2F0ZXJtYXJrcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0 ZSwKPiAgc3RhdGljIHZvaWQgdmx2X29wdGltaXplX3dhdGVybWFya3Moc3RydWN0IGludGVsX2F0 b21pY19zdGF0ZSAqc3RhdGUsCj4gIAkJCQkgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUpCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOwo+IC0Jc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0 Yy0+ZGV2KTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT51YXBpLmNydGMpOwo+ICAKPiAgCWlmICghY3J0Y19zdGF0ZS0+d20ubmVlZF9wb3N0 dmJsX3VwZGF0ZSkKPiAgCQlyZXR1cm47Cj4gQEAgLTI3NjcsNyArMjc2Nyw3IEBAIHN0YXRpYyB1 MzIKPiAgaHN3X2NvbXB1dGVfbGluZXRpbWVfd20oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCj4gIHsKPiAgCWNvbnN0IHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUg KmludGVsX3N0YXRlID0KPiAtCQl0b19pbnRlbF9hdG9taWNfc3RhdGUoY3J0Y19zdGF0ZS0+YmFz ZS5zdGF0ZSk7Cj4gKwkJdG9faW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPnVhcGkuc3Rh dGUpOwo+ICAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQo+ ICAJCSZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwo+ICAJdTMyIGxpbmV0aW1lLCBpcHNf bGluZXRpbWU7Cj4gQEAgLTMwODIsOCArMzA4Miw4IEBAIHN0YXRpYyBib29sIGlsa192YWxpZGF0 ZV9waXBlX3dtKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgLyog Q29tcHV0ZSBuZXcgd2F0ZXJtYXJrcyBmb3IgdGhlIHBpcGUgKi8KPiAgc3RhdGljIGludCBpbGtf Y29tcHV0ZV9waXBlX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7 Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3Rh dGUtPmJhc2UuY3J0Yy0+ZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNydGMtPmRldik7 Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+dWFwaS5jcnRjKTsKPiAgCXN0cnVjdCBpbnRlbF9waXBlX3dtICpwaXBlX3dtOwo+ICAJ c3RydWN0IGludGVsX3BsYW5lICpwbGFuZTsKPiAgCWNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9z dGF0ZSAqcGxhbmVfc3RhdGU7Cj4gQEAgLTMxNjEsMTEgKzMxNjEsMTEgQEAgc3RhdGljIGludCBp bGtfY29tcHV0ZV9waXBlX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ ICAgKi8KPiAgc3RhdGljIGludCBpbGtfY29tcHV0ZV9pbnRlcm1lZGlhdGVfd20oc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKm5ld3N0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50 ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMobmV3c3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3Qg aW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMobmV3c3RhdGUtPnVhcGkuY3J0 Yyk7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVs X2NydGMtPmJhc2UuZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9waXBlX3dtICphID0gJm5ld3N0YXRl LT53bS5pbGsuaW50ZXJtZWRpYXRlOwo+ICAJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqaW50 ZWxfc3RhdGUgPQo+IC0JCXRvX2ludGVsX2F0b21pY19zdGF0ZShuZXdzdGF0ZS0+YmFzZS5zdGF0 ZSk7Cj4gKwkJdG9faW50ZWxfYXRvbWljX3N0YXRlKG5ld3N0YXRlLT51YXBpLnN0YXRlKTsKPiAg CWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRzdGF0ZSA9Cj4gIAkJaW50ZWxfYXRv bWljX2dldF9vbGRfY3J0Y19zdGF0ZShpbnRlbF9zdGF0ZSwgaW50ZWxfY3J0Yyk7Cj4gIAljb25z dCBzdHJ1Y3QgaW50ZWxfcGlwZV93bSAqYiA9ICZvbGRzdGF0ZS0+d20uaWxrLm9wdGltYWw7Cj4g QEAgLTMxNzcsNyArMzE3Nyw3IEBAIHN0YXRpYyBpbnQgaWxrX2NvbXB1dGVfaW50ZXJtZWRpYXRl X3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdzdGF0ZSkKPiAgCSAqIGFuZCBhZnRlciB0 aGUgdmJsYW5rLgo+ICAJICovCj4gIAkqYSA9IG5ld3N0YXRlLT53bS5pbGsub3B0aW1hbDsKPiAt CWlmICghbmV3c3RhdGUtPmh3LmFjdGl2ZSB8fCBkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNl dCgmbmV3c3RhdGUtPmJhc2UpIHx8Cj4gKwlpZiAoIW5ld3N0YXRlLT5ody5hY3RpdmUgfHwgZHJt X2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQoJm5ld3N0YXRlLT51YXBpKSB8fAo+ICAJICAgIGlu dGVsX3N0YXRlLT5za2lwX2ludGVybWVkaWF0ZV93bSkKPiAgCQlyZXR1cm4gMDsKPiAgCj4gQEAg LTM4NTgsOSArMzg1OCw5IEBAIHNrbF9kZGJfZ2V0X3BpcGVfYWxsb2NhdGlvbl9saW1pdHMoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCQkJICAgc3RydWN0IHNrbF9kZGJf ZW50cnkgKmFsbG9jLCAvKiBvdXQgKi8KPiAgCQkJCSAgIGludCAqbnVtX2FjdGl2ZSAvKiBvdXQg Ki8pCj4gIHsKPiAtCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IGNydGNfc3RhdGUt PmJhc2Uuc3RhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjcnRjX3N0 YXRlLT51YXBpLnN0YXRlOwo+ICAJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqaW50ZWxfc3Rh dGUgPSB0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpOwo+IC0Jc3RydWN0IGRybV9jcnRjICpm b3JfY3J0YyA9IGNydGNfc3RhdGUtPmJhc2UuY3J0YzsKPiArCXN0cnVjdCBkcm1fY3J0YyAqZm9y X2NydGMgPSBjcnRjX3N0YXRlLT51YXBpLmNydGM7Cj4gIAljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YzsKPiAgCXUzMiBwaXBlX3dpZHRoID0gMCwgdG90YWxfd2lkdGggPSAwLCB3aWR0aF9i ZWZvcmVfcGlwZSA9IDA7Cj4gIAllbnVtIHBpcGUgZm9yX3BpcGUgPSB0b19pbnRlbF9jcnRjKGZv cl9jcnRjKS0+cGlwZTsKPiBAQCAtMzk0MSw3ICszOTQxLDcgQEAgc3RhdGljIHVuc2lnbmVkIGlu dAo+ICBza2xfY3Vyc29yX2FsbG9jYXRpb24oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUsCj4gIAkJICAgICAgaW50IG51bV9hY3RpdmUpCj4gIHsKPiAtCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRj LT5kZXYpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShj cnRjX3N0YXRlLT51YXBpLmNydGMtPmRldik7Cj4gIAlpbnQgbGV2ZWwsIG1heF9sZXZlbCA9IGls a193bV9tYXhfbGV2ZWwoZGV2X3ByaXYpOwo+ICAJc3RydWN0IHNrbF93bV9sZXZlbCB3bSA9IHt9 Owo+ICAJaW50IHJldCwgbWluX2RkYl9hbGxvYyA9IDA7Cj4gQEAgLTQxMzEsNyArNDEzMSw3IEBA IGludCBza2xfY2hlY2tfcGlwZV9tYXhfcGl4ZWxfcmF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50 ZWxfY3J0YywKPiAgCQkJCSAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4g IHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxf Y3J0Yy0+YmFzZS5kZXYpOwo+IC0Jc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gY3J0 Y19zdGF0ZS0+YmFzZS5zdGF0ZTsKPiArCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9 IGNydGNfc3RhdGUtPnVhcGkuc3RhdGU7Cj4gIAljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3Rh dGUgKnBsYW5lX3N0YXRlOwo+ICAJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZTsKPiAgCWludCBj cnRjX2Nsb2NrLCBkb3RjbGs7Cj4gQEAgLTQyMzIsNyArNDIzMiw3IEBAIHNrbF9nZXRfdG90YWxf cmVsYXRpdmVfZGF0YV9yYXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ ICAJCQkJIHU2NCAqcGxhbmVfZGF0YV9yYXRlLAo+ICAJCQkJIHU2NCAqdXZfcGxhbmVfZGF0YV9y YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjcnRjX3N0YXRl LT5iYXNlLnN0YXRlOwo+ICsJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gY3J0Y19z dGF0ZS0+dWFwaS5zdGF0ZTsKPiAgCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmU7Cj4gIAljb25z dCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlOwo+ICAJdTY0IHRvdGFsX2Rh dGFfcmF0ZSA9IDA7Cj4gQEAgLTQyNjcsNyArNDI2Nyw3IEBAIGljbF9nZXRfdG90YWxfcmVsYXRp dmVfZGF0YV9yYXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJY29u c3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZTsKPiAgCXU2NCB0b3RhbF9k YXRhX3JhdGUgPSAwOwo+ICAKPiAtCWlmIChXQVJOX09OKCFjcnRjX3N0YXRlLT5iYXNlLnN0YXRl KSkKPiArCWlmIChXQVJOX09OKCFjcnRjX3N0YXRlLT51YXBpLnN0YXRlKSkKPiAgCQlyZXR1cm4g MDsKPiAgCj4gIAkvKiBDYWxjdWxhdGUgYW5kIGNhY2hlIGRhdGEgcmF0ZSBmb3IgZWFjaCBwbGFu ZSAqLwo+IEBAIC00MzExLDggKzQzMTEsOCBAQCBzdGF0aWMgaW50Cj4gIHNrbF9hbGxvY2F0ZV9w aXBlX2RkYihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQkgICAgICBz dHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uICpkZGIgLyogb3V0ICovKQo+ICB7Cj4gLQlzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT5iYXNlLnN0YXRlOwo+IC0Jc3Ry dWN0IGRybV9jcnRjICpjcnRjID0gY3J0Y19zdGF0ZS0+YmFzZS5jcnRjOwo+ICsJc3RydWN0IGRy bV9hdG9taWNfc3RhdGUgKnN0YXRlID0gY3J0Y19zdGF0ZS0+dWFwaS5zdGF0ZTsKPiArCXN0cnVj dCBkcm1fY3J0YyAqY3J0YyA9IGNydGNfc3RhdGUtPnVhcGkuY3J0YzsKPiAgCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ZGV2KTsKPiAgCXN0cnVjdCBp bnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiAgCXN0cnVjdCBz a2xfZGRiX2VudHJ5ICphbGxvYyA9ICZjcnRjX3N0YXRlLT53bS5za2wuZGRiOwo+IEBAIC00NjE5 LDcgKzQ2MTksNyBAQCBza2xfY29tcHV0ZV93bV9wYXJhbXMoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAkJICAgICAgdTMyIHBsYW5lX3BpeGVsX3JhdGUsIHN0 cnVjdCBza2xfd21fcGFyYW1zICp3cCwKPiAgCQkgICAgICBpbnQgY29sb3JfcGxhbmUpCj4gIHsK PiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5i YXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKPiAgCXUzMiBpbnRlcm1fcGJwbDsKPiAgCj4g QEAgLTQ3NDAsNyArNDc0MCw3IEBAIHN0YXRpYyB2b2lkIHNrbF9jb21wdXRlX3BsYW5lX3dtKGNv bnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJCQkJIGNvbnN0IHN0 cnVjdCBza2xfd21fbGV2ZWwgKnJlc3VsdF9wcmV2LAo+ICAJCQkJIHN0cnVjdCBza2xfd21fbGV2 ZWwgKnJlc3VsdCAvKiBvdXQgKi8pCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOwo+ICsJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNy dGMtPmRldik7Cj4gIAl1MzIgbGF0ZW5jeSA9IGRldl9wcml2LT53bS5za2xfbGF0ZW5jeVtsZXZl bF07Cj4gIAl1aW50X2ZpeGVkXzE2XzE2X3QgbWV0aG9kMSwgbWV0aG9kMjsKPiAgCXVpbnRfZml4 ZWRfMTZfMTZfdCBzZWxlY3RlZF9yZXN1bHQ7Cj4gQEAgLTQ4NjQsNyArNDg2NCw3IEBAIHNrbF9j b21wdXRlX3dtX2xldmVscyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSwKPiAgCQkgICAgICBjb25zdCBzdHJ1Y3Qgc2tsX3dtX3BhcmFtcyAqd21fcGFyYW1zLAo+ICAJ CSAgICAgIHN0cnVjdCBza2xfd21fbGV2ZWwgKmxldmVscykKPiAgewo+IC0Jc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRl dik7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNf c3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKPiAgCWludCBsZXZlbCwgbWF4X2xldmVsID0gaWxrX3dt X21heF9sZXZlbChkZXZfcHJpdik7Cj4gIAlzdHJ1Y3Qgc2tsX3dtX2xldmVsICpyZXN1bHRfcHJl diA9ICZsZXZlbHNbMF07Cj4gIAo+IEBAIC00ODgxLDcgKzQ4ODEsNyBAQCBza2xfY29tcHV0ZV93 bV9sZXZlbHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIHN0 YXRpYyB1MzIKPiAgc2tsX2NvbXB1dGVfbGluZXRpbWVfd20oY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIHsKPiAtCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSA9IGNydGNfc3RhdGUtPmJhc2Uuc3RhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT51YXBpLnN0YXRlOwo+ICAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+ZGV2KTsKPiAgCXVpbnRfZml4ZWRfMTZf MTZfdCBsaW5ldGltZV91czsKPiAgCXUzMiBsaW5ldGltZV93bTsKPiBAQCAtNDkwMCw3ICs0OTAw LDcgQEAgc3RhdGljIHZvaWQgc2tsX2NvbXB1dGVfdHJhbnNpdGlvbl93bShjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQkJCSAgICAgIGNvbnN0IHN0cnVjdCBz a2xfd21fcGFyYW1zICp3cCwKPiAgCQkJCSAgICAgIHN0cnVjdCBza2xfcGxhbmVfd20gKndtKQo+ ICB7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5k ZXY7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5k ZXY7Cj4gIAljb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGRldik7Cj4gIAl1MTYgdHJhbnNfbWluLCB0cmFuc195X3RpbGVfbWluOwo+ICAJY29uc3QgdTE2 IHRyYW5zX2Ftb3VudCA9IDEwOyAvKiBUaGlzIGlzIGNvbmZpZ3VyYWJsZSBhbW91bnQgKi8KPiBA QCAtNTA2MCw3ICs1MDYwLDcgQEAgc3RhdGljIGludCBpY2xfYnVpbGRfcGxhbmVfd20oc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAo+ICBzdGF0aWMgaW50IHNrbF9idWls ZF9waXBlX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7Cj4gLQlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJh c2UuY3J0Yy0+ZGV2KTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwo+ICAJc3RydWN0IHNrbF9waXBlX3dt ICpwaXBlX3dtID0gJmNydGNfc3RhdGUtPndtLnNrbC5vcHRpbWFsOwo+ICAJc3RydWN0IGludGVs X3BsYW5lICpwbGFuZTsKPiAgCWNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVf c3RhdGU7Cj4gQEAgLTUyNTAsOCArNTI1MCw4IEBAIHN0YXRpYyBpbnQKPiAgc2tsX2RkYl9hZGRf YWZmZWN0ZWRfcGxhbmVzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19z dGF0ZSwKPiAgCQkJICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSkK PiAgewo+IC0Jc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUgPSB0b19pbnRlbF9hdG9t aWNfc3RhdGUobmV3X2NydGNfc3RhdGUtPmJhc2Uuc3RhdGUpOwo+IC0Jc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJ c3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUgPSB0b19pbnRlbF9hdG9taWNfc3RhdGUo bmV3X2NydGNfc3RhdGUtPnVhcGkuc3RhdGUpOwo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMg PSB0b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ICAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4gIAlz dHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lOwo+ICAKPiBAQCAtNTU1Miw3ICs1NTUyLDcgQEAgc3Rh dGljIGludCBza2xfd21fYWRkX2FmZmVjdGVkX3BsYW5lcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0 YXRlICpzdGF0ZSwKPiAgCQkgKiBwb3dlciB3ZWxsIHRoZSBoYXJkd2FyZSBzdGF0ZSB3aWxsIGdv IG91dCBvZiBzeW5jCj4gIAkJICogd2l0aCB0aGUgc29mdHdhcmUgc3RhdGUuCj4gIAkJICovCj4g LQkJaWYgKCFkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNldCgmbmV3X2NydGNfc3RhdGUtPmJh c2UpICYmCj4gKwkJaWYgKCFkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNldCgmbmV3X2NydGNf c3RhdGUtPnVhcGkpICYmCj4gIAkJICAgIHNrbF9wbGFuZV93bV9lcXVhbHMoZGV2X3ByaXYsCj4g IAkJCQkJJm9sZF9jcnRjX3N0YXRlLT53bS5za2wub3B0aW1hbC5wbGFuZXNbcGxhbmVfaWRdLAo+ ICAJCQkJCSZuZXdfY3J0Y19zdGF0ZS0+d20uc2tsLm9wdGltYWwucGxhbmVzW3BsYW5lX2lkXSkp Cj4gQEAgLTU2MjAsNyArNTYyMCw3IEBAIHNrbF9jb21wdXRlX3dtKHN0cnVjdCBpbnRlbF9hdG9t aWNfc3RhdGUgKnN0YXRlKQo+ICBzdGF0aWMgdm9pZCBza2xfYXRvbWljX3VwZGF0ZV9jcnRjX3dt KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ICAJCQkJICAgICAgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIHsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4g IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5iYXNl LmRldik7Cj4gIAlzdHJ1Y3Qgc2tsX3BpcGVfd20gKnBpcGVfd20gPSAmY3J0Y19zdGF0ZS0+d20u c2tsLm9wdGltYWw7Cj4gIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4gQEAgLTU2MzQs NyArNTYzNCw3IEBAIHN0YXRpYyB2b2lkIHNrbF9hdG9taWNfdXBkYXRlX2NydGNfd20oc3RydWN0 IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gIHN0YXRpYyB2b2lkIHNrbF9pbml0aWFsX3dt KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ICAJCQkgICBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3Qg aW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5j cnRjKTsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9jcnRjLT5iYXNlLmRldjsK PiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAg CXN0cnVjdCBza2xfZGRiX3ZhbHVlcyAqcmVzdWx0cyA9ICZzdGF0ZS0+d21fcmVzdWx0czsKPiBA QCAtNTY0NCw3ICs1NjQ0LDcgQEAgc3RhdGljIHZvaWQgc2tsX2luaXRpYWxfd20oc3RydWN0IGlu dGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gIAo+ICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPndt LndtX211dGV4KTsKPiAgCj4gLQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmVfY2hhbmdlZCkK PiArCWlmIChjcnRjX3N0YXRlLT51YXBpLmFjdGl2ZV9jaGFuZ2VkKQo+ICAJCXNrbF9hdG9taWNf dXBkYXRlX2NydGNfd20oc3RhdGUsIGNydGNfc3RhdGUpOwo+ICAKPiAgCW11dGV4X3VubG9jaygm ZGV2X3ByaXYtPndtLndtX211dGV4KTsKPiBAQCAtNTcwMyw4ICs1NzAzLDggQEAgc3RhdGljIHZv aWQgaWxrX3Byb2dyYW1fd2F0ZXJtYXJrcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4gIHN0YXRpYyB2b2lkIGlsa19pbml0aWFsX3dhdGVybWFya3Moc3RydWN0IGludGVsX2F0 b21pY19zdGF0ZSAqc3RhdGUsCj4gIAkJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRj LT5kZXYpOwo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNf c3RhdGUtPnVhcGkuY3J0Yyk7Cj4gIAo+ICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPndtLndtX211 dGV4KTsKPiAgCWNydGMtPndtLmFjdGl2ZS5pbGsgPSBjcnRjX3N0YXRlLT53bS5pbGsuaW50ZXJt ZWRpYXRlOwo+IEBAIC01NzE1LDggKzU3MTUsOCBAQCBzdGF0aWMgdm9pZCBpbGtfaW5pdGlhbF93 YXRlcm1hcmtzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ICBzdGF0aWMgdm9p ZCBpbGtfb3B0aW1pemVfd2F0ZXJtYXJrcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0 ZSwKPiAgCQkJCSAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgewo+ IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRl LT5iYXNlLmNydGMtPmRldik7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwo+ICsJc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0 Yyk7Cj4gIAo+ICAJaWYgKCFjcnRjX3N0YXRlLT53bS5uZWVkX3Bvc3R2YmxfdXBkYXRlKQo+ICAJ CXJldHVybjsKPiAtLSAKPiAyLjIzLjAKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4