From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 1/2] drm/i915: introduce dp_to_i915() helper Date: Tue, 28 Aug 2018 15:43:28 +0300 Message-ID: <20180828124328.GW5565@intel.com> References: <20180827223021.7145-1-rodrigo.vivi@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 52CE46E349 for ; Tue, 28 Aug 2018 12:43:31 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20180827223021.7145-1-rodrigo.vivi@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Rodrigo Vivi Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBBdWcgMjcsIDIwMTggYXQgMDM6MzA6MjBQTSAtMDcwMCwgUm9kcmlnbyBWaXZpIHdy b3RlOgo+IE5vIGZ1bmN0aW9uYWwgY2hhbmdlLiBCdXQgbGV0J3MgZ2V0IGZpcnN0IGk5MTUgcG9p bnRlcgo+IGRpcmVjdGx5IGZyb20gaW50ZWxfZHAgc28gd2UgY2FuIGNsZWFuIHVwIGEgbG90IG9m IGNvZGUKPiBsYXRlci4KClByZXR0eSBzdXJlIEkgaGF2ZSBhIGNvY2NpIHNjcmlwdCBmb3IgdGhp cyBzb21ld2hlcmUsIGp1c3QgbmV2ZXIgcG9zdGVkCnRoZSByZXN1bHRzIDopCgpCdXQgbWFudWFs IGNvbnZlcnNpb24gd29ya3MgZmluZSB0b28sIHNvClJldmlld2VkLWJ5OiBWaWxsZSBTeXJqw6Rs w6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgoKPiAKPiBTaWduZWQtb2ZmLWJ5OiBS b2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwLmMgIHwgMTA5ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t LS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggfCAgIDYgKysKPiAgMiBmaWxl cyBjaGFuZ2VkLCA1NyBpbnNlcnRpb25zKCspLCA1OCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwLmMKPiBpbmRleCBkYjg1MTUxNzEyNzAuLjQzNmMyMmRlMzNiNiAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+IEBAIC0xMDcsMTMgKzEwNyw2IEBAIGJvb2wgaW50ZWxf ZHBfaXNfZWRwKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIAlyZXR1cm4gaW50ZWxfZGln X3BvcnQtPmJhc2UudHlwZSA9PSBJTlRFTF9PVVRQVVRfRURQOwo+ICB9Cj4gIAo+IC1zdGF0aWMg c3RydWN0IGRybV9kZXZpY2UgKmludGVsX2RwX3RvX2RldihzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwKQo+IC17Cj4gLQlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9 IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPiAtCj4gLQlyZXR1cm4gaW50ZWxfZGlnX3BvcnQt PmJhc2UuYmFzZS5kZXY7Cj4gLX0KPiAtCj4gIHN0YXRpYyBzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2F0dGFjaGVkX2RwKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gIHsKPiAgCXJl dHVybiBlbmNfdG9faW50ZWxfZHAoJmludGVsX2F0dGFjaGVkX2VuY29kZXIoY29ubmVjdG9yKS0+ YmFzZSk7Cj4gQEAgLTIzMiw3ICsyMjUsNyBAQCBpbnRlbF9kcF9saW5rX3JlcXVpcmVkKGludCBw aXhlbF9jbG9jaywgaW50IGJwcCkKPiAgdm9pZCBpY2xfcHJvZ3JhbV9tZ19kcF9tb2RlKHN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIHsKPiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQg KmludGVsX2RpZ19wb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwo+IC0Jc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxf ZHApKTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRwX3RvX2k5MTUo aW50ZWxfZHApOwo+ICAJZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9kaWdfcG9ydC0+YmFzZS5wb3J0 Owo+ICAJZW51bSB0Y19wb3J0IHRjX3BvcnQgPSBpbnRlbF9wb3J0X3RvX3RjKGRldl9wcml2LCBw b3J0KTsKPiAgCXUzMiBsbjAsIGxuMSwgbGFuZV9pbmZvOwo+IEBAIC02NjEsNyArNjU0LDcgQEAg aW50ZWxfZHBfcHBzX2luaXQoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7Cj4gIAo+ICBzdGF0 aWMgdm9pZCBwcHNfbG9jayhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICB7Cj4gLQlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2RwX3RvX2Rldihp bnRlbF9kcCkpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZHBfdG9f aTkxNShpbnRlbF9kcCk7Cj4gIAo+ICAJLyoKPiAgCSAqIFNlZSBpbnRlbF9wb3dlcl9zZXF1ZW5j ZXJfcmVzZXQoKSB3aHkgd2UgbmVlZAo+IEBAIC02NzQsNyArNjY3LDcgQEAgc3RhdGljIHZvaWQg cHBzX2xvY2soc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgCj4gIHN0YXRpYyB2b2lkIHBw c191bmxvY2soc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgewo+IC0Jc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxfZHAp KTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRwX3RvX2k5MTUoaW50 ZWxfZHApOwo+ICAKPiAgCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnBwc19tdXRleCk7Cj4gIAo+ IEBAIC02ODQsNyArNjc3LDcgQEAgc3RhdGljIHZvaWQgcHBzX3VubG9jayhzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwKQo+ICBzdGF0aWMgdm9pZAo+ICB2bHZfcG93ZXJfc2VxdWVuY2VyX2tpY2so c3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApKTsKPiArCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRwX3RvX2k5MTUoaW50ZWxfZHApOwo+ ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBkcF90b19kaWdf cG9ydChpbnRlbF9kcCk7Cj4gIAllbnVtIHBpcGUgcGlwZSA9IGludGVsX2RwLT5wcHNfcGlwZTsK PiAgCWJvb2wgcGxsX2VuYWJsZWQsIHJlbGVhc2VfY2xfb3ZlcnJpZGUgPSBmYWxzZTsKPiBAQCAt Nzg5LDcgKzc4Miw3IEBAIHN0YXRpYyBlbnVtIHBpcGUgdmx2X2ZpbmRfZnJlZV9wcHMoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICBzdGF0aWMgZW51bSBwaXBlCj4gIHZsdl9w b3dlcl9zZXF1ZW5jZXJfcGlwZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICB7Cj4gLQlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2RwX3RvX2Rl dihpbnRlbF9kcCkpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZHBf dG9faTkxNShpbnRlbF9kcCk7Cj4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9k aWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPiAgCWVudW0gcGlwZSBwaXBlOwo+ ICAKPiBAQCAtODM2LDcgKzgyOSw3IEBAIHZsdl9wb3dlcl9zZXF1ZW5jZXJfcGlwZShzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwKQo+ICBzdGF0aWMgaW50Cj4gIGJ4dF9wb3dlcl9zZXF1ZW5jZXJf aWR4KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKSk7Cj4g KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2Rw KTsKPiAgCWludCBiYWNrbGlnaHRfY29udHJvbGxlciA9IGRldl9wcml2LT52YnQuYmFja2xpZ2h0 LmNvbnRyb2xsZXI7Cj4gIAo+ICAJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPnBwc19t dXRleCk7Cj4gQEAgLTkwNSw3ICs4OTgsNyBAQCB2bHZfaW5pdGlhbF9wcHNfcGlwZShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIHN0YXRpYyB2b2lkCj4gIHZsdl9pbml0aWFs X3Bvd2VyX3NlcXVlbmNlcl9zZXR1cChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICB7Cj4g LQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2RwX3Rv X2RldihpbnRlbF9kcCkpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g ZHBfdG9faTkxNShpbnRlbF9kcCk7Cj4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRl bF9kaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPiAgCWVudW0gcG9ydCBwb3J0 ID0gaW50ZWxfZGlnX3BvcnQtPmJhc2UucG9ydDsKPiAgCj4gQEAgLTk4Miw3ICs5NzUsNyBAQCBz dHJ1Y3QgcHBzX3JlZ2lzdGVycyB7Cj4gIHN0YXRpYyB2b2lkIGludGVsX3Bwc19nZXRfcmVnaXN0 ZXJzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gIAkJCQkgICAgc3RydWN0IHBwc19yZWdp c3RlcnMgKnJlZ3MpCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKSk7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsKPiAgCWludCBwcHNfaWR4 ID0gMDsKPiAgCj4gIAltZW1zZXQocmVncywgMCwgc2l6ZW9mKCpyZWdzKSk7Cj4gQEAgLTEwMjgs NyArMTAyMSw3IEBAIHN0YXRpYyBpbnQgZWRwX25vdGlmeV9oYW5kbGVyKHN0cnVjdCBub3RpZmll cl9ibG9jayAqdGhpcywgdW5zaWduZWQgbG9uZyBjb2RlLAo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwID0gY29udGFpbmVyX29mKHRoaXMsIHR5cGVvZigqIGludGVsX2RwKSwKPiAg CQkJCQkJIGVkcF9ub3RpZmllcik7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOwo+ICsJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZHBfdG9faTkxNShpbnRlbF9kcCk7Cj4gIAo+ICAJaWYg KCFpbnRlbF9kcF9pc19lZHAoaW50ZWxfZHApIHx8IGNvZGUgIT0gU1lTX1JFU1RBUlQpCj4gIAkJ cmV0dXJuIDA7Cj4gQEAgLTEwNTgsNyArMTA1MSw3IEBAIHN0YXRpYyBpbnQgZWRwX25vdGlmeV9o YW5kbGVyKHN0cnVjdCBub3RpZmllcl9ibG9jayAqdGhpcywgdW5zaWduZWQgbG9uZyBjb2RlLAo+ ICAKPiAgc3RhdGljIGJvb2wgZWRwX2hhdmVfcGFuZWxfcG93ZXIoc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCkKPiAgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApKTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IGRwX3RvX2k5MTUoaW50ZWxfZHApOwo+ICAKPiAgCWxvY2tkZXBfYXNz ZXJ0X2hlbGQoJmRldl9wcml2LT5wcHNfbXV0ZXgpOwo+ICAKPiBAQCAtMTA3MSw3ICsxMDY0LDcg QEAgc3RhdGljIGJvb2wgZWRwX2hhdmVfcGFuZWxfcG93ZXIoc3RydWN0IGludGVsX2RwICppbnRl bF9kcCkKPiAgCj4gIHN0YXRpYyBib29sIGVkcF9oYXZlX3BhbmVsX3ZkZChzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOwo+ICsJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gZHBfdG9faTkxNShpbnRlbF9kcCk7Cj4gIAo+ICAJbG9ja2Rl cF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPnBwc19tdXRleCk7Cj4gIAo+IEBAIC0xMDg1LDcgKzEw NzgsNyBAQCBzdGF0aWMgYm9vbCBlZHBfaGF2ZV9wYW5lbF92ZGQoc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCkKPiAgc3RhdGljIHZvaWQKPiAgaW50ZWxfZHBfY2hlY2tfZWRwKHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHApCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKSk7Cj4gKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsKPiAgCj4gIAlpZiAo IWludGVsX2RwX2lzX2VkcChpbnRlbF9kcCkpCj4gIAkJcmV0dXJuOwo+IEBAIC0xMTAxLDcgKzEw OTQsNyBAQCBpbnRlbF9kcF9jaGVja19lZHAoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAg c3RhdGljIHVpbnQzMl90Cj4gIGludGVsX2RwX2F1eF93YWl0X2RvbmUoc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCkKPiAgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApKTsKPiArCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IGRwX3RvX2k5MTUoaW50ZWxfZHApOwo+ICAJaTkxNV9yZWdfdCBj aF9jdGwgPSBpbnRlbF9kcC0+YXV4X2NoX2N0bF9yZWcoaW50ZWxfZHApOwo+ICAJdWludDMyX3Qg c3RhdHVzOwo+ICAJYm9vbCBkb25lOwo+IEBAIC0xMTE4LDcgKzExMTEsNyBAQCBpbnRlbF9kcF9h dXhfd2FpdF9kb25lKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIAo+ICBzdGF0aWMgdWlu dDMyX3QgZzR4X2dldF9hdXhfY2xvY2tfZGl2aWRlcihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw LCBpbnQgaW5kZXgpCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKSk7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsKPiAgCj4gIAlpZiAoaW5k ZXgpCj4gIAkJcmV0dXJuIDA7Cj4gQEAgLTExMzIsNyArMTEyNSw3IEBAIHN0YXRpYyB1aW50MzJf dCBnNHhfZ2V0X2F1eF9jbG9ja19kaXZpZGVyKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGlu dCBpbmRleCkKPiAgCj4gIHN0YXRpYyB1aW50MzJfdCBpbGtfZ2V0X2F1eF9jbG9ja19kaXZpZGVy KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGludCBpbmRleCkKPiAgewo+IC0Jc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxf ZHApKTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRwX3RvX2k5MTUo aW50ZWxfZHApOwo+ICAKPiAgCWlmIChpbmRleCkKPiAgCQlyZXR1cm4gMDsKPiBAQCAtMTE1MCw3 ICsxMTQzLDcgQEAgc3RhdGljIHVpbnQzMl90IGlsa19nZXRfYXV4X2Nsb2NrX2RpdmlkZXIoc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50IGluZGV4KQo+ICAKPiAgc3RhdGljIHVpbnQzMl90 IGhzd19nZXRfYXV4X2Nsb2NrX2RpdmlkZXIoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50 IGluZGV4KQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZHBfdG9faTkxNShpbnRlbF9kcCk7Cj4gIAo+ICAJaWYgKGludGVsX2Rw LT5hdXhfY2ggIT0gQVVYX0NIX0EgJiYgSEFTX1BDSF9MUFRfSChkZXZfcHJpdikpIHsKPiAgCQkv KiBXb3JrYXJvdW5kIGZvciBub24tVUxUIEhTVyAqLwo+IEBAIC0xNTUyLDcgKzE1NDUsNyBAQCBp bnRlbF9hdXhfcG93ZXJfZG9tYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIAo+ICBz dGF0aWMgaTkxNV9yZWdfdCBnNHhfYXV4X2N0bF9yZWcoc3RydWN0IGludGVsX2RwICppbnRlbF9k cCkKPiAgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShp bnRlbF9kcF90b19kZXYoaW50ZWxfZHApKTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IGRwX3RvX2k5MTUoaW50ZWxfZHApOwo+ICAJZW51bSBhdXhfY2ggYXV4X2NoID0g aW50ZWxfZHAtPmF1eF9jaDsKPiAgCj4gIAlzd2l0Y2ggKGF1eF9jaCkgewo+IEBAIC0xNTY4LDcg KzE1NjEsNyBAQCBzdGF0aWMgaTkxNV9yZWdfdCBnNHhfYXV4X2N0bF9yZWcoc3RydWN0IGludGVs X2RwICppbnRlbF9kcCkKPiAgCj4gIHN0YXRpYyBpOTE1X3JlZ190IGc0eF9hdXhfZGF0YV9yZWco c3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50IGluZGV4KQo+ICB7Cj4gLQlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9k cCkpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZHBfdG9faTkxNShp bnRlbF9kcCk7Cj4gIAllbnVtIGF1eF9jaCBhdXhfY2ggPSBpbnRlbF9kcC0+YXV4X2NoOwo+ICAK PiAgCXN3aXRjaCAoYXV4X2NoKSB7Cj4gQEAgLTE1ODQsNyArMTU3Nyw3IEBAIHN0YXRpYyBpOTE1 X3JlZ190IGc0eF9hdXhfZGF0YV9yZWcoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50IGlu ZGV4KQo+ICAKPiAgc3RhdGljIGk5MTVfcmVnX3QgaWxrX2F1eF9jdGxfcmVnKHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHApCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKSk7Cj4gKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsKPiAgCWVudW0gYXV4 X2NoIGF1eF9jaCA9IGludGVsX2RwLT5hdXhfY2g7Cj4gIAo+ICAJc3dpdGNoIChhdXhfY2gpIHsK PiBAQCAtMTYwMiw3ICsxNTk1LDcgQEAgc3RhdGljIGk5MTVfcmVnX3QgaWxrX2F1eF9jdGxfcmVn KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIAo+ICBzdGF0aWMgaTkxNV9yZWdfdCBpbGtf YXV4X2RhdGFfcmVnKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGludCBpbmRleCkKPiAgewo+ IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9kcF90 b19kZXYoaW50ZWxfZHApKTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IGRwX3RvX2k5MTUoaW50ZWxfZHApOwo+ICAJZW51bSBhdXhfY2ggYXV4X2NoID0gaW50ZWxfZHAt PmF1eF9jaDsKPiAgCj4gIAlzd2l0Y2ggKGF1eF9jaCkgewo+IEBAIC0xNjIwLDcgKzE2MTMsNyBA QCBzdGF0aWMgaTkxNV9yZWdfdCBpbGtfYXV4X2RhdGFfcmVnKHN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHAsIGludCBpbmRleCkKPiAgCj4gIHN0YXRpYyBpOTE1X3JlZ190IHNrbF9hdXhfY3RsX3Jl ZyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOwo+ICsJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZHBfdG9faTkxNShpbnRlbF9kcCk7 Cj4gIAllbnVtIGF1eF9jaCBhdXhfY2ggPSBpbnRlbF9kcC0+YXV4X2NoOwo+ICAKPiAgCXN3aXRj aCAoYXV4X2NoKSB7Cj4gQEAgLTE2MzksNyArMTYzMiw3IEBAIHN0YXRpYyBpOTE1X3JlZ190IHNr bF9hdXhfY3RsX3JlZyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICAKPiAgc3RhdGljIGk5 MTVfcmVnX3Qgc2tsX2F1eF9kYXRhX3JlZyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBpbnQg aW5kZXgpCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKSk7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsKPiAgCWVudW0gYXV4X2NoIGF1eF9j aCA9IGludGVsX2RwLT5hdXhfY2g7Cj4gIAo+ICAJc3dpdGNoIChhdXhfY2gpIHsKPiBAQCAtMTY2 NSw3ICsxNjU4LDcgQEAgaW50ZWxfZHBfYXV4X2Zpbmkoc3RydWN0IGludGVsX2RwICppbnRlbF9k cCkKPiAgc3RhdGljIHZvaWQKPiAgaW50ZWxfZHBfYXV4X2luaXQoc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCkKPiAgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApKTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IGRwX3RvX2k5MTUoaW50ZWxfZHApOwo+ICAJc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIgPSAmZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApLT5iYXNlOwo+ICAKPiAg CWludGVsX2RwLT5hdXhfY2ggPSBpbnRlbF9hdXhfY2goaW50ZWxfZHApOwo+IEBAIC0xODMzLDcg KzE4MjYsNyBAQCBzdHJ1Y3QgbGlua19jb25maWdfbGltaXRzIHsKPiAgc3RhdGljIGludCBpbnRl bF9kcF9jb21wdXRlX2JwcChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ICAJCQkJc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOwo+ ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZHBfdG9faTkxNShpbnRlbF9k cCk7Cj4gIAlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3IgPSBpbnRlbF9k cC0+YXR0YWNoZWRfY29ubmVjdG9yOwo+ICAJaW50IGJwcCwgYnBjOwo+ICAKPiBAQCAtMjIwMSw3 ICsyMTk0LDcgQEAgc3RhdGljIHZvaWQgd2FpdF9wYW5lbF9zdGF0dXMoc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCwKPiAgCQkJCSAgICAgICB1MzIgbWFzaywKPiAgCQkJCSAgICAgICB1MzIgdmFs dWUpCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo aW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKSk7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsKPiAgCWk5MTVfcmVnX3QgcHBfc3RhdF9y ZWcsIHBwX2N0cmxfcmVnOwo+ICAKPiAgCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5w cHNfbXV0ZXgpOwo+IEBAIC0yMjc3LDcgKzIyNzAsNyBAQCBzdGF0aWMgdm9pZCBlZHBfd2FpdF9i YWNrbGlnaHRfb2ZmKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIAo+ICBzdGF0aWMgIHUz MiBpcm9ubGFrZV9nZXRfcHBfY29udHJvbChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICB7 Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2Rw X3RvX2RldihpbnRlbF9kcCkpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gZHBfdG9faTkxNShpbnRlbF9kcCk7Cj4gIAl1MzIgY29udHJvbDsKPiAgCj4gIAlsb2NrZGVw X2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+cHBzX211dGV4KTsKPiBAQCAtMjI5OCw3ICsyMjkxLDcg QEAgc3RhdGljICB1MzIgaXJvbmxha2VfZ2V0X3BwX2NvbnRyb2woc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCkKPiAgICovCj4gIHN0YXRpYyBib29sIGVkcF9wYW5lbF92ZGRfb24oc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCkKPiAgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApKTsKPiArCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRwX3RvX2k5MTUoaW50ZWxfZHApOwo+ICAJc3RydWN0 IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRl bF9kcCk7Cj4gIAl1MzIgcHA7Cj4gIAlpOTE1X3JlZ190IHBwX3N0YXRfcmVnLCBwcF9jdHJsX3Jl ZzsKPiBAQCAtMjM2OSw3ICsyMzYyLDcgQEAgdm9pZCBpbnRlbF9lZHBfcGFuZWxfdmRkX29uKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIAo+ICBzdGF0aWMgdm9pZCBlZHBfcGFuZWxfdmRk X29mZl9zeW5jKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIHsKPiAtCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2KGludGVsX2Rw KSk7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkcF90b19pOTE1KGlu dGVsX2RwKTsKPiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0K PiAgCQlkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7Cj4gIAl1MzIgcHA7Cj4gQEAgLTI0MzUsNyAr MjQyOCw3IEBAIHN0YXRpYyB2b2lkIGVkcF9wYW5lbF92ZGRfc2NoZWR1bGVfb2ZmKHN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHApCj4gICAqLwo+ICBzdGF0aWMgdm9pZCBlZHBfcGFuZWxfdmRkX29m ZihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBib29sIHN5bmMpCj4gIHsKPiAtCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2KGludGVs X2RwKSk7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkcF90b19pOTE1 KGludGVsX2RwKTsKPiAgCj4gIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+cHBzX211 dGV4KTsKPiAgCj4gQEAgLTI0NTUsNyArMjQ0OCw3IEBAIHN0YXRpYyB2b2lkIGVkcF9wYW5lbF92 ZGRfb2ZmKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGJvb2wgc3luYykKPiAgCj4gIHN0YXRp YyB2b2lkIGVkcF9wYW5lbF9vbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICB7Cj4gLQlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2RwX3RvX2Rl dihpbnRlbF9kcCkpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZHBf dG9faTkxNShpbnRlbF9kcCk7Cj4gIAl1MzIgcHA7Cj4gIAlpOTE1X3JlZ190IHBwX2N0cmxfcmVn Owo+ICAKPiBAQCAtMjUxMyw3ICsyNTA2LDcgQEAgdm9pZCBpbnRlbF9lZHBfcGFuZWxfb24oc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgCj4gIHN0YXRpYyB2b2lkIGVkcF9wYW5lbF9vZmYo c3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApKTsKPiArCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRwX3RvX2k5MTUoaW50ZWxfZHApOwo+ ICAJdTMyIHBwOwo+ICAJaTkxNV9yZWdfdCBwcF9jdHJsX3JlZzsKPiAgCj4gQEAgLTI1NjEsNyAr MjU1NCw3IEBAIHZvaWQgaW50ZWxfZWRwX3BhbmVsX29mZihzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwKQo+ICAvKiBFbmFibGUgYmFja2xpZ2h0IGluIHRoZSBwYW5lbCBwb3dlciBjb250cm9sLiAq Lwo+ICBzdGF0aWMgdm9pZCBfaW50ZWxfZWRwX2JhY2tsaWdodF9vbihzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOwo+ICsJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gZHBfdG9faTkxNShpbnRlbF9kcCk7Cj4gIAl1MzIgcHA7Cj4gIAlp OTE1X3JlZ190IHBwX2N0cmxfcmVnOwo+ICAKPiBAQCAtMjYwNCw3ICsyNTk3LDcgQEAgdm9pZCBp bnRlbF9lZHBfYmFja2xpZ2h0X29uKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlLAo+ICAvKiBEaXNhYmxlIGJhY2tsaWdodCBpbiB0aGUgcGFuZWwgcG93ZXIgY29udHJv bC4gKi8KPiAgc3RhdGljIHZvaWQgX2ludGVsX2VkcF9iYWNrbGlnaHRfb2ZmKHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHApCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKSk7Cj4gKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsKPiAgCXUzMiBwcDsK PiAgCWk5MTVfcmVnX3QgcHBfY3RybF9yZWc7Cj4gIAo+IEBAIC0zMDM1LDcgKzMwMjgsNyBAQCBf aW50ZWxfZHBfc2V0X2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiAgCQkJ IHVpbnQzMl90ICpEUCwKPiAgCQkJIHVpbnQ4X3QgZHBfdHJhaW5fcGF0KQo+ICB7Cj4gLQlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2RwX3RvX2Rldihp bnRlbF9kcCkpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZHBfdG9f aTkxNShpbnRlbF9kcCk7Cj4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdf cG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPiAgCWVudW0gcG9ydCBwb3J0ID0gaW50 ZWxfZGlnX3BvcnQtPmJhc2UucG9ydDsKPiAgCXVpbnQ4X3QgdHJhaW5fcGF0X21hc2sgPSBkcm1f ZHBfdHJhaW5pbmdfcGF0dGVybl9tYXNrKGludGVsX2RwLT5kcGNkKTsKPiBAQCAtMzExNyw3ICsz MTEwLDcgQEAgX2ludGVsX2RwX3NldF9saW5rX3RyYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHAsCj4gIHN0YXRpYyB2b2lkIGludGVsX2RwX2VuYWJsZV9wb3J0KHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHAsCj4gIAkJCQkgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRj X3N0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZHBfdG9faTkxNShpbnRlbF9kcCk7Cj4gIAo+ICAJLyogZW5hYmxlIHdp dGggcGF0dGVybiAxIChhcyBwZXIgc3BlYykgKi8KPiAgCj4gQEAgLTMzNzQsNyArMzM2Nyw3IEBA IGludGVsX2RwX2dldF9saW5rX3N0YXR1cyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCB1aW50 OF90IGxpbmtfc3RhdHVzW0RQX0xJTktfCj4gIHVpbnQ4X3QKPiAgaW50ZWxfZHBfdm9sdGFnZV9t YXgoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgewo+IC0Jc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApKTsKPiAr CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRwX3RvX2k5MTUoaW50ZWxfZHAp Owo+ICAJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPSAmZHBfdG9fZGlnX3BvcnQoaW50 ZWxfZHApLT5iYXNlOwo+ICAJZW51bSBwb3J0IHBvcnQgPSBlbmNvZGVyLT5wb3J0Owo+ICAKPiBA QCAtMzM5Myw3ICszMzg2LDcgQEAgaW50ZWxfZHBfdm9sdGFnZV9tYXgoc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCkKPiAgdWludDhfdAo+ICBpbnRlbF9kcF9wcmVfZW1waGFzaXNfbWF4KHN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHAsIHVpbnQ4X3Qgdm9sdGFnZV9zd2luZykKPiAgewo+IC0Jc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9kcF90b19kZXYo aW50ZWxfZHApKTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRwX3Rv X2k5MTUoaW50ZWxfZHApOwo+ICAJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPSAmZHBf dG9fZGlnX3BvcnQoaW50ZWxfZHApLT5iYXNlOwo+ICAJZW51bSBwb3J0IHBvcnQgPSBlbmNvZGVy LT5wb3J0Owo+ICAKPiBAQCAtMzcwNSw3ICszNjk4LDcgQEAgaXZiX2NwdV9lZHBfc2lnbmFsX2xl dmVscyh1aW50OF90IHRyYWluX3NldCkKPiAgdm9pZAo+ICBpbnRlbF9kcF9zZXRfc2lnbmFsX2xl dmVscyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOwo+ ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZHBfdG9faTkxNShpbnRlbF9k cCk7Cj4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGRwX3Rv X2RpZ19wb3J0KGludGVsX2RwKTsKPiAgCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGlnX3BvcnQt PmJhc2UucG9ydDsKPiAgCXVpbnQzMl90IHNpZ25hbF9sZXZlbHMsIG1hc2sgPSAwOwo+IEBAIC0z NzYyLDcgKzM3NTUsNyBAQCBpbnRlbF9kcF9wcm9ncmFtX2xpbmtfdHJhaW5pbmdfcGF0dGVybihz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ICAKPiAgdm9pZCBpbnRlbF9kcF9zZXRfaWRsZV9s aW5rX3RyYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIHsKPiAtCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2KGludGVsX2Rw KSk7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkcF90b19pOTE1KGlu dGVsX2RwKTsKPiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0g ZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwo+ICAJZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9kaWdf cG9ydC0+YmFzZS5wb3J0Owo+ICAJdWludDMyX3QgdmFsOwo+IEBAIC00NDU1LDcgKzQ0NDgsNyBA QCBzdGF0aWMgYm9vbCBpbnRlbF9kcF9ob3RwbHVnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAo+ICBzdGF0aWMgYm9vbAo+ICBpbnRlbF9kcF9zaG9ydF9wdWxzZShzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOwo+ICsJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gZHBfdG9faTkxNShpbnRlbF9kcCk7Cj4gIAl1OCBzaW5rX2ly cV92ZWN0b3IgPSAwOwo+ICAJdTggb2xkX3NpbmtfY291bnQgPSBpbnRlbF9kcC0+c2lua19jb3Vu dDsKPiAgCWJvb2wgcmV0Owo+IEBAIC01NTQ3LDcgKzU1NDAsNyBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IGludGVsX2hkY3Bfc2hpbSBpbnRlbF9kcF9oZGNwX3NoaW0gPSB7Cj4gIAo+ICBzdGF0aWMg dm9pZCBpbnRlbF9lZHBfcGFuZWxfdmRkX3Nhbml0aXplKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHApCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo aW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKSk7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsKPiAgCj4gIAlsb2NrZGVwX2Fzc2VydF9o ZWxkKCZkZXZfcHJpdi0+cHBzX211dGV4KTsKPiAgCj4gQEAgLTU1NjgsNyArNTU2MSw3IEBAIHN0 YXRpYyB2b2lkIGludGVsX2VkcF9wYW5lbF92ZGRfc2FuaXRpemUoc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCkKPiAgCj4gIHN0YXRpYyBlbnVtIHBpcGUgdmx2X2FjdGl2ZV9waXBlKHN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHApCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKSk7Cj4gKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsKPiAgCXN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0gJmRwX3RvX2RpZ19wb3J0KGludGVsX2RwKS0+YmFz ZTsKPiAgCWVudW0gcGlwZSBwaXBlOwo+ICAKPiBAQCAtNTYzNSw3ICs1NjI4LDcgQEAgZW51bSBp cnFyZXR1cm4KPiAgaW50ZWxfZHBfaHBkX3B1bHNlKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQg KmludGVsX2RpZ19wb3J0LCBib29sIGxvbmdfaHBkKQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwID0gJmludGVsX2RpZ19wb3J0LT5kcDsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKSk7Cj4gKwlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsK PiAgCWVudW0gaXJxcmV0dXJuIHJldCA9IElSUV9OT05FOwo+ICAKPiAgCWlmIChsb25nX2hwZCAm JiBpbnRlbF9kaWdfcG9ydC0+YmFzZS50eXBlID09IElOVEVMX09VVFBVVF9FRFApIHsKPiBAQCAt NTc1MSw3ICs1NzQ0LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHBfaW5pdF9wYW5lbF9wb3dlcl90 aW1lc3RhbXBzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIHN0YXRpYyB2b2lkCj4gIGlu dGVsX3Bwc19yZWFkb3V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIHN0cnVj dCBlZHBfcG93ZXJfc2VxICpzZXEpCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKSk7Cj4gKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsKPiAgCXUz MiBwcF9vbiwgcHBfb2ZmLCBwcF9kaXYgPSAwLCBwcF9jdGwgPSAwOwo+ICAJc3RydWN0IHBwc19y ZWdpc3RlcnMgcmVnczsKPiAgCj4gQEAgLTU4MTksNyArNTgxMiw3IEBAIGludGVsX3Bwc192ZXJp Znlfc3RhdGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgc3RhdGljIHZvaWQKPiAgaW50 ZWxfZHBfaW5pdF9wYW5lbF9wb3dlcl9zZXF1ZW5jZXIoc3RydWN0IGludGVsX2RwICppbnRlbF9k cCkKPiAgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShp bnRlbF9kcF90b19kZXYoaW50ZWxfZHApKTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IGRwX3RvX2k5MTUoaW50ZWxfZHApOwo+ICAJc3RydWN0IGVkcF9wb3dlcl9zZXEg Y3VyLCB2YnQsIHNwZWMsCj4gIAkJKmZpbmFsID0gJmludGVsX2RwLT5wcHNfZGVsYXlzOwo+ICAK PiBAQCAtNTkxMiw3ICs1OTA1LDcgQEAgc3RhdGljIHZvaWQKPiAgaW50ZWxfZHBfaW5pdF9wYW5l bF9wb3dlcl9zZXF1ZW5jZXJfcmVnaXN0ZXJzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4g IAkJCQkJICAgICAgYm9vbCBmb3JjZV9kaXNhYmxlX3ZkZCkKPiAgewo+IC0Jc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxfZHAp KTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRwX3RvX2k5MTUoaW50 ZWxfZHApOwo+ICAJdTMyIHBwX29uLCBwcF9vZmYsIHBwX2RpdiwgcG9ydF9zZWwgPSAwOwo+ICAJ aW50IGRpdiA9IGRldl9wcml2LT5yYXdjbGtfZnJlcSAvIDEwMDA7Cj4gIAlzdHJ1Y3QgcHBzX3Jl Z2lzdGVycyByZWdzOwo+IEBAIC02MDA4LDcgKzYwMDEsNyBAQCBpbnRlbF9kcF9pbml0X3BhbmVs X3Bvd2VyX3NlcXVlbmNlcl9yZWdpc3RlcnMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiAg Cj4gIHN0YXRpYyB2b2lkIGludGVsX2RwX3Bwc19pbml0KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHApCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo aW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKSk7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsKPiAgCj4gIAlpZiAoSVNfVkFMTEVZVklF VyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpIHsKPiAgCQl2bHZfaW5pdGlh bF9wb3dlcl9zZXF1ZW5jZXJfc2V0dXAoaW50ZWxfZHApOwo+IEBAIC02MTI1LDcgKzYxMTgsNyBA QCBzdGF0aWMgdm9pZCBpbnRlbF9kcF9zZXRfZHJyc19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCj4gIHZvaWQgaW50ZWxfZWRwX2RycnNfZW5hYmxlKHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHAsCj4gIAkJCSAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOwo+ICsJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gZHBfdG9faTkxNShpbnRlbF9kcCk7Cj4gIAo+ICAJaWYgKCFjcnRj X3N0YXRlLT5oYXNfZHJycykgewo+ICAJCURSTV9ERUJVR19LTVMoIlBhbmVsIGRvZXNuJ3Qgc3Vw cG9ydCBEUlJTXG4iKTsKPiBAQCAtNjE2MCw3ICs2MTUzLDcgQEAgdm9pZCBpbnRlbF9lZHBfZHJy c19lbmFibGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiAgdm9pZCBpbnRlbF9lZHBfZHJy c19kaXNhYmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gIAkJCSAgICBjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUpCj4gIHsKPiAtCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2KGludGVsX2Rw KSk7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkcF90b19pOTE1KGlu dGVsX2RwKTsKPiAgCj4gIAlpZiAoIW9sZF9jcnRjX3N0YXRlLT5oYXNfZHJycykKPiAgCQlyZXR1 cm47Cj4gQEAgLTYzOTIsOCArNjM4NSw4IEBAIGludGVsX2RwX2RycnNfaW5pdChzdHJ1Y3QgaW50 ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCj4gIHN0YXRpYyBib29sIGludGVsX2VkcF9pbml0X2Nv bm5lY3RvcihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ICAJCQkJICAgICBzdHJ1Y3QgaW50 ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3IpCj4gIHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApOwo+IC0Jc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZHBfdG9faTkxNShpbnRlbF9kcCk7Cj4gKwlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gJmRldl9wcml2LT5kcm07Cj4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yID0gJmludGVsX2Nvbm5lY3Rvci0+YmFzZTsKPiAgCXN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICpmaXhlZF9tb2RlID0gTlVMTDsKPiAgCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpkb3duY2xv Y2tfbW9kZSA9IE5VTEw7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRleCBlYTc1OGFh NGRlZTMuLjBkNGU1OWVjNTRhYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAg LTEzMTUsNiArMTMxNSwxMiBAQCBkcF90b19sc3Bjb24oc3RydWN0IGludGVsX2RwICppbnRlbF9k cCkKPiAgCXJldHVybiAmZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApLT5sc3Bjb247Cj4gIH0KPiAg Cj4gK3N0YXRpYyBpbmxpbmUgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKgo+ICtkcF90b19pOTE1 KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gK3sKPiArCXJldHVybiB0b19pOTE1KGRwX3Rv X2RpZ19wb3J0KGludGVsX2RwKS0+YmFzZS5iYXNlLmRldik7Cj4gK30KPiArCj4gIHN0YXRpYyBp bmxpbmUgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqCj4gIGhkbWlfdG9fZGlnX3BvcnQoc3Ry dWN0IGludGVsX2hkbWkgKmludGVsX2hkbWkpCj4gIHsKPiAtLSAKPiAyLjE3LjEKPiAKPiBfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBt YWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApWaWxs ZSBTeXJqw6Rsw6QKSW50ZWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==