From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH] drm/i915: Rename HAS_GMCH Date: Tue, 5 Feb 2019 09:49:03 -0800 Message-ID: <20190205174903.GE3250@intel.com> References: <20190204222538.15842-1-rodrigo.vivi@intel.com> <2af1e6fc4cfa1d9f64026a4128a0225e4f3b541d.camel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 94F406E78A for ; Tue, 5 Feb 2019 17:49:02 +0000 (UTC) Content-Disposition: inline In-Reply-To: <2af1e6fc4cfa1d9f64026a4128a0225e4f3b541d.camel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Souza, Jose" Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBGZWIgMDUsIDIwMTkgYXQgMTI6MTU6NTNBTSArMDAwMCwgU291emEsIEpvc2Ugd3Jv dGU6Cj4gT24gTW9uLCAyMDE5LTAyLTA0IGF0IDE0OjI1IC0wODAwLCBSb2RyaWdvIFZpdmkgd3Jv dGU6Cj4gPiBGaXJzdCBvZiBhbGwgR01DSCBjYW4gYmUgY29uc2lkZXJlZCBhIGZlYXR1cmUgYnkg aXRzZWxmCj4gPiBzaW5jZSBpdCBpcyBhIGNoaXAgcHJlc2VudCBpbiBzb21lIHBsYXRmb3JtcyB0 aGF0IGNvbm5lY3RzCj4gPiB0aGUgSUEgcHJvY2Vzc29yIHRvIG1lbW9yeSBhbmQgb3RoZXIgY29t cG9uZW50cyBpbiBQQy4KPiA+IAo+ID4gQWxzbyB3aXRoIHRoZSBpbnRyb2R1Y3Rpb24gb2YgZGlz cGxheSBibG9jayBhdCBkZXZpY2UgaW5mbywKPiA+IHdlIGdvdCBhIHJlZHVuZGFudCBkZWZpbml0 aW9uOgo+ID4gCj4gPiAuZGlzcGxheS5oYXNfZ21jaF9kaXNwbGF5ID0gMSwKPiA+IAo+ID4gU28s IGxldCdzIGNsZWFuIHVwIHRoaW5ncyBhIGJpdCBhbmQgdXNlIHRoZSBzdGFuZGFyZGl6ZWQKPiA+ IHdheSBvZiBoYXNfZmVhdHVyZSBvbiBkaXNwbGF5cyBzaWRlLgo+ID4gCj4gPiBObyBmdW5jdGlv bmFsIGNoYW5nZSBhbmQgbm8gbWFudWFsIGludGVyYWN0aW9uIHRvIGdlbmVyYXRlCj4gPiB0aGlz IHBhdGNoLgo+ID4gCj4gPiBJdCBpcyBvbmx5Ogo+ID4gCj4gPiBzZWQgLXNpIC1lICdzL2hhc19n bWNoX2Rpc3BsYXkvaGFzX2dtY2gvZycgXAo+ID4gICAgIAktZSAncy9IQVNfR01DSF9ESVNQTEFZ L0hBU19HTUNIL2cnIGRyaXZlcnMvZ3B1L2RybS9pOTE1Lyp7YyxofQo+IAo+IFJldmlld2VkLWJ5 OiBKb3PDqSBSb2JlcnRvIGRlIFNvdXphIDxqb3NlLnNvdXphQGludGVsLmNvbT4KClB1c2hlZCwg dGhhbmtzCgo+IAo+ID4gCj4gPiBDYzogSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSA8am9zZS5zb3V6 YUBpbnRlbC5jb20+Cj4gPiBDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4KPiA+IFNpZ25lZC1vZmYtYnk6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZp QGludGVsLmNvbT4KPiA+IC0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdm cy5jICAgICAgICB8ICA0ICsrLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o ICAgICAgICAgICAgfCAgNCArKy0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wY2ku YyAgICAgICAgICAgIHwgMTAgKysrKy0tLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3N1c3BlbmQuYyAgICAgICAgfCAgNCArKy0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfY29sb3IuYyAgICAgICAgIHwgIDYgKystLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kZXZpY2VfaW5mby5oICAgfCAgMiArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYyAgICAgICB8IDI4ICsrKysrKysrKysrLS0tLS0tLS0tCj4gPiAtLQo+ID4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAgICAgICAgICB8IDEyICsrKysrLS0t LS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9maWZvX3VuZGVycnVuLmMgfCAgNiAr Ky0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyAgICAgICAgICB8ICA2 ICsrLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaG90cGx1Zy5jICAgICAgIHwg IDIgKy0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9pMmMuYyAgICAgICAgICAgfCAg MiArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L3Zsdl9kc2kuYyAgICAgICAgICAgICB8ICA0 ICsrLS0KPiA+ICAxMyBmaWxlcyBjaGFuZ2VkLCA0NSBpbnNlcnRpb25zKCspLCA0NSBkZWxldGlv bnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVi dWdmcy5jCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gPiBpbmRl eCBmYTJjMjI2ZmM3NzkuLmVmZjJlN2Y2NzYyYyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2RlYnVnZnMuYwo+ID4gQEAgLTM3MjgsNyArMzcyOCw3IEBAIHN0YXRpYyBpbnQgc3ByX3dt X2xhdGVuY3lfb3BlbihzdHJ1Y3QgaW5vZGUKPiA+ICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUp Cj4gPiAgewo+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBpbm9kZS0+ aV9wcml2YXRlOwo+ID4gIAo+ID4gLQlpZiAoSEFTX0dNQ0hfRElTUExBWShkZXZfcHJpdikpCj4g PiArCWlmIChIQVNfR01DSChkZXZfcHJpdikpCj4gPiAgCQlyZXR1cm4gLUVOT0RFVjsKPiA+ICAK PiA+ICAJcmV0dXJuIHNpbmdsZV9vcGVuKGZpbGUsIHNwcl93bV9sYXRlbmN5X3Nob3csIGRldl9w cml2KTsKPiA+IEBAIC0zNzM4LDcgKzM3MzgsNyBAQCBzdGF0aWMgaW50IGN1cl93bV9sYXRlbmN5 X29wZW4oc3RydWN0IGlub2RlCj4gPiAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQo+ID4gIHsK PiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gaW5vZGUtPmlfcHJpdmF0 ZTsKPiA+ICAKPiA+IC0JaWYgKEhBU19HTUNIX0RJU1BMQVkoZGV2X3ByaXYpKQo+ID4gKwlpZiAo SEFTX0dNQ0goZGV2X3ByaXYpKQo+ID4gIAkJcmV0dXJuIC1FTk9ERVY7Cj4gPiAgCj4gPiAgCXJl dHVybiBzaW5nbGVfb3BlbihmaWxlLCBjdXJfd21fbGF0ZW5jeV9zaG93LCBkZXZfcHJpdik7Cj4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiBpbmRleCA1MzRlNTJlM2E4ZGEuLjlmNjk1 NDUxMjU0NyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+IEBAIC0yNDkwLDcg KzI0OTAsNyBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludAo+ID4gaTkxNV9zZ19zZWdtZW50 X3NpemUodm9pZCkKPiA+ICAKPiA+ICAjZGVmaW5lIEhBU19GV19CTEMoZGV2X3ByaXYpIAkoSU5U RUxfR0VOKGRldl9wcml2KSA+IDIpCj4gPiAgI2RlZmluZSBIQVNfRkJDKGRldl9wcml2KQkoSU5U RUxfSU5GTyhkZXZfcHJpdiktPmRpc3BsYXkuaGFzX2ZiYykKPiA+IC0jZGVmaW5lIEhBU19DVVJf RkJDKGRldl9wcml2KQkoIUhBU19HTUNIX0RJU1BMQVkoZGV2X3ByaXYpICYmCj4gPiBJTlRFTF9H RU4oZGV2X3ByaXYpID49IDcpCj4gPiArI2RlZmluZSBIQVNfQ1VSX0ZCQyhkZXZfcHJpdikJKCFI QVNfR01DSChkZXZfcHJpdikgJiYKPiA+IElOVEVMX0dFTihkZXZfcHJpdikgPj0gNykKPiA+ICAK PiA+ICAjZGVmaW5lIEhBU19JUFMoZGV2X3ByaXYpCShJU19IU1dfVUxUKGRldl9wcml2KSB8fAo+ ID4gSVNfQlJPQURXRUxMKGRldl9wcml2KSkKPiA+ICAKPiA+IEBAIC0yNTcwLDcgKzI1NzAsNyBA QCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludAo+ID4gaTkxNV9zZ19zZWdtZW50X3NpemUodm9p ZCkKPiA+ICAjZGVmaW5lIEhBU19QQ0hfTk9QKGRldl9wcml2KSAoSU5URUxfUENIX1RZUEUoZGV2 X3ByaXYpID09IFBDSF9OT1ApCj4gPiAgI2RlZmluZSBIQVNfUENIX1NQTElUKGRldl9wcml2KSAo SU5URUxfUENIX1RZUEUoZGV2X3ByaXYpICE9Cj4gPiBQQ0hfTk9ORSkKPiA+ICAKPiA+IC0jZGVm aW5lIEhBU19HTUNIX0RJU1BMQVkoZGV2X3ByaXYpIChJTlRFTF9JTkZPKGRldl9wcml2KS0KPiA+ ID5kaXNwbGF5Lmhhc19nbWNoX2Rpc3BsYXkpCj4gPiArI2RlZmluZSBIQVNfR01DSChkZXZfcHJp dikgKElOVEVMX0lORk8oZGV2X3ByaXYpLT5kaXNwbGF5Lmhhc19nbWNoKQo+ID4gIAo+ID4gICNk ZWZpbmUgSEFTX0xTUENPTihkZXZfcHJpdikgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkKPiA+ ICAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jCj4gPiBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMKPiA+IGluZGV4IDVkMDU1NzJjOWZmNC4u Y2Q1YTc3OTI4OWMyIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9w Y2kuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wY2kuYwo+ID4gQEAgLTg5 LDcgKzg5LDcgQEAKPiA+ICAJLm51bV9waXBlcyA9IDEsIFwKPiA+ICAJLmRpc3BsYXkuaGFzX292 ZXJsYXkgPSAxLCBcCj4gPiAgCS5kaXNwbGF5Lm92ZXJsYXlfbmVlZHNfcGh5c2ljYWwgPSAxLCBc Cj4gPiAtCS5kaXNwbGF5Lmhhc19nbWNoX2Rpc3BsYXkgPSAxLCBcCj4gPiArCS5kaXNwbGF5Lmhh c19nbWNoID0gMSwgXAo+ID4gIAkuZ3B1X3Jlc2V0X2Nsb2JiZXJzX2Rpc3BsYXkgPSB0cnVlLCBc Cj4gPiAgCS5od3NfbmVlZHNfcGh5c2ljYWwgPSAxLCBcCj4gPiAgCS51bmZlbmNlZF9uZWVkc19h bGlnbm1lbnQgPSAxLCBcCj4gPiBAQCAtMTMwLDcgKzEzMCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgaW50ZWxfZGV2aWNlX2luZm8KPiA+IGludGVsX2k4NjVnX2luZm8gPSB7Cj4gPiAgI2RlZmlu ZSBHRU4zX0ZFQVRVUkVTIFwKPiA+ICAJR0VOKDMpLCBcCj4gPiAgCS5udW1fcGlwZXMgPSAyLCBc Cj4gPiAtCS5kaXNwbGF5Lmhhc19nbWNoX2Rpc3BsYXkgPSAxLCBcCj4gPiArCS5kaXNwbGF5Lmhh c19nbWNoID0gMSwgXAo+ID4gIAkuZ3B1X3Jlc2V0X2Nsb2JiZXJzX2Rpc3BsYXkgPSB0cnVlLCBc Cj4gPiAgCS5yaW5nX21hc2sgPSBSRU5ERVJfUklORywgXAo+ID4gIAkuaGFzX3Nub29wID0gdHJ1 ZSwgXAo+ID4gQEAgLTIwNyw3ICsyMDcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2Rl dmljZV9pbmZvCj4gPiBpbnRlbF9waW5ldmlld19pbmZvID0gewo+ID4gIAlHRU4oNCksIFwKPiA+ ICAJLm51bV9waXBlcyA9IDIsIFwKPiA+ICAJLmRpc3BsYXkuaGFzX2hvdHBsdWcgPSAxLCBcCj4g PiAtCS5kaXNwbGF5Lmhhc19nbWNoX2Rpc3BsYXkgPSAxLCBcCj4gPiArCS5kaXNwbGF5Lmhhc19n bWNoID0gMSwgXAo+ID4gIAkuZ3B1X3Jlc2V0X2Nsb2JiZXJzX2Rpc3BsYXkgPSB0cnVlLCBcCj4g PiAgCS5yaW5nX21hc2sgPSBSRU5ERVJfUklORywgXAo+ID4gIAkuaGFzX3Nub29wID0gdHJ1ZSwg XAo+ID4gQEAgLTM4Myw3ICszODMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2Rldmlj ZV9pbmZvCj4gPiBpbnRlbF92YWxsZXl2aWV3X2luZm8gPSB7Cj4gPiAgCS5udW1fcGlwZXMgPSAy LAo+ID4gIAkuaGFzX3J1bnRpbWVfcG0gPSAxLAo+ID4gIAkuaGFzX3JjNiA9IDEsCj4gPiAtCS5k aXNwbGF5Lmhhc19nbWNoX2Rpc3BsYXkgPSAxLAo+ID4gKwkuZGlzcGxheS5oYXNfZ21jaCA9IDEs Cj4gPiAgCS5kaXNwbGF5Lmhhc19ob3RwbHVnID0gMSwKPiA+ICAJLnBwZ3R0ID0gSU5URUxfUFBH VFRfRlVMTCwKPiA+ICAJLmhhc19zbm9vcCA9IHRydWUsCj4gPiBAQCAtNDc1LDcgKzQ3NSw3IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8KPiA+IGludGVsX2NoZXJyeXZp ZXdfaW5mbyA9IHsKPiA+ICAJLmhhc19ydW50aW1lX3BtID0gMSwKPiA+ICAJLmhhc19yYzYgPSAx LAo+ID4gIAkuaGFzX2xvZ2ljYWxfcmluZ19jb250ZXh0cyA9IDEsCj4gPiAtCS5kaXNwbGF5Lmhh c19nbWNoX2Rpc3BsYXkgPSAxLAo+ID4gKwkuZGlzcGxheS5oYXNfZ21jaCA9IDEsCj4gPiAgCS5w cGd0dCA9IElOVEVMX1BQR1RUX0ZVTEwsCj4gPiAgCS5oYXNfcmVzZXRfZW5naW5lID0gMSwKPiA+ ICAJLmhhc19zbm9vcCA9IHRydWUsCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9zdXNwZW5kLmMKPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zdXNwZW5k LmMKPiA+IGluZGV4IGYxOGFmYTJiYWM4ZC4uZDJmMmE5YzJmYWJkIDEwMDY0NAo+ID4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zdXNwZW5kLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfc3VzcGVuZC5jCj4gPiBAQCAtODYsNyArODYsNyBAQCBpbnQgaTkxNV9z YXZlX3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlCj4gPiAqZGV2X3ByaXYpCj4gPiAgCX0g ZWxzZSBpZiAoSVNfR0VOKGRldl9wcml2LCAyKSkgewo+ID4gIAkJZm9yIChpID0gMDsgaSA8IDc7 IGkrKykKPiA+ICAJCQlkZXZfcHJpdi0+cmVnZmlsZS5zYXZlU1dGMVtpXSA9Cj4gPiBJOTE1X1JF QUQoU1dGMShpKSk7Cj4gPiAtCX0gZWxzZSBpZiAoSEFTX0dNQ0hfRElTUExBWShkZXZfcHJpdikp IHsKPiA+ICsJfSBlbHNlIGlmIChIQVNfR01DSChkZXZfcHJpdikpIHsKPiA+ICAJCWZvciAoaSA9 IDA7IGkgPCAxNjsgaSsrKSB7Cj4gPiAgCQkJZGV2X3ByaXYtPnJlZ2ZpbGUuc2F2ZVNXRjBbaV0g PQo+ID4gSTkxNV9SRUFEKFNXRjAoaSkpOwo+ID4gIAkJCWRldl9wcml2LT5yZWdmaWxlLnNhdmVT V0YxW2ldID0KPiA+IEk5MTVfUkVBRChTV0YxKGkpKTsKPiA+IEBAIC0xMzEsNyArMTMxLDcgQEAg aW50IGk5MTVfcmVzdG9yZV9zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQo+ID4gKmRldl9w cml2KQo+ID4gIAl9IGVsc2UgaWYgKElTX0dFTihkZXZfcHJpdiwgMikpIHsKPiA+ICAJCWZvciAo aSA9IDA7IGkgPCA3OyBpKyspCj4gPiAgCQkJSTkxNV9XUklURShTV0YxKGkpLCBkZXZfcHJpdi0K PiA+ID5yZWdmaWxlLnNhdmVTV0YxW2ldKTsKPiA+IC0JfSBlbHNlIGlmIChIQVNfR01DSF9ESVNQ TEFZKGRldl9wcml2KSkgewo+ID4gKwl9IGVsc2UgaWYgKEhBU19HTUNIKGRldl9wcml2KSkgewo+ ID4gIAkJZm9yIChpID0gMDsgaSA8IDE2OyBpKyspIHsKPiA+ICAJCQlJOTE1X1dSSVRFKFNXRjAo aSksIGRldl9wcml2LQo+ID4gPnJlZ2ZpbGUuc2F2ZVNXRjBbaV0pOwo+ID4gIAkJCUk5MTVfV1JJ VEUoU1dGMShpKSwgZGV2X3ByaXYtCj4gPiA+cmVnZmlsZS5zYXZlU1dGMVtpXSk7Cj4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYwo+ID4gYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jCj4gPiBpbmRleCA0YjAwNDRjZGNmMWEuLjMxZmE1 OTliMGQ2MSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9y LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMKPiA+IEBAIC0z MjEsNyArMzIxLDcgQEAgc3RhdGljIHZvaWQgaTl4eF9sb2FkX2x1dHNfaW50ZXJuYWwoc3RydWN0 Cj4gPiBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ID4gIAllbnVtIHBpcGUgcGlwZSA9 IGNydGMtPnBpcGU7Cj4gPiAgCWludCBpOwo+ID4gIAo+ID4gLQlpZiAoSEFTX0dNQ0hfRElTUExB WShkZXZfcHJpdikpIHsKPiA+ICsJaWYgKEhBU19HTUNIKGRldl9wcml2KSkgewo+ID4gIAkJaWYg KGludGVsX2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0RTSSkpCj4gPiAg CQkJYXNzZXJ0X2RzaV9wbGxfZW5hYmxlZChkZXZfcHJpdik7Cj4gPiAgCQllbHNlCj4gPiBAQCAt MzM2LDcgKzMzNiw3IEBAIHN0YXRpYyB2b2lkIGk5eHhfbG9hZF9sdXRzX2ludGVybmFsKHN0cnVj dAo+ID4gaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiA+ICAJCQkJKGRybV9jb2xvcl9s dXRfZXh0cmFjdChsdXRbaV0uZ3JlZW4sIDgpCj4gPiA8PCA4KSB8Cj4gPiAgCQkJCWRybV9jb2xv cl9sdXRfZXh0cmFjdChsdXRbaV0uYmx1ZSwgOCk7Cj4gPiAgCj4gPiAtCQkJaWYgKEhBU19HTUNI X0RJU1BMQVkoZGV2X3ByaXYpKQo+ID4gKwkJCWlmIChIQVNfR01DSChkZXZfcHJpdikpCj4gPiAg CQkJCUk5MTVfV1JJVEUoUEFMRVRURShwaXBlLCBpKSwgd29yZCk7Cj4gPiAgCQkJZWxzZQo+ID4g IAkJCQlJOTE1X1dSSVRFKExHQ19QQUxFVFRFKHBpcGUsIGkpLCB3b3JkKTsKPiA+IEBAIC0zNDUs NyArMzQ1LDcgQEAgc3RhdGljIHZvaWQgaTl4eF9sb2FkX2x1dHNfaW50ZXJuYWwoc3RydWN0Cj4g PiBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ID4gIAkJZm9yIChpID0gMDsgaSA8IDI1 NjsgaSsrKSB7Cj4gPiAgCQkJdTMyIHdvcmQgPSAoaSA8PCAxNikgfCAoaSA8PCA4KSB8IGk7Cj4g PiAgCj4gPiAtCQkJaWYgKEhBU19HTUNIX0RJU1BMQVkoZGV2X3ByaXYpKQo+ID4gKwkJCWlmIChI QVNfR01DSChkZXZfcHJpdikpCj4gPiAgCQkJCUk5MTVfV1JJVEUoUEFMRVRURShwaXBlLCBpKSwg d29yZCk7Cj4gPiAgCQkJZWxzZQo+ID4gIAkJCQlJOTE1X1dSSVRFKExHQ19QQUxFVFRFKHBpcGUs IGkpLCB3b3JkKTsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k ZXZpY2VfaW5mby5oCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZv LmgKPiA+IGluZGV4IDdiZjA5Y2VmNTkxYS4uZThiODY2MWRmNzQ2IDEwMDY0NAo+ID4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uaAo+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uaAo+ID4gQEAgLTExNSw3ICsxMTUsNyBA QCBlbnVtIGludGVsX3BwZ3R0IHsKPiA+ICAJZnVuYyhoYXNfZGRpKTsgXAo+ID4gIAlmdW5jKGhh c19kcF9tc3QpOyBcCj4gPiAgCWZ1bmMoaGFzX2ZiYyk7IFwKPiA+IC0JZnVuYyhoYXNfZ21jaF9k aXNwbGF5KTsgXAo+ID4gKwlmdW5jKGhhc19nbWNoKTsgXAo+ID4gIAlmdW5jKGhhc19ob3RwbHVn KTsgXAo+ID4gIAlmdW5jKGhhc19pcGMpOyBcCj4gPiAgCWZ1bmMoaGFzX292ZXJsYXkpOyBcCj4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gaW5kZXggZGY3YTdhMzEw ZjJmLi42NjM5ODc5MTdmYmQgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYwo+ID4gQEAgLTE4MDUsNyArMTgwNSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2VuYWJsZV9w aXBlKGNvbnN0IHN0cnVjdAo+ID4gaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUpCj4g PiAgCSAqIGEgcGxhbmUuICBPbiBJTEsrIHRoZSBwaXBlIFBMTHMgYXJlIGludGVncmF0ZWQsIHNv IHdlIGRvbid0Cj4gPiAgCSAqIG5lZWQgdGhlIGNoZWNrLgo+ID4gIAkgKi8KPiA+IC0JaWYgKEhB U19HTUNIX0RJU1BMQVkoZGV2X3ByaXYpKSB7Cj4gPiArCWlmIChIQVNfR01DSChkZXZfcHJpdikp IHsKPiA+ICAJCWlmIChpbnRlbF9jcnRjX2hhc190eXBlKG5ld19jcnRjX3N0YXRlLAo+ID4gSU5U RUxfT1VUUFVUX0RTSSkpCj4gPiAgCQkJYXNzZXJ0X2RzaV9wbGxfZW5hYmxlZChkZXZfcHJpdik7 Cj4gPiAgCQllbHNlCj4gPiBAQCAtMjA5NCw3ICsyMDk0LDcgQEAgaW50ZWxfcGluX2FuZF9mZW5j ZV9mYl9vYmooc3RydWN0Cj4gPiBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ID4gIAkgKiBjb21wbGlj YXRlZCB0aGFuIHRoaXMuIEZvciBleGFtcGxlLCBDaGVycnl2aWV3IGFwcGVhcnMgcXVpdGUKPiA+ ICAJICogaGFwcHkgdG8gc2Nhbm91dCBmcm9tIGFueXdoZXJlIHdpdGhpbiBpdHMgZ2xvYmFsIGFw ZXJ0dXJlLgo+ID4gIAkgKi8KPiA+IC0JaWYgKEhBU19HTUNIX0RJU1BMQVkoZGV2X3ByaXYpKQo+ ID4gKwlpZiAoSEFTX0dNQ0goZGV2X3ByaXYpKQo+ID4gIAkJcGluY3RsIHw9IFBJTl9NQVBQQUJM RTsKPiA+ICAKPiA+ICAJdm1hID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl90b19kaXNwbGF5X3BsYW5l KG9iaiwKPiA+IEBAIC0zMTk1LDcgKzMxOTUsNyBAQCBpOXh4X3BsYW5lX21heF9zdHJpZGUoc3Ry dWN0IGludGVsX3BsYW5lCj4gPiAqcGxhbmUsCj4gPiAgewo+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHBsYW5lLT5iYXNlLmRldik7Cj4gPiAgCj4gPiAt CWlmICghSEFTX0dNQ0hfRElTUExBWShkZXZfcHJpdikpIHsKPiA+ICsJaWYgKCFIQVNfR01DSChk ZXZfcHJpdikpIHsKPiA+ICAJCXJldHVybiAzMioxMDI0Owo+ID4gIAl9IGVsc2UgaWYgKElOVEVM X0dFTihkZXZfcHJpdikgPj0gNCkgewo+ID4gIAkJaWYgKG1vZGlmaWVyID09IEk5MTVfRk9STUFU X01PRF9YX1RJTEVEKQo+ID4gQEAgLTM3NzEsNyArMzc3MSw3IEBAIF9faW50ZWxfZGlzcGxheV9y ZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ICAJfQo+ID4gIAo+ID4gIAkvKiBpZ25v cmUgYW55IHJlc2V0IHZhbHVlcy9CSU9TIGxlZnRvdmVycyBpbiB0aGUgV00gcmVnaXN0ZXJzCj4g PiAqLwo+ID4gLQlpZiAoIUhBU19HTUNIX0RJU1BMQVkodG9faTkxNShkZXYpKSkKPiA+ICsJaWYg KCFIQVNfR01DSCh0b19pOTE1KGRldikpKQo+ID4gIAkJdG9faW50ZWxfYXRvbWljX3N0YXRlKHN0 YXRlKS0+c2tpcF9pbnRlcm1lZGlhdGVfd20gPQo+ID4gdHJ1ZTsKPiA+ICAKPiA+ICAJcmV0ID0g ZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X2R1cGxpY2F0ZWRfc3RhdGUoc3RhdGUsIGN0eCk7Cj4g PiBAQCAtNTI5NCw3ICs1Mjk0LDcgQEAgaW50ZWxfcHJlX2Rpc2FibGVfcHJpbWFyeV9ub2F0b21p YyhzdHJ1Y3QKPiA+IGRybV9jcnRjICpjcnRjKQo+ID4gIAkgKiBldmVudCB3aGljaCBpcyBhZnRl ciB0aGUgdmJsYW5rIHN0YXJ0IGV2ZW50LCBzbyB3ZSBuZWVkIHRvCj4gPiBoYXZlIGEKPiA+ICAJ ICogd2FpdC1mb3ItdmJsYW5rIGJldHdlZW4gZGlzYWJsaW5nIHRoZSBwbGFuZSBhbmQgdGhlIHBp cGUuCj4gPiAgCSAqLwo+ID4gLQlpZiAoSEFTX0dNQ0hfRElTUExBWShkZXZfcHJpdikgJiYKPiA+ ICsJaWYgKEhBU19HTUNIKGRldl9wcml2KSAmJgo+ID4gIAkgICAgaW50ZWxfc2V0X21lbW9yeV9j eHNyKGRldl9wcml2LCBmYWxzZSkpCj4gPiAgCQlpbnRlbF93YWl0X2Zvcl92YmxhbmsoZGV2X3By aXYsIHBpcGUpOwo+ID4gIH0KPiA+IEBAIC01NDMxLDcgKzU0MzEsNyBAQCBzdGF0aWMgdm9pZCBp bnRlbF9wcmVfcGxhbmVfdXBkYXRlKHN0cnVjdAo+ID4gaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2Ny dGNfc3RhdGUsCj4gPiAgCSAqIGV2ZW50IHdoaWNoIGlzIGFmdGVyIHRoZSB2Ymxhbmsgc3RhcnQg ZXZlbnQsIHNvIHdlIG5lZWQgdG8KPiA+IGhhdmUgYQo+ID4gIAkgKiB3YWl0LWZvci12Ymxhbmsg YmV0d2VlbiBkaXNhYmxpbmcgdGhlIHBsYW5lIGFuZCB0aGUgcGlwZS4KPiA+ICAJICovCj4gPiAt CWlmIChIQVNfR01DSF9ESVNQTEFZKGRldl9wcml2KSAmJiBvbGRfY3J0Y19zdGF0ZS0+YmFzZS5h Y3RpdmUKPiA+ICYmCj4gPiArCWlmIChIQVNfR01DSChkZXZfcHJpdikgJiYgb2xkX2NydGNfc3Rh dGUtPmJhc2UuYWN0aXZlICYmCj4gPiAgCSAgICBwaXBlX2NvbmZpZy0+ZGlzYWJsZV9jeHNyICYm Cj4gPiBpbnRlbF9zZXRfbWVtb3J5X2N4c3IoZGV2X3ByaXYsIGZhbHNlKSkKPiA+ICAJCWludGVs X3dhaXRfZm9yX3ZibGFuayhkZXZfcHJpdiwgY3J0Yy0+cGlwZSk7Cj4gPiAgCj4gPiBAQCAtNjcw NSw3ICs2NzA1LDcgQEAgc3RhdGljIHZvaWQKPiA+IGludGVsX2NydGNfY29tcHV0ZV9waXhlbF9y YXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ID4gIHsKPiA+ICAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLQo+ID4g PmJhc2UuY3J0Yy0+ZGV2KTsKPiA+ICAKPiA+IC0JaWYgKEhBU19HTUNIX0RJU1BMQVkoZGV2X3By aXYpKQo+ID4gKwlpZiAoSEFTX0dNQ0goZGV2X3ByaXYpKQo+ID4gIAkJLyogRklYTUUgY2FsY3Vs YXRlIHByb3BlciBwaXBlIHBpeGVsIHJhdGUgZm9yIEdNQ0ggcGZpdAo+ID4gKi8KPiA+ICAJCWNy dGNfc3RhdGUtPnBpeGVsX3JhdGUgPQo+ID4gIAkJCWNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRf bW9kZS5jcnRjX2Nsb2NrOwo+ID4gQEAgLTk4MTQsNyArOTgxNCw3IEBAIHN0YXRpYyB1MzIgaW50 ZWxfY3Vyc29yX2Jhc2UoY29uc3Qgc3RydWN0Cj4gPiBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVf c3RhdGUpCj4gPiAgCWJhc2UgKz0gcGxhbmVfc3RhdGUtPmNvbG9yX3BsYW5lWzBdLm9mZnNldDsK PiA+ICAKPiA+ICAJLyogSUxLKyBkbyB0aGlzIGF1dG9tYWdpY2FsbHkgKi8KPiA+IC0JaWYgKEhB U19HTUNIX0RJU1BMQVkoZGV2X3ByaXYpICYmCj4gPiArCWlmIChIQVNfR01DSChkZXZfcHJpdikg JiYKPiA+ICAJICAgIHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uICYgRFJNX01PREVfUk9UQVRF XzE4MCkKPiA+ICAJCWJhc2UgKz0gKHBsYW5lX3N0YXRlLT5iYXNlLmNydGNfaCAqCj4gPiAgCQkJ IHBsYW5lX3N0YXRlLT5iYXNlLmNydGNfdyAtIDEpICogZmItPmZvcm1hdC0KPiA+ID5jcHBbMF07 Cj4gPiBAQCAtMTEzNTYsNyArMTEzNTYsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kdW1wX3BpcGVf Y29uZmlnKHN0cnVjdAo+ID4gaW50ZWxfY3J0YyAqY3J0YywKPiA+ICAJCQkgICAgICBwaXBlX2Nv bmZpZy0+c2NhbGVyX3N0YXRlLnNjYWxlcl91c2VycywKPiA+ICAJCSAgICAgICAgICAgICAgcGlw ZV9jb25maWctPnNjYWxlcl9zdGF0ZS5zY2FsZXJfaWQpOwo+ID4gIAo+ID4gLQlpZiAoSEFTX0dN Q0hfRElTUExBWShkZXZfcHJpdikpCj4gPiArCWlmIChIQVNfR01DSChkZXZfcHJpdikpCj4gPiAg CQlEUk1fREVCVUdfS01TKCJnbWNoIHBmaXQ6IGNvbnRyb2w6IDB4JTA4eCwgcmF0aW9zOgo+ID4g MHglMDh4LCBsdmRzIGJvcmRlcjogMHglMDh4XG4iLAo+ID4gIAkJCSAgICAgIHBpcGVfY29uZmln LT5nbWNoX3BmaXQuY29udHJvbCwKPiA+ICAJCQkgICAgICBwaXBlX2NvbmZpZy0+Z21jaF9wZml0 LnBnbV9yYXRpb3MsCj4gPiBAQCAtMTMwOTYsNyArMTMwOTYsNyBAQCBzdGF0aWMgdm9pZCBpbnRl bF9hdG9taWNfY29tbWl0X3RhaWwoc3RydWN0Cj4gPiBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkK PiA+ICAKPiA+ICAJCQkvKiBGSVhNRSB1bmlmeSB0aGlzIGZvciBhbGwgcGxhdGZvcm1zICovCj4g PiAgCQkJaWYgKCFuZXdfY3J0Y19zdGF0ZS0+YWN0aXZlICYmCj4gPiAtCQkJICAgICFIQVNfR01D SF9ESVNQTEFZKGRldl9wcml2KSAmJgo+ID4gKwkJCSAgICAhSEFTX0dNQ0goZGV2X3ByaXYpICYm Cj4gPiAgCQkJICAgIGRldl9wcml2LT5kaXNwbGF5LmluaXRpYWxfd2F0ZXJtYXJrcykKPiA+ICAJ CQkJZGV2X3ByaXYtCj4gPiA+ZGlzcGxheS5pbml0aWFsX3dhdGVybWFya3MoaW50ZWxfc3RhdGUs Cj4gPiAgCQkJCQkJCQkgICAgIG5lCj4gPiB3X2ludGVsX2NydGNfc3RhdGUpOwo+ID4gQEAgLTE1 MDc0LDcgKzE1MDc0LDcgQEAgc3RhdGljIHZvaWQgc2FuaXRpemVfd2F0ZXJtYXJrcyhzdHJ1Y3QK PiA+IGRybV9kZXZpY2UgKmRldikKPiA+ICAJICogaW50ZXJtZWRpYXRlIHdhdGVybWFya3MgKHNp bmNlIHdlIGRvbid0IHRydXN0IHRoZSBjdXJyZW50Cj4gPiAgCSAqIHdhdGVybWFya3MpLgo+ID4g IAkgKi8KPiA+IC0JaWYgKCFIQVNfR01DSF9ESVNQTEFZKGRldl9wcml2KSkKPiA+ICsJaWYgKCFI QVNfR01DSChkZXZfcHJpdikpCj4gPiAgCQlpbnRlbF9zdGF0ZS0+c2tpcF9pbnRlcm1lZGlhdGVf d20gPSB0cnVlOwo+ID4gIAo+ID4gIAlyZXQgPSBpbnRlbF9hdG9taWNfY2hlY2soZGV2LCBzdGF0 ZSk7Cj4gPiBAQCAtMTUzMTUsNyArMTUzMTUsNyBAQCBpbnQgaW50ZWxfbW9kZXNldF9pbml0KHN0 cnVjdCBkcm1fZGV2aWNlCj4gPiAqZGV2KQo+ID4gIAkgKiBOb3RlIHRoYXQgd2UgbmVlZCB0byBk byB0aGlzIGFmdGVyIHJlY29uc3RydWN0aW5nIHRoZSBCSU9TCj4gPiBmYidzCj4gPiAgCSAqIHNp bmNlIHRoZSB3YXRlcm1hcmsgY2FsY3VsYXRpb24gZG9uZSBoZXJlIHdpbGwgdXNlIHBzdGF0ZS0K PiA+ID5mYi4KPiA+ICAJICovCj4gPiAtCWlmICghSEFTX0dNQ0hfRElTUExBWShkZXZfcHJpdikp Cj4gPiArCWlmICghSEFTX0dNQ0goZGV2X3ByaXYpKQo+ID4gIAkJc2FuaXRpemVfd2F0ZXJtYXJr cyhkZXYpOwo+ID4gIAo+ID4gIAkvKgo+ID4gQEAgLTE1NTI0LDcgKzE1NTI0LDcgQEAgc3RhdGlj IHZvaWQgaW50ZWxfc2FuaXRpemVfY3J0YyhzdHJ1Y3QKPiA+IGludGVsX2NydGMgKmNydGMsCj4g PiAgCWlmIChjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSAmJiAhaW50ZWxfY3J0Y19oYXNfZW5jb2Rl cnMoY3J0YykpCj4gPiAgCQlpbnRlbF9jcnRjX2Rpc2FibGVfbm9hdG9taWMoJmNydGMtPmJhc2Us IGN0eCk7Cj4gPiAgCj4gPiAtCWlmIChjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSB8fCBIQVNfR01D SF9ESVNQTEFZKGRldl9wcml2KSkgewo+ID4gKwlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUg fHwgSEFTX0dNQ0goZGV2X3ByaXYpKSB7Cj4gPiAgCQkvKgo+ID4gIAkJICogV2Ugc3RhcnQgb3V0 IHdpdGggdW5kZXJydW4gcmVwb3J0aW5nIGRpc2FibGVkIHRvCj4gPiBhdm9pZCByYWNlcy4KPiA+ ICAJCSAqIEZvciBjb3JyZWN0IGJvb2trZWVwaW5nIG1hcmsgdGhpcyBvbiBhY3RpdmUgY3J0Y3Mu Cj4gPiBAQCAtMTYyNzEsNyArMTYyNzEsNyBAQCBpbnRlbF9kaXNwbGF5X2NhcHR1cmVfZXJyb3Jf c3RhdGUoc3RydWN0Cj4gPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ICAKPiA+ICAJ CWVycm9yLT5waXBlW2ldLnNvdXJjZSA9IEk5MTVfUkVBRChQSVBFU1JDKGkpKTsKPiA+ICAKPiA+ IC0JCWlmIChIQVNfR01DSF9ESVNQTEFZKGRldl9wcml2KSkKPiA+ICsJCWlmIChIQVNfR01DSChk ZXZfcHJpdikpCj4gPiAgCQkJZXJyb3ItPnBpcGVbaV0uc3RhdCA9IEk5MTVfUkVBRChQSVBFU1RB VChpKSk7Cj4gPiAgCX0KPiA+ICAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcC5jCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+IGlu ZGV4IDY4MWU4ODQwNWFkYS4uYzA5Yzc1MTE3ZTlmIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHAuYwo+ID4gQEAgLTIxNDEsNyArMjE0MSw3IEBAIGludGVsX2RwX2NvbXB1dGVfY29uZmln KHN0cnVjdCBpbnRlbF9lbmNvZGVyCj4gPiAqZW5jb2RlciwKPiA+ICAJCQkJcmV0dXJuIHJldDsK PiA+ICAJCX0KPiA+ICAKPiA+IC0JCWlmIChIQVNfR01DSF9ESVNQTEFZKGRldl9wcml2KSkKPiA+ ICsJCWlmIChIQVNfR01DSChkZXZfcHJpdikpCj4gPiAgCQkJaW50ZWxfZ21jaF9wYW5lbF9maXR0 aW5nKGludGVsX2NydGMsCj4gPiBwaXBlX2NvbmZpZywKPiA+ICAJCQkJCQkgY29ubl9zdGF0ZS0K PiA+ID5zY2FsaW5nX21vZGUpOwo+ID4gIAkJZWxzZQo+ID4gQEAgLTIxNTIsNyArMjE1Miw3IEBA IGludGVsX2RwX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyCj4gPiAqZW5jb2Rl ciwKPiA+ICAJaWYgKGFkanVzdGVkX21vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19EQkxTQ0FO KQo+ID4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gPiAgCj4gPiAtCWlmIChIQVNfR01DSF9ESVNQTEFZ KGRldl9wcml2KSAmJgo+ID4gKwlpZiAoSEFTX0dNQ0goZGV2X3ByaXYpICYmCj4gPiAgCSAgICBh ZGp1c3RlZF9tb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfSU5URVJMQUNFKQo+ID4gIAkJcmV0 dXJuIC1FSU5WQUw7Cj4gPiAgCj4gPiBAQCAtNTMwMCw3ICs1MzAwLDcgQEAgYm9vbCBpbnRlbF9k aWdpdGFsX3BvcnRfY29ubmVjdGVkKHN0cnVjdAo+ID4gaW50ZWxfZW5jb2RlciAqZW5jb2RlcikK PiA+ICB7Cj4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZW5jb2Rlci0+YmFzZS5kZXYpOwo+ID4gIAo+ID4gLQlpZiAoSEFTX0dNQ0hfRElTUExBWShkZXZf cHJpdikpIHsKPiA+ICsJaWYgKEhBU19HTUNIKGRldl9wcml2KSkgewo+ID4gIAkJaWYgKElTX0dN NDUoZGV2X3ByaXYpKQo+ID4gIAkJCXJldHVybiBnbTQ1X2RpZ2l0YWxfcG9ydF9jb25uZWN0ZWQo ZW5jb2Rlcik7Cj4gPiAgCQllbHNlCj4gPiBAQCAtNjAzOCw3ICs2MDM4LDcgQEAgaW50ZWxfZHBf YWRkX3Byb3BlcnRpZXMoc3RydWN0IGludGVsX2RwCj4gPiAqaW50ZWxfZHAsIHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0Cj4gPiAgCQlpbnRlbF9hdHRhY2hfZm9yY2VfYXVkaW9fcHJvcGVy dHkoY29ubmVjdG9yKTsKPiA+ICAKPiA+ICAJaW50ZWxfYXR0YWNoX2Jyb2FkY2FzdF9yZ2JfcHJv cGVydHkoY29ubmVjdG9yKTsKPiA+IC0JaWYgKEhBU19HTUNIX0RJU1BMQVkoZGV2X3ByaXYpKQo+ ID4gKwlpZiAoSEFTX0dNQ0goZGV2X3ByaXYpKQo+ID4gIAkJZHJtX2Nvbm5lY3Rvcl9hdHRhY2hf bWF4X2JwY19wcm9wZXJ0eShjb25uZWN0b3IsIDYsCj4gPiAxMCk7Cj4gPiAgCWVsc2UgaWYgKElO VEVMX0dFTihkZXZfcHJpdikgPj0gNSkKPiA+ICAJCWRybV9jb25uZWN0b3JfYXR0YWNoX21heF9i cGNfcHJvcGVydHkoY29ubmVjdG9yLCA2LAo+ID4gMTIpOwo+ID4gQEAgLTYwNDcsNyArNjA0Nyw3 IEBAIGludGVsX2RwX2FkZF9wcm9wZXJ0aWVzKHN0cnVjdCBpbnRlbF9kcAo+ID4gKmludGVsX2Rw LCBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdAo+ID4gIAkJdTMyIGFsbG93ZWRfc2NhbGVy czsKPiA+ICAKPiA+ICAJCWFsbG93ZWRfc2NhbGVycyA9IEJJVChEUk1fTU9ERV9TQ0FMRV9BU1BF Q1QpIHwKPiA+IEJJVChEUk1fTU9ERV9TQ0FMRV9GVUxMU0NSRUVOKTsKPiA+IC0JCWlmICghSEFT X0dNQ0hfRElTUExBWShkZXZfcHJpdikpCj4gPiArCQlpZiAoIUhBU19HTUNIKGRldl9wcml2KSkK PiA+ICAJCQlhbGxvd2VkX3NjYWxlcnMgfD0gQklUKERSTV9NT0RFX1NDQUxFX0NFTlRFUik7Cj4g PiAgCj4gPiAgCQlkcm1fY29ubmVjdG9yX2F0dGFjaF9zY2FsaW5nX21vZGVfcHJvcGVydHkoY29u bmVjdG9yLAo+ID4gYWxsb3dlZF9zY2FsZXJzKTsKPiA+IEBAIC02OTE5LDcgKzY5MTksNyBAQCBp bnRlbF9kcF9pbml0X2Nvbm5lY3RvcihzdHJ1Y3QKPiA+IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50 ZWxfZGlnX3BvcnQsCj4gPiAgCWRybV9jb25uZWN0b3JfaW5pdChkZXYsIGNvbm5lY3RvciwgJmlu dGVsX2RwX2Nvbm5lY3Rvcl9mdW5jcywKPiA+IHR5cGUpOwo+ID4gIAlkcm1fY29ubmVjdG9yX2hl bHBlcl9hZGQoY29ubmVjdG9yLAo+ID4gJmludGVsX2RwX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3Mp Owo+ID4gIAo+ID4gLQlpZiAoIUhBU19HTUNIX0RJU1BMQVkoZGV2X3ByaXYpKQo+ID4gKwlpZiAo IUhBU19HTUNIKGRldl9wcml2KSkKPiA+ICAJCWNvbm5lY3Rvci0+aW50ZXJsYWNlX2FsbG93ZWQg PSB0cnVlOwo+ID4gIAljb25uZWN0b3ItPmRvdWJsZXNjYW5fYWxsb3dlZCA9IDA7Cj4gPiAgCj4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmlmb191bmRlcnJ1bi5j Cj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZpZm9fdW5kZXJydW4uYwo+ID4gaW5k ZXggM2I5Mjg1MTMwZWY1Li5mMzNkZTRiZTRiODkgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9maWZvX3VuZGVycnVuLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2ZpZm9fdW5kZXJydW4uYwo+ID4gQEAgLTI1OCw3ICsyNTgsNyBAQCBzdGF0 aWMgYm9vbAo+ID4gX19pbnRlbF9zZXRfY3B1X2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCj4gPiAgCW9sZCA9ICFjcnRjLT5jcHVfZmlmb191bmRlcnJ1bl9k aXNhYmxlZDsKPiA+ICAJY3J0Yy0+Y3B1X2ZpZm9fdW5kZXJydW5fZGlzYWJsZWQgPSAhZW5hYmxl Owo+ID4gIAo+ID4gLQlpZiAoSEFTX0dNQ0hfRElTUExBWShkZXZfcHJpdikpCj4gPiArCWlmIChI QVNfR01DSChkZXZfcHJpdikpCj4gPiAgCQlpOXh4X3NldF9maWZvX3VuZGVycnVuX3JlcG9ydGlu ZyhkZXYsIHBpcGUsIGVuYWJsZSwKPiA+IG9sZCk7Cj4gPiAgCWVsc2UgaWYgKElTX0dFTl9SQU5H RShkZXZfcHJpdiwgNSwgNikpCj4gPiAgCQlpcm9ubGFrZV9zZXRfZmlmb191bmRlcnJ1bl9yZXBv cnRpbmcoZGV2LCBwaXBlLAo+ID4gZW5hYmxlKTsKPiA+IEBAIC0zNjksNyArMzY5LDcgQEAgdm9p ZCBpbnRlbF9jcHVfZmlmb191bmRlcnJ1bl9pcnFfaGFuZGxlcihzdHJ1Y3QKPiA+IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gIAkJcmV0dXJuOwo+ID4gIAo+ID4gIAkvKiBHTUNIIGNh bid0IGRpc2FibGUgZmlmbyB1bmRlcnJ1bnMsIGZpbHRlciB0aGVtLiAqLwo+ID4gLQlpZiAoSEFT X0dNQ0hfRElTUExBWShkZXZfcHJpdikgJiYKPiA+ICsJaWYgKEhBU19HTUNIKGRldl9wcml2KSAm Jgo+ID4gIAkgICAgY3J0Yy0+Y3B1X2ZpZm9fdW5kZXJydW5fZGlzYWJsZWQpCj4gPiAgCQlyZXR1 cm47Cj4gPiAgCj4gPiBAQCAtNDIxLDcgKzQyMSw3IEBAIHZvaWQgaW50ZWxfY2hlY2tfY3B1X2Zp Zm9fdW5kZXJydW5zKHN0cnVjdAo+ID4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiAg CQlpZiAoY3J0Yy0+Y3B1X2ZpZm9fdW5kZXJydW5fZGlzYWJsZWQpCj4gPiAgCQkJY29udGludWU7 Cj4gPiAgCj4gPiAtCQlpZiAoSEFTX0dNQ0hfRElTUExBWShkZXZfcHJpdikpCj4gPiArCQlpZiAo SEFTX0dNQ0goZGV2X3ByaXYpKQo+ID4gIAkJCWk5eHhfY2hlY2tfZmlmb191bmRlcnJ1bnMoY3J0 Yyk7Cj4gPiAgCQllbHNlIGlmIChJU19HRU4oZGV2X3ByaXYsIDcpKQo+ID4gIAkJCWl2eWJyaWRn ZV9jaGVja19maWZvX3VuZGVycnVucyhjcnRjKTsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf aGRtaS5jCj4gPiBpbmRleCA5N2E5OGUxYmVhNTYuLmYxMjVhNjJlYmE4YyAxMDA2NDQKPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+ID4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4gPiBAQCAtMTU4OCw3ICsxNTg4LDcgQEAgaW50ZWxf aGRtaV9tb2RlX3ZhbGlkKHN0cnVjdCBkcm1fY29ubmVjdG9yCj4gPiAqY29ubmVjdG9yLAo+ID4g IAo+ID4gIAlpZiAoaGRtaS0+aGFzX2hkbWlfc2luayAmJiAhZm9yY2VfZHZpKSB7Cj4gPiAgCQkv KiBpZiB3ZSBjYW4ndCBkbyA4YnBjIHdlIG1heSBzdGlsbCBiZSBhYmxlIHRvIGRvIDEyYnBjCj4g PiAqLwo+ID4gLQkJaWYgKHN0YXR1cyAhPSBNT0RFX09LICYmICFIQVNfR01DSF9ESVNQTEFZKGRl dl9wcml2KSkKPiA+ICsJCWlmIChzdGF0dXMgIT0gTU9ERV9PSyAmJiAhSEFTX0dNQ0goZGV2X3By aXYpKQo+ID4gIAkJCXN0YXR1cyA9IGhkbWlfcG9ydF9jbG9ja192YWxpZChoZG1pLCBjbG9jayAq IDMKPiA+IC8gMiwKPiA+ICAJCQkJCQkgICAgICAgdHJ1ZSwKPiA+IGZvcmNlX2R2aSk7Cj4gPiAg Cj4gPiBAQCAtMTYxMyw3ICsxNjEzLDcgQEAgc3RhdGljIGJvb2wgaGRtaV9kZWVwX2NvbG9yX3Bv c3NpYmxlKGNvbnN0Cj4gPiBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiA+ ICAJCSZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7Cj4gPiAgCWludCBpOwo+ID4gIAo+ ID4gLQlpZiAoSEFTX0dNQ0hfRElTUExBWShkZXZfcHJpdikpCj4gPiArCWlmIChIQVNfR01DSChk ZXZfcHJpdikpCj4gPiAgCQlyZXR1cm4gZmFsc2U7Cj4gPiAgCj4gPiAgCWlmIChicGMgPT0gMTAg JiYgSU5URUxfR0VOKGRldl9wcml2KSA8IDExKQo+ID4gQEAgLTIxNTAsNyArMjE1MCw3IEBAIGlu dGVsX2hkbWlfYWRkX3Byb3BlcnRpZXMoc3RydWN0IGludGVsX2hkbWkKPiA+ICppbnRlbF9oZG1p LCBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqYwo+ID4gIAlkcm1fY29ubmVjdG9yX2F0dGFjaF9jb250 ZW50X3R5cGVfcHJvcGVydHkoY29ubmVjdG9yKTsKPiA+ICAJY29ubmVjdG9yLT5zdGF0ZS0+cGlj dHVyZV9hc3BlY3RfcmF0aW8gPQo+ID4gSERNSV9QSUNUVVJFX0FTUEVDVF9OT05FOwo+ID4gIAo+ ID4gLQlpZiAoIUhBU19HTUNIX0RJU1BMQVkoZGV2X3ByaXYpKQo+ID4gKwlpZiAoIUhBU19HTUNI KGRldl9wcml2KSkKPiA+ICAJCWRybV9jb25uZWN0b3JfYXR0YWNoX21heF9icGNfcHJvcGVydHko Y29ubmVjdG9yLCA4LAo+ID4gMTIpOwo+ID4gIH0KPiA+ICAKPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ob3RwbHVnLmMKPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfaG90cGx1Zy5jCj4gPiBpbmRleCBlMDI3ZDJiNGFiZTUuLmI4OTM3Yzc4OGYwMyAx MDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hvdHBsdWcuYwo+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaG90cGx1Zy5jCj4gPiBAQCAtNDcwLDcg KzQ3MCw3IEBAIHZvaWQgaW50ZWxfaHBkX2lycV9oYW5kbGVyKHN0cnVjdAo+ID4gZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAgCQkJICogaG90cGx1ZyBiaXRzIGl0c2VsZi4gU28gb25s eSBXQVJOIGFib3V0Cj4gPiB1bmV4cGVjdGVkCj4gPiAgCQkJICogaW50ZXJydXB0cyBvbiBzYW5l ciBwbGF0Zm9ybXMuCj4gPiAgCQkJICovCj4gPiAtCQkJV0FSTl9PTkNFKCFIQVNfR01DSF9ESVNQ TEFZKGRldl9wcml2KSwKPiA+ICsJCQlXQVJOX09OQ0UoIUhBU19HTUNIKGRldl9wcml2KSwKPiA+ ICAJCQkJICAiUmVjZWl2ZWQgSFBEIGludGVycnVwdCBvbiBwaW4gJWQKPiA+IGFsdGhvdWdoIGRp c2FibGVkXG4iLCBwaW4pOwo+ID4gIAkJCWNvbnRpbnVlOwo+ID4gIAkJfQo+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2kyYy5jCj4gPiBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2kyYy5jCj4gPiBpbmRleCA0ZjZkYzhjOTQ2MzQuLjVhNzMzZTcxMTM1NSAx MDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2kyYy5jCj4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9pMmMuYwo+ID4gQEAgLTgyMyw3ICs4MjMsNyBA QCBpbnQgaW50ZWxfc2V0dXBfZ21idXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPiA+ICpkZXZf cHJpdikKPiA+ICAKPiA+ICAJaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJS WVZJRVcoZGV2X3ByaXYpKQo+ID4gIAkJZGV2X3ByaXYtPmdwaW9fbW1pb19iYXNlID0gVkxWX0RJ U1BMQVlfQkFTRTsKPiA+IC0JZWxzZSBpZiAoIUhBU19HTUNIX0RJU1BMQVkoZGV2X3ByaXYpKQo+ ID4gKwllbHNlIGlmICghSEFTX0dNQ0goZGV2X3ByaXYpKQo+ID4gIAkJLyoKPiA+ICAJCSAqIEJy b3h0b24gdXNlcyB0aGUgc2FtZSBQQ0ggb2Zmc2V0cyBmb3IgU291dGggRGlzcGxheQo+ID4gRW5n aW5lLAo+ID4gIAkJICogZXZlbiB0aG91Z2ggaXQgZG9lc24ndCBoYXZlIGEgUENILgo+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3Zsdl9kc2kuYwo+ID4gYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS92bHZfZHNpLmMKPiA+IGluZGV4IDY5NmI3NTBhY2QxZC4uNjQwMzcyOGZlNzc4 IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvdmx2X2RzaS5jCj4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS92bHZfZHNpLmMKPiA+IEBAIC0yNzUsNyArMjc1LDcgQEAg c3RhdGljIGludCBpbnRlbF9kc2lfY29tcHV0ZV9jb25maWcoc3RydWN0Cj4gPiBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAo+ID4gIAlpZiAoZml4ZWRfbW9kZSkgewo+ID4gIAkJaW50ZWxfZml4ZWRf cGFuZWxfbW9kZShmaXhlZF9tb2RlLCBhZGp1c3RlZF9tb2RlKTsKPiA+ICAKPiA+IC0JCWlmIChI QVNfR01DSF9ESVNQTEFZKGRldl9wcml2KSkKPiA+ICsJCWlmIChIQVNfR01DSChkZXZfcHJpdikp Cj4gPiAgCQkJaW50ZWxfZ21jaF9wYW5lbF9maXR0aW5nKGNydGMsIHBpcGVfY29uZmlnLAo+ID4g IAkJCQkJCSBjb25uX3N0YXRlLQo+ID4gPnNjYWxpbmdfbW9kZSk7Cj4gPiAgCQllbHNlCj4gPiBA QCAtMTYzMyw3ICsxNjMzLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX2FkZF9wcm9wZXJ0aWVz KHN0cnVjdAo+ID4gaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4gPiAgCQl1MzIgYWxsb3dl ZF9zY2FsZXJzOwo+ID4gIAo+ID4gIAkJYWxsb3dlZF9zY2FsZXJzID0gQklUKERSTV9NT0RFX1ND QUxFX0FTUEVDVCkgfAo+ID4gQklUKERSTV9NT0RFX1NDQUxFX0ZVTExTQ1JFRU4pOwo+ID4gLQkJ aWYgKCFIQVNfR01DSF9ESVNQTEFZKGRldl9wcml2KSkKPiA+ICsJCWlmICghSEFTX0dNQ0goZGV2 X3ByaXYpKQo+ID4gIAkJCWFsbG93ZWRfc2NhbGVycyB8PSBCSVQoRFJNX01PREVfU0NBTEVfQ0VO VEVSKTsKPiA+ICAKPiA+ICAJCWRybV9jb25uZWN0b3JfYXR0YWNoX3NjYWxpbmdfbW9kZV9wcm9w ZXJ0eSgmY29ubmVjdG9yLQo+ID4gPmJhc2UsCgoKCj4gX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK