From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH 1/2] drm/i915: introduce dp_to_i915() helper Date: Tue, 28 Aug 2018 07:00:58 -0700 Message-ID: <20180828140058.GA28554@intel.com> References: <20180827223021.7145-1-rodrigo.vivi@intel.com> <20180828124328.GW5565@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 1B3596E025 for ; Tue, 28 Aug 2018 14:01:09 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20180828124328.GW5565@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBBdWcgMjgsIDIwMTggYXQgMDM6NDM6MjhQTSArMDMwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIE1vbiwgQXVnIDI3LCAyMDE4IGF0IDAzOjMwOjIwUE0gLTA3MDAsIFJvZHJp Z28gVml2aSB3cm90ZToKPiA+IE5vIGZ1bmN0aW9uYWwgY2hhbmdlLiBCdXQgbGV0J3MgZ2V0IGZp cnN0IGk5MTUgcG9pbnRlcgo+ID4gZGlyZWN0bHkgZnJvbSBpbnRlbF9kcCBzbyB3ZSBjYW4gY2xl YW4gdXAgYSBsb3Qgb2YgY29kZQo+ID4gbGF0ZXIuCj4gCj4gUHJldHR5IHN1cmUgSSBoYXZlIGEg Y29jY2kgc2NyaXB0IGZvciB0aGlzIHNvbWV3aGVyZSwganVzdCBuZXZlciBwb3N0ZWQKPiB0aGUg cmVzdWx0cyA6KQoKYSBzY3JpcHQgd291bGQgYmUgZWFzaWVyIGluZGVlZC4uLi4gc3BlY2lhbGx5 IGNvbnNpZGVyIHBvc3NpYmxlIGludGVybmFsCmNvbmZsaWN0IG9uIHJlYmFzaW5nLgoKYnV0IGFu eXdheSBsZXQgaXQgYmUgbm93Li4uCgo+IAo+IEJ1dCBtYW51YWwgY29udmVyc2lvbiB3b3JrcyBm aW5lIHRvbywgc28KPiBSZXZpZXdlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxh QGxpbnV4LmludGVsLmNvbT4KCi4uLiBwdXNoZWQsIHRoYW5rcwoKPiAKPiA+IAo+ID4gU2lnbmVk LW9mZi1ieTogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgo+ID4gLS0tCj4g PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAgfCAxMDkgKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIHwg ICA2ICsrCj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCA1NyBpbnNlcnRpb25zKCspLCA1OCBkZWxldGlv bnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rw LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiBpbmRleCBkYjg1MTUxNzEy NzAuLjQzNmMyMmRlMzNiNiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+IEBA IC0xMDcsMTMgKzEwNyw2IEBAIGJvb2wgaW50ZWxfZHBfaXNfZWRwKHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHApCj4gPiAgCXJldHVybiBpbnRlbF9kaWdfcG9ydC0+YmFzZS50eXBlID09IElOVEVM X09VVFBVVF9FRFA7Cj4gPiAgfQo+ID4gIAo+ID4gLXN0YXRpYyBzdHJ1Y3QgZHJtX2RldmljZSAq aW50ZWxfZHBfdG9fZGV2KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiAtewo+ID4gLQlz dHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0 KGludGVsX2RwKTsKPiA+IC0KPiA+IC0JcmV0dXJuIGludGVsX2RpZ19wb3J0LT5iYXNlLmJhc2Uu ZGV2Owo+ID4gLX0KPiA+IC0KPiA+ICBzdGF0aWMgc3RydWN0IGludGVsX2RwICppbnRlbF9hdHRh Y2hlZF9kcChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ID4gIHsKPiA+ICAJcmV0 dXJuIGVuY190b19pbnRlbF9kcCgmaW50ZWxfYXR0YWNoZWRfZW5jb2Rlcihjb25uZWN0b3IpLT5i YXNlKTsKPiA+IEBAIC0yMzIsNyArMjI1LDcgQEAgaW50ZWxfZHBfbGlua19yZXF1aXJlZChpbnQg cGl4ZWxfY2xvY2ssIGludCBicHApCj4gPiAgdm9pZCBpY2xfcHJvZ3JhbV9tZ19kcF9tb2RlKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiAgewo+ID4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRh bF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPiA+IC0J c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9kcF90b19k ZXYoaW50ZWxfZHApKTsKPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g ZHBfdG9faTkxNShpbnRlbF9kcCk7Cj4gPiAgCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGlnX3Bv cnQtPmJhc2UucG9ydDsKPiA+ICAJZW51bSB0Y19wb3J0IHRjX3BvcnQgPSBpbnRlbF9wb3J0X3Rv X3RjKGRldl9wcml2LCBwb3J0KTsKPiA+ICAJdTMyIGxuMCwgbG4xLCBsYW5lX2luZm87Cj4gPiBA QCAtNjYxLDcgKzY1NCw3IEBAIGludGVsX2RwX3Bwc19pbml0KHN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHApOwo+ID4gIAo+ID4gIHN0YXRpYyB2b2lkIHBwc19sb2NrKHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHApCj4gPiAgewo+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOwo+ID4gKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsKPiA+ICAKPiA+ICAJ LyoKPiA+ICAJICogU2VlIGludGVsX3Bvd2VyX3NlcXVlbmNlcl9yZXNldCgpIHdoeSB3ZSBuZWVk Cj4gPiBAQCAtNjc0LDcgKzY2Nyw3IEBAIHN0YXRpYyB2b2lkIHBwc19sb2NrKHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHApCj4gPiAgCj4gPiAgc3RhdGljIHZvaWQgcHBzX3VubG9jayhzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwKQo+ID4gIHsKPiA+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApKTsKPiA+ICsJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZHBfdG9faTkxNShpbnRlbF9kcCk7Cj4g PiAgCj4gPiAgCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnBwc19tdXRleCk7Cj4gPiAgCj4gPiBA QCAtNjg0LDcgKzY3Nyw3IEBAIHN0YXRpYyB2b2lkIHBwc191bmxvY2soc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCkKPiA+ICBzdGF0aWMgdm9pZAo+ID4gIHZsdl9wb3dlcl9zZXF1ZW5jZXJfa2lj ayhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gIHsKPiA+IC0Jc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApKTsK PiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZHBfdG9faTkxNShpbnRl bF9kcCk7Cj4gPiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0g ZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwo+ID4gIAllbnVtIHBpcGUgcGlwZSA9IGludGVsX2Rw LT5wcHNfcGlwZTsKPiA+ICAJYm9vbCBwbGxfZW5hYmxlZCwgcmVsZWFzZV9jbF9vdmVycmlkZSA9 IGZhbHNlOwo+ID4gQEAgLTc4OSw3ICs3ODIsNyBAQCBzdGF0aWMgZW51bSBwaXBlIHZsdl9maW5k X2ZyZWVfcHBzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ICBzdGF0aWMg ZW51bSBwaXBlCj4gPiAgdmx2X3Bvd2VyX3NlcXVlbmNlcl9waXBlKHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHApCj4gPiAgewo+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOwo+ID4gKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsKPiA+ICAJc3RydWN0 IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRl bF9kcCk7Cj4gPiAgCWVudW0gcGlwZSBwaXBlOwo+ID4gIAo+ID4gQEAgLTgzNiw3ICs4MjksNyBA QCB2bHZfcG93ZXJfc2VxdWVuY2VyX3BpcGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ ICBzdGF0aWMgaW50Cj4gPiAgYnh0X3Bvd2VyX3NlcXVlbmNlcl9pZHgoc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCkKPiA+ICB7Cj4gPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKSk7Cj4gPiArCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRwX3RvX2k5MTUoaW50ZWxfZHApOwo+ID4gIAlpbnQg YmFja2xpZ2h0X2NvbnRyb2xsZXIgPSBkZXZfcHJpdi0+dmJ0LmJhY2tsaWdodC5jb250cm9sbGVy Owo+ID4gIAo+ID4gIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+cHBzX211dGV4KTsK PiA+IEBAIC05MDUsNyArODk4LDcgQEAgdmx2X2luaXRpYWxfcHBzX3BpcGUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gIHN0YXRpYyB2b2lkCj4gPiAgdmx2X2luaXRpYWxf cG93ZXJfc2VxdWVuY2VyX3NldHVwKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiAgewo+ ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2Rw X3RvX2RldihpbnRlbF9kcCkpOwo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsKPiA+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9y dCAqaW50ZWxfZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7Cj4gPiAgCWVudW0g cG9ydCBwb3J0ID0gaW50ZWxfZGlnX3BvcnQtPmJhc2UucG9ydDsKPiA+ICAKPiA+IEBAIC05ODIs NyArOTc1LDcgQEAgc3RydWN0IHBwc19yZWdpc3RlcnMgewo+ID4gIHN0YXRpYyB2b2lkIGludGVs X3Bwc19nZXRfcmVnaXN0ZXJzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiAgCQkJCSAg ICBzdHJ1Y3QgcHBzX3JlZ2lzdGVycyAqcmVncykKPiA+ICB7Cj4gPiAtCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKSk7 Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRwX3RvX2k5MTUoaW50 ZWxfZHApOwo+ID4gIAlpbnQgcHBzX2lkeCA9IDA7Cj4gPiAgCj4gPiAgCW1lbXNldChyZWdzLCAw LCBzaXplb2YoKnJlZ3MpKTsKPiA+IEBAIC0xMDI4LDcgKzEwMjEsNyBAQCBzdGF0aWMgaW50IGVk cF9ub3RpZnlfaGFuZGxlcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKnRoaXMsIHVuc2lnbmVkIGxv bmcgY29kZSwKPiA+ICB7Cj4gPiAgCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBjb250YWlu ZXJfb2YodGhpcywgdHlwZW9mKCogaW50ZWxfZHApLAo+ID4gIAkJCQkJCSBlZHBfbm90aWZpZXIp Owo+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVs X2RwX3RvX2RldihpbnRlbF9kcCkpOwo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsKPiA+ICAKPiA+ICAJaWYgKCFpbnRlbF9kcF9p c19lZHAoaW50ZWxfZHApIHx8IGNvZGUgIT0gU1lTX1JFU1RBUlQpCj4gPiAgCQlyZXR1cm4gMDsK PiA+IEBAIC0xMDU4LDcgKzEwNTEsNyBAQCBzdGF0aWMgaW50IGVkcF9ub3RpZnlfaGFuZGxlcihz dHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKnRoaXMsIHVuc2lnbmVkIGxvbmcgY29kZSwKPiA+ICAKPiA+ ICBzdGF0aWMgYm9vbCBlZHBfaGF2ZV9wYW5lbF9wb3dlcihzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwKQo+ID4gIHsKPiA+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApKTsKPiA+ICsJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gZHBfdG9faTkxNShpbnRlbF9kcCk7Cj4gPiAgCj4gPiAgCWxvY2tk ZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5wcHNfbXV0ZXgpOwo+ID4gIAo+ID4gQEAgLTEwNzEs NyArMTA2NCw3IEBAIHN0YXRpYyBib29sIGVkcF9oYXZlX3BhbmVsX3Bvd2VyKHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHApCj4gPiAgCj4gPiAgc3RhdGljIGJvb2wgZWRwX2hhdmVfcGFuZWxfdmRk KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiAgewo+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOwo+ ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkcF90b19pOTE1KGludGVs X2RwKTsKPiA+ICAKPiA+ICAJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPnBwc19tdXRl eCk7Cj4gPiAgCj4gPiBAQCAtMTA4NSw3ICsxMDc4LDcgQEAgc3RhdGljIGJvb2wgZWRwX2hhdmVf cGFuZWxfdmRkKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiAgc3RhdGljIHZvaWQKPiA+ ICBpbnRlbF9kcF9jaGVja19lZHAoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ICB7Cj4g PiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBf dG9fZGV2KGludGVsX2RwKSk7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGRwX3RvX2k5MTUoaW50ZWxfZHApOwo+ID4gIAo+ID4gIAlpZiAoIWludGVsX2RwX2lzX2Vk cChpbnRlbF9kcCkpCj4gPiAgCQlyZXR1cm47Cj4gPiBAQCAtMTEwMSw3ICsxMDk0LDcgQEAgaW50 ZWxfZHBfY2hlY2tfZWRwKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiAgc3RhdGljIHVp bnQzMl90Cj4gPiAgaW50ZWxfZHBfYXV4X3dhaXRfZG9uZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwKQo+ID4gIHsKPiA+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApKTsKPiA+ICsJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gZHBfdG9faTkxNShpbnRlbF9kcCk7Cj4gPiAgCWk5MTVfcmVnX3Qg Y2hfY3RsID0gaW50ZWxfZHAtPmF1eF9jaF9jdGxfcmVnKGludGVsX2RwKTsKPiA+ICAJdWludDMy X3Qgc3RhdHVzOwo+ID4gIAlib29sIGRvbmU7Cj4gPiBAQCAtMTExOCw3ICsxMTExLDcgQEAgaW50 ZWxfZHBfYXV4X3dhaXRfZG9uZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gIAo+ID4g IHN0YXRpYyB1aW50MzJfdCBnNHhfZ2V0X2F1eF9jbG9ja19kaXZpZGVyKHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHAsIGludCBpbmRleCkKPiA+ICB7Cj4gPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKSk7Cj4gPiAr CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRwX3RvX2k5MTUoaW50ZWxfZHAp Owo+ID4gIAo+ID4gIAlpZiAoaW5kZXgpCj4gPiAgCQlyZXR1cm4gMDsKPiA+IEBAIC0xMTMyLDcg KzExMjUsNyBAQCBzdGF0aWMgdWludDMyX3QgZzR4X2dldF9hdXhfY2xvY2tfZGl2aWRlcihzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBpbnQgaW5kZXgpCj4gPiAgCj4gPiAgc3RhdGljIHVpbnQz Ml90IGlsa19nZXRfYXV4X2Nsb2NrX2RpdmlkZXIoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwg aW50IGluZGV4KQo+ID4gIHsKPiA+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApKTsKPiA+ICsJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZHBfdG9faTkxNShpbnRlbF9kcCk7Cj4gPiAgCj4gPiAg CWlmIChpbmRleCkKPiA+ICAJCXJldHVybiAwOwo+ID4gQEAgLTExNTAsNyArMTE0Myw3IEBAIHN0 YXRpYyB1aW50MzJfdCBpbGtfZ2V0X2F1eF9jbG9ja19kaXZpZGVyKHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHAsIGludCBpbmRleCkKPiA+ICAKPiA+ICBzdGF0aWMgdWludDMyX3QgaHN3X2dldF9h dXhfY2xvY2tfZGl2aWRlcihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBpbnQgaW5kZXgpCj4g PiAgewo+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGlu dGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOwo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsKPiA+ICAKPiA+ICAJaWYgKGludGVsX2Rw LT5hdXhfY2ggIT0gQVVYX0NIX0EgJiYgSEFTX1BDSF9MUFRfSChkZXZfcHJpdikpIHsKPiA+ICAJ CS8qIFdvcmthcm91bmQgZm9yIG5vbi1VTFQgSFNXICovCj4gPiBAQCAtMTU1Miw3ICsxNTQ1LDcg QEAgaW50ZWxfYXV4X3Bvd2VyX2RvbWFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4g IAo+ID4gIHN0YXRpYyBpOTE1X3JlZ190IGc0eF9hdXhfY3RsX3JlZyhzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwKQo+ID4gIHsKPiA+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApKTsKPiA+ICsJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZHBfdG9faTkxNShpbnRlbF9kcCk7Cj4gPiAgCWVudW0g YXV4X2NoIGF1eF9jaCA9IGludGVsX2RwLT5hdXhfY2g7Cj4gPiAgCj4gPiAgCXN3aXRjaCAoYXV4 X2NoKSB7Cj4gPiBAQCAtMTU2OCw3ICsxNTYxLDcgQEAgc3RhdGljIGk5MTVfcmVnX3QgZzR4X2F1 eF9jdGxfcmVnKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiAgCj4gPiAgc3RhdGljIGk5 MTVfcmVnX3QgZzR4X2F1eF9kYXRhX3JlZyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBpbnQg aW5kZXgpCj4gPiAgewo+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOwo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsKPiA+ICAJZW51bSBhdXhf Y2ggYXV4X2NoID0gaW50ZWxfZHAtPmF1eF9jaDsKPiA+ICAKPiA+ICAJc3dpdGNoIChhdXhfY2gp IHsKPiA+IEBAIC0xNTg0LDcgKzE1NzcsNyBAQCBzdGF0aWMgaTkxNV9yZWdfdCBnNHhfYXV4X2Rh dGFfcmVnKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGludCBpbmRleCkKPiA+ICAKPiA+ICBz dGF0aWMgaTkxNV9yZWdfdCBpbGtfYXV4X2N0bF9yZWcoc3RydWN0IGludGVsX2RwICppbnRlbF9k cCkKPiA+ICB7Cj4gPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKSk7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IGRwX3RvX2k5MTUoaW50ZWxfZHApOwo+ID4gIAllbnVtIGF1eF9jaCBh dXhfY2ggPSBpbnRlbF9kcC0+YXV4X2NoOwo+ID4gIAo+ID4gIAlzd2l0Y2ggKGF1eF9jaCkgewo+ ID4gQEAgLTE2MDIsNyArMTU5NSw3IEBAIHN0YXRpYyBpOTE1X3JlZ190IGlsa19hdXhfY3RsX3Jl ZyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gIAo+ID4gIHN0YXRpYyBpOTE1X3JlZ190 IGlsa19hdXhfZGF0YV9yZWcoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50IGluZGV4KQo+ ID4gIHsKPiA+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShp bnRlbF9kcF90b19kZXYoaW50ZWxfZHApKTsKPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gZHBfdG9faTkxNShpbnRlbF9kcCk7Cj4gPiAgCWVudW0gYXV4X2NoIGF1eF9j aCA9IGludGVsX2RwLT5hdXhfY2g7Cj4gPiAgCj4gPiAgCXN3aXRjaCAoYXV4X2NoKSB7Cj4gPiBA QCAtMTYyMCw3ICsxNjEzLDcgQEAgc3RhdGljIGk5MTVfcmVnX3QgaWxrX2F1eF9kYXRhX3JlZyhz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBpbnQgaW5kZXgpCj4gPiAgCj4gPiAgc3RhdGljIGk5 MTVfcmVnX3Qgc2tsX2F1eF9jdGxfcmVnKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiAg ewo+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVs X2RwX3RvX2RldihpbnRlbF9kcCkpOwo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsKPiA+ICAJZW51bSBhdXhfY2ggYXV4X2NoID0g aW50ZWxfZHAtPmF1eF9jaDsKPiA+ICAKPiA+ICAJc3dpdGNoIChhdXhfY2gpIHsKPiA+IEBAIC0x NjM5LDcgKzE2MzIsNyBAQCBzdGF0aWMgaTkxNV9yZWdfdCBza2xfYXV4X2N0bF9yZWcoc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCkKPiA+ICAKPiA+ICBzdGF0aWMgaTkxNV9yZWdfdCBza2xfYXV4 X2RhdGFfcmVnKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGludCBpbmRleCkKPiA+ICB7Cj4g PiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBf dG9fZGV2KGludGVsX2RwKSk7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGRwX3RvX2k5MTUoaW50ZWxfZHApOwo+ID4gIAllbnVtIGF1eF9jaCBhdXhfY2ggPSBpbnRl bF9kcC0+YXV4X2NoOwo+ID4gIAo+ID4gIAlzd2l0Y2ggKGF1eF9jaCkgewo+ID4gQEAgLTE2NjUs NyArMTY1OCw3IEBAIGludGVsX2RwX2F1eF9maW5pKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAp Cj4gPiAgc3RhdGljIHZvaWQKPiA+ICBpbnRlbF9kcF9hdXhfaW5pdChzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwKQo+ID4gIHsKPiA+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApKTsKPiA+ICsJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZHBfdG9faTkxNShpbnRlbF9kcCk7Cj4gPiAgCXN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0gJmRwX3RvX2RpZ19wb3J0KGludGVsX2RwKS0+YmFz ZTsKPiA+ICAKPiA+ICAJaW50ZWxfZHAtPmF1eF9jaCA9IGludGVsX2F1eF9jaChpbnRlbF9kcCk7 Cj4gPiBAQCAtMTgzMyw3ICsxODI2LDcgQEAgc3RydWN0IGxpbmtfY29uZmlnX2xpbWl0cyB7Cj4g PiAgc3RhdGljIGludCBpbnRlbF9kcF9jb21wdXRlX2JwcChzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwLAo+ID4gIAkJCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4gPiAg ewo+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVs X2RwX3RvX2RldihpbnRlbF9kcCkpOwo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsKPiA+ICAJc3RydWN0IGludGVsX2Nvbm5lY3Rv ciAqaW50ZWxfY29ubmVjdG9yID0gaW50ZWxfZHAtPmF0dGFjaGVkX2Nvbm5lY3RvcjsKPiA+ICAJ aW50IGJwcCwgYnBjOwo+ID4gIAo+ID4gQEAgLTIyMDEsNyArMjE5NCw3IEBAIHN0YXRpYyB2b2lk IHdhaXRfcGFuZWxfc3RhdHVzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiAgCQkJCSAg ICAgICB1MzIgbWFzaywKPiA+ICAJCQkJICAgICAgIHUzMiB2YWx1ZSkKPiA+ICB7Cj4gPiAtCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2 KGludGVsX2RwKSk7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRw X3RvX2k5MTUoaW50ZWxfZHApOwo+ID4gIAlpOTE1X3JlZ190IHBwX3N0YXRfcmVnLCBwcF9jdHJs X3JlZzsKPiA+ICAKPiA+ICAJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPnBwc19tdXRl eCk7Cj4gPiBAQCAtMjI3Nyw3ICsyMjcwLDcgQEAgc3RhdGljIHZvaWQgZWRwX3dhaXRfYmFja2xp Z2h0X29mZihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gIAo+ID4gIHN0YXRpYyAgdTMy IGlyb25sYWtlX2dldF9wcF9jb250cm9sKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiAg ewo+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVs X2RwX3RvX2RldihpbnRlbF9kcCkpOwo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsKPiA+ICAJdTMyIGNvbnRyb2w7Cj4gPiAgCj4g PiAgCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5wcHNfbXV0ZXgpOwo+ID4gQEAgLTIy OTgsNyArMjI5MSw3IEBAIHN0YXRpYyAgdTMyIGlyb25sYWtlX2dldF9wcF9jb250cm9sKHN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiAgICovCj4gPiAgc3RhdGljIGJvb2wgZWRwX3BhbmVs X3ZkZF9vbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gIHsKPiA+IC0Jc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxf ZHApKTsKPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZHBfdG9faTkx NShpbnRlbF9kcCk7Cj4gPiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19w b3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwo+ID4gIAl1MzIgcHA7Cj4gPiAgCWk5MTVf cmVnX3QgcHBfc3RhdF9yZWcsIHBwX2N0cmxfcmVnOwo+ID4gQEAgLTIzNjksNyArMjM2Miw3IEBA IHZvaWQgaW50ZWxfZWRwX3BhbmVsX3ZkZF9vbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ ID4gIAo+ID4gIHN0YXRpYyB2b2lkIGVkcF9wYW5lbF92ZGRfb2ZmX3N5bmMoc3RydWN0IGludGVs X2RwICppbnRlbF9kcCkKPiA+ICB7Cj4gPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKSk7Cj4gPiArCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRwX3RvX2k5MTUoaW50ZWxfZHApOwo+ID4gIAlz dHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9Cj4gPiAgCQlkcF90b19k aWdfcG9ydChpbnRlbF9kcCk7Cj4gPiAgCXUzMiBwcDsKPiA+IEBAIC0yNDM1LDcgKzI0MjgsNyBA QCBzdGF0aWMgdm9pZCBlZHBfcGFuZWxfdmRkX3NjaGVkdWxlX29mZihzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwKQo+ID4gICAqLwo+ID4gIHN0YXRpYyB2b2lkIGVkcF9wYW5lbF92ZGRfb2ZmKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGJvb2wgc3luYykKPiA+ICB7Cj4gPiAtCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2KGludGVs X2RwKSk7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRwX3RvX2k5 MTUoaW50ZWxfZHApOwo+ID4gIAo+ID4gIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+ cHBzX211dGV4KTsKPiA+ICAKPiA+IEBAIC0yNDU1LDcgKzI0NDgsNyBAQCBzdGF0aWMgdm9pZCBl ZHBfcGFuZWxfdmRkX29mZihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBib29sIHN5bmMpCj4g PiAgCj4gPiAgc3RhdGljIHZvaWQgZWRwX3BhbmVsX29uKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHApCj4gPiAgewo+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOwo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsKPiA+ICAJdTMyIHBwOwo+ID4g IAlpOTE1X3JlZ190IHBwX2N0cmxfcmVnOwo+ID4gIAo+ID4gQEAgLTI1MTMsNyArMjUwNiw3IEBA IHZvaWQgaW50ZWxfZWRwX3BhbmVsX29uKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiAg Cj4gPiAgc3RhdGljIHZvaWQgZWRwX3BhbmVsX29mZihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw KQo+ID4gIHsKPiA+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApKTsKPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZHBfdG9faTkxNShpbnRlbF9kcCk7Cj4gPiAgCXUzMiBwcDsKPiA+ICAJ aTkxNV9yZWdfdCBwcF9jdHJsX3JlZzsKPiA+ICAKPiA+IEBAIC0yNTYxLDcgKzI1NTQsNyBAQCB2 b2lkIGludGVsX2VkcF9wYW5lbF9vZmYoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ICAv KiBFbmFibGUgYmFja2xpZ2h0IGluIHRoZSBwYW5lbCBwb3dlciBjb250cm9sLiAqLwo+ID4gIHN0 YXRpYyB2b2lkIF9pbnRlbF9lZHBfYmFja2xpZ2h0X29uKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHApCj4gPiAgewo+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOwo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsKPiA+ICAJdTMyIHBwOwo+ID4g IAlpOTE1X3JlZ190IHBwX2N0cmxfcmVnOwo+ID4gIAo+ID4gQEAgLTI2MDQsNyArMjU5Nyw3IEBA IHZvaWQgaW50ZWxfZWRwX2JhY2tsaWdodF9vbihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSwKPiA+ICAvKiBEaXNhYmxlIGJhY2tsaWdodCBpbiB0aGUgcGFuZWwgcG93 ZXIgY29udHJvbC4gKi8KPiA+ICBzdGF0aWMgdm9pZCBfaW50ZWxfZWRwX2JhY2tsaWdodF9vZmYo c3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ICB7Cj4gPiAtCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKSk7Cj4g PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRwX3RvX2k5MTUoaW50ZWxf ZHApOwo+ID4gIAl1MzIgcHA7Cj4gPiAgCWk5MTVfcmVnX3QgcHBfY3RybF9yZWc7Cj4gPiAgCj4g PiBAQCAtMzAzNSw3ICszMDI4LDcgQEAgX2ludGVsX2RwX3NldF9saW5rX3RyYWluKHN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHAsCj4gPiAgCQkJIHVpbnQzMl90ICpEUCwKPiA+ICAJCQkgdWludDhf dCBkcF90cmFpbl9wYXQpCj4gPiAgewo+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOwo+ID4gKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsKPiA+ICAJ c3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBkcF90b19kaWdfcG9y dChpbnRlbF9kcCk7Cj4gPiAgCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGlnX3BvcnQtPmJhc2Uu cG9ydDsKPiA+ICAJdWludDhfdCB0cmFpbl9wYXRfbWFzayA9IGRybV9kcF90cmFpbmluZ19wYXR0 ZXJuX21hc2soaW50ZWxfZHAtPmRwY2QpOwo+ID4gQEAgLTMxMTcsNyArMzExMCw3IEBAIF9pbnRl bF9kcF9zZXRfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gIHN0YXRp YyB2b2lkIGludGVsX2RwX2VuYWJsZV9wb3J0KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4g PiAgCQkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUpCj4g PiAgewo+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGlu dGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOwo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsKPiA+ICAKPiA+ICAJLyogZW5hYmxlIHdp dGggcGF0dGVybiAxIChhcyBwZXIgc3BlYykgKi8KPiA+ICAKPiA+IEBAIC0zMzc0LDcgKzMzNjcs NyBAQCBpbnRlbF9kcF9nZXRfbGlua19zdGF0dXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwg dWludDhfdCBsaW5rX3N0YXR1c1tEUF9MSU5LXwo+ID4gIHVpbnQ4X3QKPiA+ICBpbnRlbF9kcF92 b2x0YWdlX21heChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gIHsKPiA+IC0Jc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9kcF90b19kZXYoaW50 ZWxfZHApKTsKPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZHBfdG9f aTkxNShpbnRlbF9kcCk7Cj4gPiAgCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0gJmRw X3RvX2RpZ19wb3J0KGludGVsX2RwKS0+YmFzZTsKPiA+ICAJZW51bSBwb3J0IHBvcnQgPSBlbmNv ZGVyLT5wb3J0Owo+ID4gIAo+ID4gQEAgLTMzOTMsNyArMzM4Niw3IEBAIGludGVsX2RwX3ZvbHRh Z2VfbWF4KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiAgdWludDhfdAo+ID4gIGludGVs X2RwX3ByZV9lbXBoYXNpc19tYXgoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgdWludDhfdCB2 b2x0YWdlX3N3aW5nKQo+ID4gIHsKPiA+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApKTsKPiA+ICsJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZHBfdG9faTkxNShpbnRlbF9kcCk7Cj4gPiAgCXN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0gJmRwX3RvX2RpZ19wb3J0KGludGVsX2RwKS0+ YmFzZTsKPiA+ICAJZW51bSBwb3J0IHBvcnQgPSBlbmNvZGVyLT5wb3J0Owo+ID4gIAo+ID4gQEAg LTM3MDUsNyArMzY5OCw3IEBAIGl2Yl9jcHVfZWRwX3NpZ25hbF9sZXZlbHModWludDhfdCB0cmFp bl9zZXQpCj4gPiAgdm9pZAo+ID4gIGludGVsX2RwX3NldF9zaWduYWxfbGV2ZWxzKHN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHApCj4gPiAgewo+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOwo+ID4gKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsKPiA+ ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBkcF90b19kaWdf cG9ydChpbnRlbF9kcCk7Cj4gPiAgCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGlnX3BvcnQtPmJh c2UucG9ydDsKPiA+ICAJdWludDMyX3Qgc2lnbmFsX2xldmVscywgbWFzayA9IDA7Cj4gPiBAQCAt Mzc2Miw3ICszNzU1LDcgQEAgaW50ZWxfZHBfcHJvZ3JhbV9saW5rX3RyYWluaW5nX3BhdHRlcm4o c3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiA+ICAKPiA+ICB2b2lkIGludGVsX2RwX3NldF9p ZGxlX2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ICB7Cj4gPiAtCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2 KGludGVsX2RwKSk7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRw X3RvX2k5MTUoaW50ZWxfZHApOwo+ID4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRl bF9kaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPiA+ICAJZW51bSBwb3J0IHBv cnQgPSBpbnRlbF9kaWdfcG9ydC0+YmFzZS5wb3J0Owo+ID4gIAl1aW50MzJfdCB2YWw7Cj4gPiBA QCAtNDQ1NSw3ICs0NDQ4LDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfZHBfaG90cGx1ZyhzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICBzdGF0aWMgYm9vbAo+ID4gIGludGVsX2RwX3No b3J0X3B1bHNlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiAgewo+ID4gLQlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2RwX3RvX2RldihpbnRl bF9kcCkpOwo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkcF90b19p OTE1KGludGVsX2RwKTsKPiA+ICAJdTggc2lua19pcnFfdmVjdG9yID0gMDsKPiA+ICAJdTggb2xk X3NpbmtfY291bnQgPSBpbnRlbF9kcC0+c2lua19jb3VudDsKPiA+ICAJYm9vbCByZXQ7Cj4gPiBA QCAtNTU0Nyw3ICs1NTQwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9oZGNwX3NoaW0g aW50ZWxfZHBfaGRjcF9zaGltID0gewo+ID4gIAo+ID4gIHN0YXRpYyB2b2lkIGludGVsX2VkcF9w YW5lbF92ZGRfc2FuaXRpemUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ICB7Cj4gPiAt CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBfdG9f ZGV2KGludGVsX2RwKSk7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IGRwX3RvX2k5MTUoaW50ZWxfZHApOwo+ID4gIAo+ID4gIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZk ZXZfcHJpdi0+cHBzX211dGV4KTsKPiA+ICAKPiA+IEBAIC01NTY4LDcgKzU1NjEsNyBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9lZHBfcGFuZWxfdmRkX3Nhbml0aXplKHN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHApCj4gPiAgCj4gPiAgc3RhdGljIGVudW0gcGlwZSB2bHZfYWN0aXZlX3BpcGUoc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCkKPiA+ICB7Cj4gPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKSk7Cj4gPiArCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRwX3RvX2k5MTUoaW50ZWxfZHApOwo+ ID4gIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9ICZkcF90b19kaWdfcG9ydChpbnRl bF9kcCktPmJhc2U7Cj4gPiAgCWVudW0gcGlwZSBwaXBlOwo+ID4gIAo+ID4gQEAgLTU2MzUsNyAr NTYyOCw3IEBAIGVudW0gaXJxcmV0dXJuCj4gPiAgaW50ZWxfZHBfaHBkX3B1bHNlKHN0cnVjdCBp bnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LCBib29sIGxvbmdfaHBkKQo+ID4gIHsK PiA+ICAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9ICZpbnRlbF9kaWdfcG9ydC0+ZHA7Cj4g PiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBf dG9fZGV2KGludGVsX2RwKSk7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGRwX3RvX2k5MTUoaW50ZWxfZHApOwo+ID4gIAllbnVtIGlycXJldHVybiByZXQgPSBJUlFf Tk9ORTsKPiA+ICAKPiA+ICAJaWYgKGxvbmdfaHBkICYmIGludGVsX2RpZ19wb3J0LT5iYXNlLnR5 cGUgPT0gSU5URUxfT1VUUFVUX0VEUCkgewo+ID4gQEAgLTU3NTEsNyArNTc0NCw3IEBAIHN0YXRp YyB2b2lkIGludGVsX2RwX2luaXRfcGFuZWxfcG93ZXJfdGltZXN0YW1wcyhzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwKQo+ID4gIHN0YXRpYyB2b2lkCj4gPiAgaW50ZWxfcHBzX3JlYWRvdXRfaHdf c3RhdGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgc3RydWN0IGVkcF9wb3dlcl9zZXEgKnNl cSkKPiA+ICB7Cj4gPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKSk7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IGRwX3RvX2k5MTUoaW50ZWxfZHApOwo+ID4gIAl1MzIgcHBfb24sIHBw X29mZiwgcHBfZGl2ID0gMCwgcHBfY3RsID0gMDsKPiA+ICAJc3RydWN0IHBwc19yZWdpc3RlcnMg cmVnczsKPiA+ICAKPiA+IEBAIC01ODE5LDcgKzU4MTIsNyBAQCBpbnRlbF9wcHNfdmVyaWZ5X3N0 YXRlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiAgc3RhdGljIHZvaWQKPiA+ICBpbnRl bF9kcF9pbml0X3BhbmVsX3Bvd2VyX3NlcXVlbmNlcihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw KQo+ID4gIHsKPiA+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApKTsKPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZHBfdG9faTkxNShpbnRlbF9kcCk7Cj4gPiAgCXN0cnVjdCBlZHBfcG93 ZXJfc2VxIGN1ciwgdmJ0LCBzcGVjLAo+ID4gIAkJKmZpbmFsID0gJmludGVsX2RwLT5wcHNfZGVs YXlzOwo+ID4gIAo+ID4gQEAgLTU5MTIsNyArNTkwNSw3IEBAIHN0YXRpYyB2b2lkCj4gPiAgaW50 ZWxfZHBfaW5pdF9wYW5lbF9wb3dlcl9zZXF1ZW5jZXJfcmVnaXN0ZXJzKHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHAsCj4gPiAgCQkJCQkgICAgICBib29sIGZvcmNlX2Rpc2FibGVfdmRkKQo+ID4g IHsKPiA+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRl bF9kcF90b19kZXYoaW50ZWxfZHApKTsKPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gZHBfdG9faTkxNShpbnRlbF9kcCk7Cj4gPiAgCXUzMiBwcF9vbiwgcHBfb2ZmLCBw cF9kaXYsIHBvcnRfc2VsID0gMDsKPiA+ICAJaW50IGRpdiA9IGRldl9wcml2LT5yYXdjbGtfZnJl cSAvIDEwMDA7Cj4gPiAgCXN0cnVjdCBwcHNfcmVnaXN0ZXJzIHJlZ3M7Cj4gPiBAQCAtNjAwOCw3 ICs2MDAxLDcgQEAgaW50ZWxfZHBfaW5pdF9wYW5lbF9wb3dlcl9zZXF1ZW5jZXJfcmVnaXN0ZXJz KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiAgCj4gPiAgc3RhdGljIHZvaWQgaW50ZWxf ZHBfcHBzX2luaXQoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ICB7Cj4gPiAtCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2KGlu dGVsX2RwKSk7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRwX3Rv X2k5MTUoaW50ZWxfZHApOwo+ID4gIAo+ID4gIAlpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikg fHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpIHsKPiA+ICAJCXZsdl9pbml0aWFsX3Bvd2VyX3Nl cXVlbmNlcl9zZXR1cChpbnRlbF9kcCk7Cj4gPiBAQCAtNjEyNSw3ICs2MTE4LDcgQEAgc3RhdGlj IHZvaWQgaW50ZWxfZHBfc2V0X2RycnNfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAo+ID4gIHZvaWQgaW50ZWxfZWRwX2RycnNfZW5hYmxlKHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHAsCj4gPiAgCQkJICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUpCj4gPiAgewo+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOwo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsKPiA+ICAKPiA+ICAJaWYg KCFjcnRjX3N0YXRlLT5oYXNfZHJycykgewo+ID4gIAkJRFJNX0RFQlVHX0tNUygiUGFuZWwgZG9l c24ndCBzdXBwb3J0IERSUlNcbiIpOwo+ID4gQEAgLTYxNjAsNyArNjE1Myw3IEBAIHZvaWQgaW50 ZWxfZWRwX2RycnNfZW5hYmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiAgdm9pZCBp bnRlbF9lZHBfZHJyc19kaXNhYmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiAgCQkJ ICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSkKPiA+ICB7 Cj4gPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxf ZHBfdG9fZGV2KGludGVsX2RwKSk7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGRwX3RvX2k5MTUoaW50ZWxfZHApOwo+ID4gIAo+ID4gIAlpZiAoIW9sZF9jcnRjX3N0 YXRlLT5oYXNfZHJycykKPiA+ICAJCXJldHVybjsKPiA+IEBAIC02MzkyLDggKzYzODUsOCBAQCBp bnRlbF9kcF9kcnJzX2luaXQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ID4g IHN0YXRpYyBib29sIGludGVsX2VkcF9pbml0X2Nvbm5lY3RvcihzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwLAo+ID4gIAkJCQkgICAgIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5l Y3RvcikKPiA+ICB7Cj4gPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kcF90b19k ZXYoaW50ZWxfZHApOwo+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGRldik7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRw X3RvX2k5MTUoaW50ZWxfZHApOwo+ID4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9w cml2LT5kcm07Cj4gPiAgCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSAmaW50ZWxf Y29ubmVjdG9yLT5iYXNlOwo+ID4gIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqZml4ZWRfbW9k ZSA9IE5VTEw7Cj4gPiAgCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpkb3duY2xvY2tfbW9kZSA9 IE5VTEw7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2Lmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gaW5kZXggZWE3NThhYTRkZWUz Li4wZDRlNTllYzU0YWMgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+IEBA IC0xMzE1LDYgKzEzMTUsMTIgQEAgZHBfdG9fbHNwY29uKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHApCj4gPiAgCXJldHVybiAmZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApLT5sc3Bjb247Cj4gPiAg fQo+ID4gIAo+ID4gK3N0YXRpYyBpbmxpbmUgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKgo+ID4g K2RwX3RvX2k5MTUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ICt7Cj4gPiArCXJldHVy biB0b19pOTE1KGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKS0+YmFzZS5iYXNlLmRldik7Cj4gPiAr fQo+ID4gKwo+ID4gIHN0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqCj4g PiAgaGRtaV90b19kaWdfcG9ydChzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSkKPiA+ICB7 Cj4gPiAtLSAKPiA+IDIuMTcuMQo+ID4gCj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwo+ID4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ID4gSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKPiAKPiAtLSAKPiBWaWxsZSBTeXJqw6Rsw6QK PiBJbnRlbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK