From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Pandiyan, Dhinakaran" Subject: Re: [PATCH 10/10] drm/i915: Clean up DP code local variables and calling conventions Date: Thu, 9 Nov 2017 03:01:11 +0000 Message-ID: <1510197699.8287.35.camel@dk-H97M-D3H> References: <20171031205123.13123-1-ville.syrjala@linux.intel.com> <20171031205123.13123-11-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 597346E80C for ; Thu, 9 Nov 2017 03:01:14 +0000 (UTC) In-Reply-To: <20171031205123.13123-11-ville.syrjala@linux.intel.com> Content-Language: en-US Content-ID: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "ville.syrjala@linux.intel.com" Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org DQoNCm5pdHMgYmVsb3cuIA0KDQoNCk9uIFR1ZSwgMjAxNy0xMC0zMSBhdCAyMjo1MSArMDIwMCwg VmlsbGUgU3lyamFsYSB3cm90ZToNCj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJq YWxhQGxpbnV4LmludGVsLmNvbT4NCj4gDQo+IEVsaW1pbmF0ZSBhIHRvbiBvZiBwb2ludGxlc3Mg J2RldicgdmFyaWFibGVzIGluIHRoZSBEUCBjb2RlLCBhbmQgcGFzcw0KPiBhcm91bmQgJ2Rldl9w cml2JyBpbnN0ZWFkIG9mICdkZXYnLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOk bMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4NCj4gLS0tDQo+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcC5jIHwgMTUxICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCj4gIDEgZmlsZSBjaGFuZ2VkLCA1NCBpbnNlcnRpb25zKCspLCA5NyBkZWxl dGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYw0KPiBpbmRleCBmODc1YmE3OGM0 MzUuLjMwYWMxODdiMmI5NyAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHAuYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jDQo+IEBAIC00 MzgsMTAgKzQzOCw3IEBAIGludGVsX2RwX3Bwc19pbml0KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHApOw0KPiAgDQo+ICBzdGF0aWMgdm9pZCBwcHNfbG9jayhzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwKQ0KPiAgew0KPiAtCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0 ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOw0KPiAtCXN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyID0gJmludGVsX2RpZ19wb3J0LT5iYXNlOw0KPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsNCj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGRldik7DQo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApKTsNCj4gIA0KPiAgCS8qDQo+ ICAJICogU2VlIHZsdl9wb3dlcl9zZXF1ZW5jZXJfcmVzZXQoKSB3aHkgd2UgbmVlZA0KPiBAQCAt NDU0LDEwICs0NTEsNyBAQCBzdGF0aWMgdm9pZCBwcHNfbG9jayhzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwKQ0KPiAgDQo+ICBzdGF0aWMgdm9pZCBwcHNfdW5sb2NrKHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHApDQo+ICB7DQo+IC0Jc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGln X3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7DQo+IC0Jc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIgPSAmaW50ZWxfZGlnX3BvcnQtPmJhc2U7DQo+IC0Jc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2Ow0KPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsNCj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOw0KPiAgDQo+ICAJ bXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHBzX211dGV4KTsNCj4gIA0KPiBAQCAtNDY3LDggKzQ2 MSw4IEBAIHN0YXRpYyB2b2lkIHBwc191bmxvY2soc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkN Cj4gIHN0YXRpYyB2b2lkDQo+ICB2bHZfcG93ZXJfc2VxdWVuY2VyX2tpY2soc3RydWN0IGludGVs X2RwICppbnRlbF9kcCkNCj4gIHsNCj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOw0KPiAgCXN0cnVjdCBpbnRl bF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHAp Ow0KPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxf ZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYpOw0KPiAgCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfZHAt PnBwc19waXBlOw0KPiAgCWJvb2wgcGxsX2VuYWJsZWQsIHJlbGVhc2VfY2xfb3ZlcnJpZGUgPSBm YWxzZTsNCj4gIAllbnVtIGRwaW9fcGh5IHBoeSA9IERQSU9fUEhZKHBpcGUpOw0KPiBAQCAtNzMz LDcgKzcyNyw2IEBAIHZsdl9pbml0aWFsX3Bvd2VyX3NlcXVlbmNlcl9zZXR1cChzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwKQ0KPiAgDQo+ICB2b2lkIGludGVsX3Bvd2VyX3NlcXVlbmNlcl9yZXNl dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpDQo+ICB7DQo+IC0Jc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9ICZkZXZfcHJpdi0+ZHJtOw0KPiAgCXN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyOw0KPiAgDQo+ICAJaWYgKFdBUk5fT04oIUlTX1ZBTExFWVZJRVcoZGV2X3ByaXYp ICYmICFJU19DSEVSUllWSUVXKGRldl9wcml2KSAmJg0KPiBAQCAtNzUwLDcgKzc0Myw3IEBAIHZv aWQgaW50ZWxfcG93ZXJfc2VxdWVuY2VyX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikNCj4gIAkgKiBzaG91bGQgdXNlIHRoZW0gYWx3YXlzLg0KPiAgCSAqLw0KPiAgDQo+ IC0JZm9yX2VhY2hfaW50ZWxfZW5jb2RlcihkZXYsIGVuY29kZXIpIHsNCj4gKwlmb3JfZWFjaF9p bnRlbF9lbmNvZGVyKCZkZXZfcHJpdi0+ZHJtLCBlbmNvZGVyKSB7DQo+ICAJCXN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHA7DQo+ICANCj4gIAkJaWYgKGVuY29kZXItPnR5cGUgIT0gSU5URUxfT1VU UFVUX0RQICYmDQo+IEBAIC04MzIsOCArODI1LDcgQEAgc3RhdGljIGludCBlZHBfbm90aWZ5X2hh bmRsZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICp0aGlzLCB1bnNpZ25lZCBsb25nIGNvZGUsDQo+ ICB7DQo+ICAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGNvbnRhaW5lcl9vZih0aGlzLCB0 eXBlb2YoKiBpbnRlbF9kcCksDQo+ICAJCQkJCQkgZWRwX25vdGlmaWVyKTsNCj4gLQlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKTsNCj4gLQlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7DQo+ICsJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxf ZHApKTsNCj4gIA0KPiAgCWlmICghaW50ZWxfZHBfaXNfZWRwKGludGVsX2RwKSB8fCBjb2RlICE9 IFNZU19SRVNUQVJUKQ0KPiAgCQlyZXR1cm4gMDsNCj4gQEAgLTg2Myw4ICs4NTUsNyBAQCBzdGF0 aWMgaW50IGVkcF9ub3RpZnlfaGFuZGxlcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKnRoaXMsIHVu c2lnbmVkIGxvbmcgY29kZSwNCj4gIA0KPiAgc3RhdGljIGJvb2wgZWRwX2hhdmVfcGFuZWxfcG93 ZXIoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkNCj4gIHsNCj4gLQlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKTsNCj4gLQlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7DQo+ICsJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApKTsNCj4g IA0KPiAgCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5wcHNfbXV0ZXgpOw0KPiAgDQo+ IEBAIC04NzcsOCArODY4LDcgQEAgc3RhdGljIGJvb2wgZWRwX2hhdmVfcGFuZWxfcG93ZXIoc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCkNCj4gIA0KPiAgc3RhdGljIGJvb2wgZWRwX2hhdmVfcGFu ZWxfdmRkKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApDQo+ICB7DQo+IC0Jc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGludGVsX2RwX3RvX2RldihpbnRlbF9kcCk7DQo+IC0Jc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOw0KPiArCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKSk7 DQo+ICANCj4gIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+cHBzX211dGV4KTsNCj4g IA0KPiBAQCAtODkyLDggKzg4Miw3IEBAIHN0YXRpYyBib29sIGVkcF9oYXZlX3BhbmVsX3ZkZChz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQ0KPiAgc3RhdGljIHZvaWQNCj4gIGludGVsX2RwX2No ZWNrX2VkcChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQ0KPiAgew0KPiAtCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApOw0KPiAtCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsNCj4gKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9kcCkp Ow0KPiAgDQo+ICAJaWYgKCFpbnRlbF9kcF9pc19lZHAoaW50ZWxfZHApKQ0KPiAgCQlyZXR1cm47 DQo+IEBAIC05MDksOSArODk4LDcgQEAgaW50ZWxfZHBfY2hlY2tfZWRwKHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHApDQo+ICBzdGF0aWMgdWludDMyX3QNCj4gIGludGVsX2RwX2F1eF93YWl0X2Rv bmUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgYm9vbCBoYXNfYXV4X2lycSkNCj4gIHsNCj4g LQlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGRwX3RvX2RpZ19w b3J0KGludGVsX2RwKTsNCj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZGlnX3Bv cnQtPmJhc2UuYmFzZS5kZXY7DQo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShkZXYpOw0KPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKSk7DQo+ICAJaTkxNV9yZWdfdCBjaF9j dGwgPSBpbnRlbF9kcC0+YXV4X2NoX2N0bF9yZWc7DQo+ICAJdWludDMyX3Qgc3RhdHVzOw0KPiAg CWJvb2wgZG9uZTsNCj4gQEAgLTE0NzgsOCArMTQ2NSw3IEBAIHN0YXRpYyB2b2lkDQo+ICBpbnRl bF9kcF9zZXRfY2xvY2soc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsDQo+ICAJCSAgIHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykNCj4gIHsNCj4gLQlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7DQo+IC0Jc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOw0KPiArCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOw0KPiAgCWNvbnN0IHN0 cnVjdCBkcF9saW5rX2RwbGwgKmRpdmlzb3IgPSBOVUxMOw0KPiAgCWludCBpLCBjb3VudCA9IDA7 DQo+ICANCj4gQEAgLTE4NDgsOCArMTgzNCw3IEBAIHZvaWQgaW50ZWxfZHBfc2V0X2xpbmtfcGFy YW1zKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsDQo+ICBzdGF0aWMgdm9pZCBpbnRlbF9kcF9w cmVwYXJlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLA0KPiAgCQkJICAgICBjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpDQo+ICB7DQo+IC0Jc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2Ow0KPiAtCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsNCj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsNCj4gIAlzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsNCj4g IAllbnVtIHBvcnQgcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKS0+YmFzZS5wb3J0Ow0K PiAgCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+ YmFzZS5jcnRjKTsNCj4gQEAgLTE5NDUsOCArMTkzMCw3IEBAIHN0YXRpYyB2b2lkIHdhaXRfcGFu ZWxfc3RhdHVzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsDQo+ICAJCQkJICAgICAgIHUzMiBt YXNrLA0KPiAgCQkJCSAgICAgICB1MzIgdmFsdWUpDQo+ICB7DQo+IC0Jc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGludGVsX2RwX3RvX2RldihpbnRlbF9kcCk7DQo+IC0Jc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOw0KPiArCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKSk7DQo+ ICAJaTkxNV9yZWdfdCBwcF9zdGF0X3JlZywgcHBfY3RybF9yZWc7DQo+ICANCj4gIAlsb2NrZGVw X2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+cHBzX211dGV4KTsNCj4gQEAgLTIwMjIsOCArMjAwNiw3 IEBAIHN0YXRpYyB2b2lkIGVkcF93YWl0X2JhY2tsaWdodF9vZmYoc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCkNCj4gIA0KPiAgc3RhdGljICB1MzIgaXJvbmxha2VfZ2V0X3BwX2NvbnRyb2woc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCkNCj4gIHsNCj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKTsNCj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7DQo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApKTsNCj4gIAl1MzIg Y29udHJvbDsNCj4gIA0KPiAgCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5wcHNfbXV0 ZXgpOw0KPiBAQCAtMjA0NCw5ICsyMDI3LDggQEAgc3RhdGljICB1MzIgaXJvbmxha2VfZ2V0X3Bw X2NvbnRyb2woc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkNCj4gICAqLw0KPiAgc3RhdGljIGJv b2wgZWRwX3BhbmVsX3ZkZF9vbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQ0KPiAgew0KPiAt CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApOw0KPiAr CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBfdG9f ZGV2KGludGVsX2RwKSk7DQo+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGln X3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7DQo+IC0Jc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOw0KPiAgCXUzMiBwcDsNCj4gIAlpOTE1X3Jl Z190IHBwX3N0YXRfcmVnLCBwcF9jdHJsX3JlZzsNCj4gIAlib29sIG5lZWRfdG9fZGlzYWJsZSA9 ICFpbnRlbF9kcC0+d2FudF9wYW5lbF92ZGQ7DQo+IEBAIC0yMTE2LDggKzIwOTgsNyBAQCB2b2lk IGludGVsX2VkcF9wYW5lbF92ZGRfb24oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkNCj4gIA0K PiAgc3RhdGljIHZvaWQgZWRwX3BhbmVsX3ZkZF9vZmZfc3luYyhzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwKQ0KPiAgew0KPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kcF90b19k ZXYoaW50ZWxfZHApOw0KPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoZGV2KTsNCj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOw0KPiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFs X3BvcnQgKmludGVsX2RpZ19wb3J0ID0NCj4gIAkJZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOw0K PiAgCXUzMiBwcDsNCj4gQEAgLTIyMDMsOCArMjE4NCw3IEBAIHN0YXRpYyB2b2lkIGVkcF9wYW5l bF92ZGRfb2ZmKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGJvb2wgc3luYykNCj4gIA0KPiAg c3RhdGljIHZvaWQgZWRwX3BhbmVsX29uKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApDQo+ICB7 DQo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2RwX3RvX2RldihpbnRlbF9kcCk7 DQo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOw0K PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBf dG9fZGV2KGludGVsX2RwKSk7DQo+ICAJdTMyIHBwOw0KPiAgCWk5MTVfcmVnX3QgcHBfY3RybF9y ZWc7DQo+ICANCj4gQEAgLTIyNjIsOCArMjI0Miw3IEBAIHZvaWQgaW50ZWxfZWRwX3BhbmVsX29u KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApDQo+ICANCj4gIHN0YXRpYyB2b2lkIGVkcF9wYW5l bF9vZmYoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkNCj4gIHsNCj4gLQlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKTsNCj4gLQlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7DQo+ICsJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApKTsN Cj4gIAl1MzIgcHA7DQo+ICAJaTkxNV9yZWdfdCBwcF9jdHJsX3JlZzsNCj4gIA0KPiBAQCAtMjMx MSw5ICsyMjkwLDcgQEAgdm9pZCBpbnRlbF9lZHBfcGFuZWxfb2ZmKHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHApDQo+ICAvKiBFbmFibGUgYmFja2xpZ2h0IGluIHRoZSBwYW5lbCBwb3dlciBjb250 cm9sLiAqLw0KPiAgc3RhdGljIHZvaWQgX2ludGVsX2VkcF9iYWNrbGlnaHRfb24oc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCkNCj4gIHsNCj4gLQlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpp bnRlbF9kaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsNCj4gLQlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gaW50ZWxfZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXY7DQo+IC0Jc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOw0KPiArCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2KGludGVs X2RwKSk7DQo+ICAJdTMyIHBwOw0KPiAgCWk5MTVfcmVnX3QgcHBfY3RybF9yZWc7DQo+ICANCj4g QEAgLTIzNTYsOCArMjMzMyw3IEBAIHZvaWQgaW50ZWxfZWRwX2JhY2tsaWdodF9vbihjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwNCj4gIC8qIERpc2FibGUgYmFja2xp Z2h0IGluIHRoZSBwYW5lbCBwb3dlciBjb250cm9sLiAqLw0KPiAgc3RhdGljIHZvaWQgX2ludGVs X2VkcF9iYWNrbGlnaHRfb2ZmKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApDQo+ICB7DQo+IC0J c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2RwX3RvX2RldihpbnRlbF9kcCk7DQo+IC0J c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOw0KPiArCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2 KGludGVsX2RwKSk7DQo+ICAJdTMyIHBwOw0KPiAgCWk5MTVfcmVnX3QgcHBfY3RybF9yZWc7DQo+ ICANCj4gQEAgLTI1NjAsMTAgKzI1MzYsOSBAQCB2b2lkIGludGVsX2RwX3NpbmtfZHBtcyhzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBpbnQgbW9kZSkNCj4gIHN0YXRpYyBib29sIGludGVsX2Rw X2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwNCj4gIAkJCQkgIGVu dW0gcGlwZSAqcGlwZSkNCj4gIHsNCj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsNCj4gIAlzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsNCj4gIAllbnVtIHBvcnQg cG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKS0+YmFzZS5wb3J0Ow0KPiAtCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsNCj4gLQlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7DQo+ICAJdTMyIHRtcDsNCj4gIAlib29s IHJldDsNCj4gIA0KPiBAQCAtMjYxMiwxMCArMjU4Nyw5IEBAIHN0YXRpYyBib29sIGludGVsX2Rw X2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwNCj4gIHN0YXRpYyB2 b2lkIGludGVsX2RwX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsDQo+ ICAJCQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQ0KPiAgew0KPiArCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5k ZXYpOw0KPiAgCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVu Y29kZXItPmJhc2UpOw0KPiAgCXUzMiB0bXAsIGZsYWdzID0gMDsNCj4gLQlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7DQo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOw0KPiAgCWVudW0gcG9ydCBwb3J0ID0gZHBfdG9f ZGlnX3BvcnQoaW50ZWxfZHApLT5iYXNlLnBvcnQ7DQo+ICAJc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpOw0KPiAgDQo+IEBAIC0y NzgyLDkgKzI3NTYsOCBAQCBfaW50ZWxfZHBfc2V0X2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCwNCj4gIAkJCSB1aW50MzJfdCAqRFAsDQo+ICAJCQkgdWludDhfdCBkcF90cmFp bl9wYXQpDQo+ICB7DQo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApKTsNCj4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRh bF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsNCj4gLQlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXY7DQo+ IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOw0KPiAg CWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGlnX3BvcnQtPmJhc2UucG9ydDsNCj4gIA0KPiAgCWlm IChkcF90cmFpbl9wYXQgJiBEUF9UUkFJTklOR19QQVRURVJOX01BU0spDQo+IEBAIC0yODY4LDgg KzI4NDEsNyBAQCBfaW50ZWxfZHBfc2V0X2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2RwICppbnRl bF9kcCwNCj4gIHN0YXRpYyB2b2lkIGludGVsX2RwX2VuYWJsZV9wb3J0KHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHAsDQo+ICAJCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRf Y3J0Y19zdGF0ZSkNCj4gIHsNCj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZHBf dG9fZGV2KGludGVsX2RwKTsNCj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGRldik7DQo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApKTsNCj4gIA0KPiAgCS8qIGVuYWJsZSB3 aXRoIHBhdHRlcm4gMSAoYXMgcGVyIHNwZWMpICovDQo+ICANCj4gQEAgLTI4OTMsOSArMjg2NSw4 IEBAIHN0YXRpYyB2b2lkIGludGVsX2VuYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwNCj4gIAkJCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25m aWcsDQo+ICAJCQkgICAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3Rh dGUpDQo+ICB7DQo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShlbmNvZGVyLT5iYXNlLmRldik7DQo+ICAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVu Y190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7DQo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IGVuY29kZXItPmJhc2UuZGV2Ow0KPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZGV2KTsNCj4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2lu dGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yyk7DQo+ICAJdWludDMyX3QgZHBfcmVnID0g STkxNV9SRUFEKGludGVsX2RwLT5vdXRwdXRfcmVnKTsNCj4gIAllbnVtIHBpcGUgcGlwZSA9IGNy dGMtPnBpcGU7DQo+IEBAIC0zNTE5LDEwICszNDkwLDkgQEAgZ2VuN19lZHBfc2lnbmFsX2xldmVs cyh1aW50OF90IHRyYWluX3NldCkNCj4gIHZvaWQNCj4gIGludGVsX2RwX3NldF9zaWduYWxfbGV2 ZWxzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApDQo+ICB7DQo+ICsJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApKTsN Cj4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGRwX3RvX2Rp Z19wb3J0KGludGVsX2RwKTsNCj4gIAllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RpZ19wb3J0LT5i YXNlLnBvcnQ7DQo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2RpZ19wb3J0LT5i YXNlLmJhc2UuZGV2Ow0KPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoZGV2KTsNCj4gIAl1aW50MzJfdCBzaWduYWxfbGV2ZWxzLCBtYXNrID0gMDsNCj4gIAl1 aW50OF90IHRyYWluX3NldCA9IGludGVsX2RwLT50cmFpbl9zZXRbMF07DQo+ICANCj4gQEAgLTM1 NzcsOSArMzU0Nyw4IEBAIGludGVsX2RwX3Byb2dyYW1fbGlua190cmFpbmluZ19wYXR0ZXJuKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsDQo+ICANCj4gIHZvaWQgaW50ZWxfZHBfc2V0X2lkbGVf bGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQ0KPiAgew0KPiArCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2KGludGVs X2RwKSk7DQo+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBk cF90b19kaWdfcG9ydChpbnRlbF9kcCk7DQo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGlu dGVsX2RpZ19wb3J0LT5iYXNlLmJhc2UuZGV2Ow0KPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsNCj4gIAllbnVtIHBvcnQgcG9ydCA9IGludGVsX2Rp Z19wb3J0LT5iYXNlLnBvcnQ7DQo+ICAJdWludDMyX3QgdmFsOw0KPiAgDQo+IEBAIC00MzAzLDEx ICs0MjcyLDExIEBAIGludGVsX2RwX3JldHJhaW5fbGluayhzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwKQ0KPiAgc3RhdGljIHZvaWQNCj4gIGludGVsX2RwX2NoZWNrX2xpbmtfc3RhdHVzKHN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHApDQo+ICB7DQo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApKTsNCg0KWW91IGNv bnZlcnQgaXQgYmFjayBhZ2FpbiB0byBkcm1fZGV2aWNlLg0KDQo+ICAJc3RydWN0IGludGVsX2Vu Y29kZXIgKmludGVsX2VuY29kZXIgPSAmZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApLT5iYXNlOw0K PiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApOw0K PiAgCXU4IGxpbmtfc3RhdHVzW0RQX0xJTktfU1RBVFVTX1NJWkVdOw0KPiAgDQo+IC0JV0FSTl9P TighZHJtX21vZGVzZXRfaXNfbG9ja2VkKCZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0 ZXgpKTsNCj4gKwlXQVJOX09OKCFkcm1fbW9kZXNldF9pc19sb2NrZWQoJmRldl9wcml2LT5kcm0u bW9kZV9jb25maWcuY29ubmVjdGlvbl9tdXRleCkpOw0KPiAgDQo+ICAJaWYgKCFpbnRlbF9kcF9n ZXRfbGlua19zdGF0dXMoaW50ZWxfZHAsIGxpbmtfc3RhdHVzKSkgew0KPiAgCQlEUk1fRVJST1Io IkZhaWxlZCB0byBnZXQgbGluayBzdGF0dXNcbiIpOw0KPiBAQCAtNDM1Myw4ICs0MzIyLDcgQEAg aW50ZWxfZHBfY2hlY2tfbGlua19zdGF0dXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkNCj4g IHN0YXRpYyBib29sDQo+ICBpbnRlbF9kcF9zaG9ydF9wdWxzZShzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwKQ0KPiAgew0KPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kcF90b19k ZXYoaW50ZWxfZHApOw0KPiAtCXN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyID0g JmRwX3RvX2RpZ19wb3J0KGludGVsX2RwKS0+YmFzZTsNCj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOw0KDQp0 b19pOTE1KCkgaXMgdW5uZWNlc3NhcnksIGFsbCBjYXNlcyBvZiBkZXZfcHJpdiB1c2FnZSBhcmUg Zm9yDQpkZXZfcHJpdi0+ZHJtLg0KDQoNCj4gIAl1OCBzaW5rX2lycV92ZWN0b3IgPSAwOw0KPiAg CXU4IG9sZF9zaW5rX2NvdW50ID0gaW50ZWxfZHAtPnNpbmtfY291bnQ7DQo+ICAJYm9vbCByZXQ7 DQo+IEBAIC00MzkzLDEzICs0MzYxLDEzIEBAIGludGVsX2RwX3Nob3J0X3B1bHNlKHN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHApDQo+ICAJCQlEUk1fREVCVUdfRFJJVkVSKCJDUCBvciBzaW5rIHNw ZWNpZmljIGlycSB1bmhhbmRsZWRcbiIpOw0KPiAgCX0NCj4gIA0KPiAtCWRybV9tb2Rlc2V0X2xv Y2soJmRldi0+bW9kZV9jb25maWcuY29ubmVjdGlvbl9tdXRleCwgTlVMTCk7DQo+ICsJZHJtX21v ZGVzZXRfbG9jaygmZGV2X3ByaXYtPmRybS5tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4LCBO VUxMKTsNCj4gIAlpbnRlbF9kcF9jaGVja19saW5rX3N0YXR1cyhpbnRlbF9kcCk7DQo+IC0JZHJt X21vZGVzZXRfdW5sb2NrKCZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgpOw0KPiAr CWRybV9tb2Rlc2V0X3VubG9jaygmZGV2X3ByaXYtPmRybS5tb2RlX2NvbmZpZy5jb25uZWN0aW9u X211dGV4KTsNCj4gIAlpZiAoaW50ZWxfZHAtPmNvbXBsaWFuY2UudGVzdF90eXBlID09IERQX1RF U1RfTElOS19UUkFJTklORykgew0KPiAgCQlEUk1fREVCVUdfS01TKCJMaW5rIFRyYWluaW5nIENv bXBsaWFuY2UgVGVzdCByZXF1ZXN0ZWRcbiIpOw0KPiAgCQkvKiBTZW5kIGEgSG90cGx1ZyBVZXZl bnQgdG8gdXNlcnNwYWNlIHRvIHN0YXJ0IG1vZGVzZXQgKi8NCj4gLQkJZHJtX2ttc19oZWxwZXJf aG90cGx1Z19ldmVudChpbnRlbF9lbmNvZGVyLT5iYXNlLmRldik7DQo+ICsJCWRybV9rbXNfaGVs cGVyX2hvdHBsdWdfZXZlbnQoJmRldl9wcml2LT5kcm0pOw0KPiAgCX0NCj4gIA0KPiAgCXJldHVy biB0cnVlOw0KPiBAQCAtNDQ2Myw4ICs0NDMxLDcgQEAgaW50ZWxfZHBfZGV0ZWN0X2RwY2Qoc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCkNCj4gIHN0YXRpYyBlbnVtIGRybV9jb25uZWN0b3Jfc3Rh dHVzDQo+ICBlZHBfZGV0ZWN0KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApDQo+ICB7DQo+IC0J c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2RwX3RvX2RldihpbnRlbF9kcCk7DQo+IC0J c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOw0KPiArCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2 KGludGVsX2RwKSk7DQo+ICAJZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cyBzdGF0dXM7DQo+ICAN Cj4gIAlzdGF0dXMgPSBpbnRlbF9wYW5lbF9kZXRlY3QoZGV2X3ByaXYpOw0KPiBAQCAtNDcyMCwy MiArNDY4NywyMSBAQCBpbnRlbF9kcF91bnNldF9lZGlkKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHApDQo+ICB9DQo+ICANCj4gIHN0YXRpYyBpbnQNCj4gLWludGVsX2RwX2xvbmdfcHVsc2Uoc3Ry dWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yKQ0KPiAraW50ZWxfZHBfbG9uZ19w dWxzZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpDQo+ICB7DQo+IC0Jc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9ICZpbnRlbF9jb25uZWN0b3ItPmJhc2U7DQo+IC0J c3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGludGVsX2F0dGFjaGVkX2RwKGNvbm5lY3Rvcik7 DQo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+ZGV2Ow0KPiArCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRl dik7DQo+ICsJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGludGVsX2F0dGFjaGVkX2RwKCZj b25uZWN0b3ItPmJhc2UpOw0KPiAgCWVudW0gZHJtX2Nvbm5lY3Rvcl9zdGF0dXMgc3RhdHVzOw0K PiAgCXU4IHNpbmtfaXJxX3ZlY3RvciA9IDA7DQo+ICANCj4gLQlXQVJOX09OKCFkcm1fbW9kZXNl dF9pc19sb2NrZWQoJmNvbm5lY3Rvci0+ZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4 KSk7DQo+ICsJV0FSTl9PTighZHJtX21vZGVzZXRfaXNfbG9ja2VkKCZkZXZfcHJpdi0+ZHJtLm1v ZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgpKTsNCj4gIA0KPiAtCWludGVsX2Rpc3BsYXlfcG93 ZXJfZ2V0KHRvX2k5MTUoZGV2KSwgaW50ZWxfZHAtPmF1eF9wb3dlcl9kb21haW4pOw0KPiArCWlu dGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2LCBpbnRlbF9kcC0+YXV4X3Bvd2VyX2RvbWFp bik7DQo+ICANCj4gIAkvKiBDYW4ndCBkaXNjb25uZWN0IGVEUCwgYnV0IHlvdSBjYW4gY2xvc2Ug dGhlIGxpZC4uLiAqLw0KPiAgCWlmIChpbnRlbF9kcF9pc19lZHAoaW50ZWxfZHApKQ0KPiAgCQlz dGF0dXMgPSBlZHBfZGV0ZWN0KGludGVsX2RwKTsNCj4gLQllbHNlIGlmIChpbnRlbF9kaWdpdGFs X3BvcnRfY29ubmVjdGVkKHRvX2k5MTUoZGV2KSwNCj4gKwllbHNlIGlmIChpbnRlbF9kaWdpdGFs X3BvcnRfY29ubmVjdGVkKGRldl9wcml2LA0KPiAgCQkJCQkgICAgICBkcF90b19kaWdfcG9ydChp bnRlbF9kcCkpKQ0KPiAgCQlzdGF0dXMgPSBpbnRlbF9kcF9kZXRlY3RfZHBjZChpbnRlbF9kcCk7 DQo+ICAJZWxzZQ0KPiBAQCAtNDgwNiw3ICs0NzcyLDcgQEAgaW50ZWxfZHBfbG9uZ19wdWxzZShz dHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3IpDQo+ICAJaW50ZWxfZHAtPmF1 eC5pMmNfZGVmZXJfY291bnQgPSAwOw0KPiAgDQo+ICAJaW50ZWxfZHBfc2V0X2VkaWQoaW50ZWxf ZHApOw0KPiAtCWlmIChpbnRlbF9kcF9pc19lZHAoaW50ZWxfZHApIHx8IGludGVsX2Nvbm5lY3Rv ci0+ZGV0ZWN0X2VkaWQpDQo+ICsJaWYgKGludGVsX2RwX2lzX2VkcChpbnRlbF9kcCkgfHwgY29u bmVjdG9yLT5kZXRlY3RfZWRpZCkNCj4gIAkJc3RhdHVzID0gY29ubmVjdG9yX3N0YXR1c19jb25u ZWN0ZWQ7DQo+ICAJaW50ZWxfZHAtPmRldGVjdF9kb25lID0gdHJ1ZTsNCj4gIA0KPiBAQCAtNDgy OSw3ICs0Nzk1LDcgQEAgaW50ZWxfZHBfbG9uZ19wdWxzZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9y ICppbnRlbF9jb25uZWN0b3IpDQo+ICAJaWYgKHN0YXR1cyAhPSBjb25uZWN0b3Jfc3RhdHVzX2Nv bm5lY3RlZCAmJiAhaW50ZWxfZHAtPmlzX21zdCkNCj4gIAkJaW50ZWxfZHBfdW5zZXRfZWRpZChp bnRlbF9kcCk7DQo+ICANCj4gLQlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dCh0b19pOTE1KGRldiks IGludGVsX2RwLT5hdXhfcG93ZXJfZG9tYWluKTsNCj4gKwlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1 dChkZXZfcHJpdiwgaW50ZWxfZHAtPmF1eF9wb3dlcl9kb21haW4pOw0KPiAgCXJldHVybiBzdGF0 dXM7DQo+ICB9DQo+ICANCj4gQEAgLTQ5OTYsOSArNDk2Miw3IEBAIHZvaWQgaW50ZWxfZHBfZW5j b2Rlcl9zdXNwZW5kKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQ0KPiAgDQo+ ICBzdGF0aWMgdm9pZCBpbnRlbF9lZHBfcGFuZWxfdmRkX3Nhbml0aXplKHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHApDQo+ICB7DQo+IC0Jc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxf ZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7DQo+IC0Jc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGludGVsX2RpZ19wb3J0LT5iYXNlLmJhc2UuZGV2Ow0KPiAtCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsNCj4gKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9kcCkp Ow0KPiAgDQo+ICAJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPnBwc19tdXRleCk7DQo+ ICANCj4gQEAgLTUwODYsOCArNTA1MCw3IEBAIGVudW0gaXJxcmV0dXJuDQo+ICBpbnRlbF9kcF9o cGRfcHVsc2Uoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsIGJvb2wg bG9uZ19ocGQpDQo+ICB7DQo+ICAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9ICZpbnRlbF9k aWdfcG9ydC0+ZHA7DQo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2RpZ19wb3J0 LT5iYXNlLmJhc2UuZGV2Ow0KPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZGV2KTsNCj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOw0KPiAgCWVudW0gaXJxcmV0dXJuIHJl dCA9IElSUV9OT05FOw0KPiAgDQo+ICAJaWYgKGxvbmdfaHBkICYmIGludGVsX2RpZ19wb3J0LT5i YXNlLnR5cGUgPT0gSU5URUxfT1VUUFVUX0VEUCkgew0KPiBAQCAtNTU0Niw4ICs1NTA5LDcgQEAg c3RhdGljIHZvaWQgaW50ZWxfZHBfc2V0X2RycnNfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LA0KPiAgdm9pZCBpbnRlbF9lZHBfZHJyc19lbmFibGUoc3RydWN0IGludGVs X2RwICppbnRlbF9kcCwNCj4gIAkJCSAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQ0KPiAgew0KPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kcF90 b19kZXYoaW50ZWxfZHApOw0KPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZGV2KTsNCj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOw0KPiAgDQo+ICAJaWYgKCFjcnRjX3N0 YXRlLT5oYXNfZHJycykgew0KPiAgCQlEUk1fREVCVUdfS01TKCJQYW5lbCBkb2Vzbid0IHN1cHBv cnQgRFJSU1xuIik7DQo+IEBAIC01NTgyLDggKzU1NDQsNyBAQCB2b2lkIGludGVsX2VkcF9kcnJz X2VuYWJsZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLA0KPiAgdm9pZCBpbnRlbF9lZHBfZHJy c19kaXNhYmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsDQo+ICAJCQkgICAgY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlKQ0KPiAgew0KPiAtCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApOw0KPiAtCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsNCj4gKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9k cCkpOw0KPiAgDQo+ICAJaWYgKCFvbGRfY3J0Y19zdGF0ZS0+aGFzX2RycnMpDQo+ICAJCXJldHVy bjsNCj4gQEAgLTU3NjYsNyArNTcyNyw3IEBAIHZvaWQgaW50ZWxfZWRwX2RycnNfZmx1c2goc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LA0KPiAgDQo+ICAvKioNCj4gICAqIGludGVs X2RwX2RycnNfaW5pdCAtIEluaXQgYmFzaWMgRFJSUyB3b3JrIGFuZCBtdXRleC4NCj4gLSAqIEBp bnRlbF9jb25uZWN0b3I6IGVEUCBjb25uZWN0b3INCj4gKyAqIEBjb25uZWN0b3I6IGVEUCBjb25u ZWN0b3INCj4gICAqIEBmaXhlZF9tb2RlOiBwcmVmZXJyZWQgbW9kZSBvZiBwYW5lbA0KPiAgICoN Cj4gICAqIFRoaXMgZnVuY3Rpb24gaXMgIGNhbGxlZCBvbmx5IG9uY2UgYXQgZHJpdmVyIGxvYWQg dG8gaW5pdGlhbGl6ZSBiYXNpYw0KPiBAQCAtNTc3OCwxMiArNTczOSwxMCBAQCB2b2lkIGludGVs X2VkcF9kcnJzX2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwNCj4gICAq IGZyb20gVkJUIHNldHRpbmcpLg0KPiAgICovDQo+ICBzdGF0aWMgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKg0KPiAtaW50ZWxfZHBfZHJyc19pbml0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmlu dGVsX2Nvbm5lY3RvciwNCj4gLQkJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmZpeGVkX21vZGUp DQo+ICtpbnRlbF9kcF9kcnJzX2luaXQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9y LA0KPiArCQkgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqZml4ZWRfbW9kZSkNCj4gIHsNCj4g LQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gJmludGVsX2Nvbm5lY3Rvci0+YmFz ZTsNCj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5kZXY7DQo+IC0Jc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOw0KPiArCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRl dik7DQo+ICAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmRvd25jbG9ja19tb2RlID0gTlVMTDsN Cj4gIA0KPiAgCUlOSVRfREVMQVlFRF9XT1JLKCZkZXZfcHJpdi0+ZHJycy53b3JrLCBpbnRlbF9l ZHBfZHJyc19kb3duY2xvY2tfd29yayk7DQo+IEBAIC01Nzk5LDggKzU3NTgsOCBAQCBpbnRlbF9k cF9kcnJzX2luaXQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yLA0KPiAg CQlyZXR1cm4gTlVMTDsNCj4gIAl9DQo+ICANCj4gLQlkb3duY2xvY2tfbW9kZSA9IGludGVsX2Zp bmRfcGFuZWxfZG93bmNsb2NrDQo+IC0JCQkJCShkZXZfcHJpdiwgZml4ZWRfbW9kZSwgY29ubmVj dG9yKTsNCj4gKwlkb3duY2xvY2tfbW9kZSA9IGludGVsX2ZpbmRfcGFuZWxfZG93bmNsb2NrKGRl dl9wcml2LCBmaXhlZF9tb2RlLA0KPiArCQkJCQkJICAgICZjb25uZWN0b3ItPmJhc2UpOw0KPiAg DQo+ICAJaWYgKCFkb3duY2xvY2tfbW9kZSkgew0KPiAgCQlEUk1fREVCVUdfS01TKCJEb3duY2xv Y2sgbW9kZSBpcyBub3QgZm91bmQuIERSUlMgbm90IHN1cHBvcnRlZFxuIik7DQo+IEBAIC01ODE3 LDExICs1Nzc2LDkgQEAgaW50ZWxfZHBfZHJyc19pbml0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3Ig KmludGVsX2Nvbm5lY3RvciwNCj4gIHN0YXRpYyBib29sIGludGVsX2VkcF9pbml0X2Nvbm5lY3Rv cihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLA0KPiAgCQkJCSAgICAgc3RydWN0IGludGVsX2Nv bm5lY3RvciAqaW50ZWxfY29ubmVjdG9yKQ0KPiAgew0KPiAtCXN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IgPSAmaW50ZWxfY29ubmVjdG9yLT5iYXNlOw0KPiAtCXN0cnVjdCBpbnRlbF9k aWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOw0K PiAtCXN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyID0gJmludGVsX2RpZ19wb3J0 LT5iYXNlOw0KPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9lbmNvZGVyLT5iYXNl LmRldjsNCj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZHBfdG9fZGV2KGludGVs X2RwKTsNCg0KWW91IGhhdmUgcmV0YWluZWQgZGV2IGhlcmUgYnV0ICANCj4gIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7DQo+ICsJc3RydWN0IGRybV9j b25uZWN0b3IgKmNvbm5lY3RvciA9ICZpbnRlbF9jb25uZWN0b3ItPmJhc2U7DQo+ICAJc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKmZpeGVkX21vZGUgPSBOVUxMOw0KPiAgCXN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICphbHRfZml4ZWRfbW9kZSA9IE5VTEw7DQo+ICAJc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKmRvd25jbG9ja19tb2RlID0gTlVMTDsNCj4gQEAgLTU4MzksNyArNTc5Niw3IEBAIHN0 YXRpYyBib29sIGludGVsX2VkcF9pbml0X2Nvbm5lY3RvcihzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwLA0KPiAgCSAqIGVEUCBhbmQgTFZEUyBiYWlsIG91dCBlYXJseSBpbiB0aGlzIGNhc2UgdG8g cHJldmVudCBpbnRlcmZlcmluZw0KPiAgCSAqIHdpdGggYW4gYWxyZWFkeSBwb3dlcmVkLW9uIExW RFMgcG93ZXIgc2VxdWVuY2VyLg0KPiAgCSAqLw0KPiAtCWlmIChpbnRlbF9nZXRfbHZkc19lbmNv ZGVyKGRldikpIHsNCj4gKwlpZiAoaW50ZWxfZ2V0X2x2ZHNfZW5jb2RlcigmZGV2X3ByaXYtPmRy bSkpIHsNCg0KYnV0IGRlcmVmZXJlbmNlZCBkZXZfcHJpdi0+ZHJtIGhlcmUuDQo+ICAJCVdBUk5f T04oIShIQVNfUENIX0lCWChkZXZfcHJpdikgfHwgSEFTX1BDSF9DUFQoZGV2X3ByaXYpKSk7DQo+ ICAJCURSTV9JTkZPKCJMVkRTIHdhcyBkZXRlY3RlZCwgbm90IHJlZ2lzdGVyaW5nIGVEUFxuIik7 DQo+ICANCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=