From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan De Oliveira Subject: Re: [PATCH 17/19] drm/i915: Convert intel_pipe_will_have_type() to using atomic state Date: Fri, 20 Mar 2015 08:28:03 +0200 Message-ID: <1426832883.2316.7.camel@gmail.com> References: <1426240142-24538-1-git-send-email-ander.conselvan.de.oliveira@intel.com> <1426240142-24538-18-git-send-email-ander.conselvan.de.oliveira@intel.com> <76A9B330A4D78C4D99CB292C4CC06C0E36F7D828@fmsmsx101.amr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pa0-f47.google.com (mail-pa0-f47.google.com [209.85.220.47]) by gabe.freedesktop.org (Postfix) with ESMTP id 0B3846E2D1 for ; Thu, 19 Mar 2015 23:28:09 -0700 (PDT) Received: by pagj4 with SMTP id j4so8076883pag.2 for ; Thu, 19 Mar 2015 23:28:08 -0700 (PDT) In-Reply-To: <76A9B330A4D78C4D99CB292C4CC06C0E36F7D828@fmsmsx101.amr.corp.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Konduru, Chandra" Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAyMDE1LTAzLTE5IGF0IDE5OjI0ICswMDAwLCBLb25kdXJ1LCBDaGFuZHJhIHdyb3Rl Ogo+IAo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPiA+IEZyb206IENvbnNlbHZhbiBE ZSBPbGl2ZWlyYSwgQW5kZXIKPiA+IFNlbnQ6IEZyaWRheSwgTWFyY2ggMTMsIDIwMTUgMjo0OSBB TQo+ID4gVG86IGludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+IENjOiBLb25kdXJ1 LCBDaGFuZHJhOyBDb25zZWx2YW4gRGUgT2xpdmVpcmEsIEFuZGVyCj4gPiBTdWJqZWN0OiBbUEFU Q0ggMTcvMTldIGRybS9pOTE1OiBDb252ZXJ0IGludGVsX3BpcGVfd2lsbF9oYXZlX3R5cGUoKSB0 byB1c2luZwo+ID4gYXRvbWljIHN0YXRlCj4gPiAKPiA+IFBhc3MgYSBjcnRjX3N0YXRlIHRvIGl0 IGFuZCBmaW5kIHdoZXRoZXIgdGhlIHBpcGUgaGFzIGFuIGVuY29kZXIgb2YgYSBnaXZlbiB0eXBl Cj4gPiBieSBsb29raW5nIGF0IHRoZSBkcm1fYXRvbWljX3N0YXRlIHRoZSBjcnRjX3N0YXRlIHBv aW50cyB0by4KPiA+IAo+ID4gVW50aWwgcmVjZW50bHkgaTl4eF9nZXRfcmVmY2xrKCkgdXNlZCB0 byBiZSBjYWxsZWQgaW5kaXJlY3RseSBmcm9tCj4gPiB2bHZfZm9yY2VfcGxsX29uKCkgd2l0aCBh IGR1bW15IGNydGNfc3RhdGUuIFRoYXQgZHVtbXkgY3J0YyBzdGF0ZSBpcyBub3QKPiA+IGNvbnZl cnRlZCB0byBiZSBwYXJ0IG9mIGEgZnVsbCBkcm0gYXRvbWljIHN0YXRlLCBzbyBhZGQgYSBXQVJO IGluIGNhc2Ugc29tZW9uZQo+ID4gZGVjaWRlcyB0byBjYWxsIHRoYXQgYWdhaW4gd2l0aCBzdWNo IGEgZHVtbXkgc3RhdGUuCj4gPiAKPiA+IHYyOiBXYXJuIGlmIHRoZXJlIGlzIG5vIGNvbm5lY3Rv cnMgZm9yIGEgZ2l2ZW4gY3J0Yy4gKERhbmllbCkKPiA+ICAgICBSZXBsYWNlIGNvbW1lbnQgaTl4 eF9nZXRfcmVmY2xrKCkgd2l0aCBhIFdBUk5fT04oKS4gKEFuZGVyKQo+ID4gCj4gPiBTaWduZWQt b2ZmLWJ5OiBBbmRlciBDb25zZWx2YW4gZGUgT2xpdmVpcmEKPiA+IDxhbmRlci5jb25zZWx2YW4u ZGUub2xpdmVpcmFAaW50ZWwuY29tPgo+ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaCAgICAgIHwgICAyICstCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jIHwgMTMzICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KPiA+IC0K PiA+ICAyIGZpbGVzIGNoYW5nZWQsIDgzIGluc2VydGlvbnMoKyksIDUyIGRlbGV0aW9ucygtKQo+ ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+IGluZGV4IDQ5MGFiOGMuLjU3NmUxMDEg MTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiBAQCAtNTQxLDcgKzU0MSw3IEBA IHN0cnVjdCBkcm1faTkxNV9kaXNwbGF5X2Z1bmNzIHsKPiA+ICAJICogUmV0dXJucyB0cnVlIG9u IHN1Y2Nlc3MsIGZhbHNlIG9uIGZhaWx1cmUuCj4gPiAgCSAqLwo+ID4gIAlib29sICgqZmluZF9k cGxsKShjb25zdCBzdHJ1Y3QgaW50ZWxfbGltaXQgKmxpbWl0LAo+ID4gLQkJCSAgc3RydWN0IGlu dGVsX2NydGMgKmNydGMsCj4gPiArCQkJICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSwKPiA+ICAJCQkgIGludCB0YXJnZXQsIGludCByZWZjbGssCj4gPiAgCQkJICBzdHJ1Y3Qg ZHBsbCAqbWF0Y2hfY2xvY2ssCj4gPiAgCQkJICBzdHJ1Y3QgZHBsbCAqYmVzdF9jbG9jayk7Cj4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gaW5kZXggOGM5NzE4Ni4u YmUxOTc5ZSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiBA QCAtNDMxLDI1ICs0MzEsNDEgQEAgYm9vbCBpbnRlbF9waXBlX2hhc190eXBlKHN0cnVjdCBpbnRl bF9jcnRjICpjcnRjLAo+ID4gZW51bSBpbnRlbF9vdXRwdXRfdHlwZSB0eXBlKQo+ID4gICAqIGlu dGVsX3BpcGVfaGFzX3R5cGUoKSBidXQgbG9va2luZyBhdCBlbmNvZGVyLT5uZXdfY3J0YyBpbnN0 ZWFkIG9mCj4gPiAgICogZW5jb2Rlci0+Y3J0Yy4KPiA+ICAgKi8KPiA+IC1zdGF0aWMgYm9vbCBp bnRlbF9waXBlX3dpbGxfaGF2ZV90eXBlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLCBpbnQgdHlw ZSkKPiA+ICtzdGF0aWMgYm9vbCBpbnRlbF9waXBlX3dpbGxfaGF2ZV90eXBlKGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ID4gKwkJCQkgICAgICBpbnQgdHlwZSkK PiA+ICB7Cj4gPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKPiA+ ICsJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gY3J0Y19zdGF0ZS0+YmFzZS5zdGF0 ZTsKPiA+ICsJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5lY3Rvcl9zdGF0ZTsKPiA+ ICAJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7Cj4gPiArCWludCBpLCBudW1fY29ubmVj dG9ycyA9IDA7Cj4gPiArCj4gPiArCWZvciAoaSA9IDA7IGkgPCBzdGF0ZS0+bnVtX2Nvbm5lY3Rv cjsgaSsrKSB7Cj4gPiArCQlpZiAoIXN0YXRlLT5jb25uZWN0b3JzW2ldKQo+ID4gKwkJCWNvbnRp bnVlOwo+ID4gKwo+ID4gKwkJY29ubmVjdG9yX3N0YXRlID0gc3RhdGUtPmNvbm5lY3Rvcl9zdGF0 ZXNbaV07Cj4gPiArCQlpZiAoY29ubmVjdG9yX3N0YXRlLT5jcnRjICE9IGNydGNfc3RhdGUtPmJh c2UuY3J0YykKPiA+ICsJCQljb250aW51ZTsKPiA+ICsKPiA+ICsJCW51bV9jb25uZWN0b3JzKys7 Cj4gCj4gQWJvdmUgcGllY2Ugb2YgY29kZSB0byBsb29wIHRocm91Z2ggc3RhdGUtPmNvbm5lY3Rv cnNbXSBpcyBwcmVzZW50IGluCj4gbXVsdGlwbGUgcGxhY2VzLCBjYW4geW91IGhhdmUgYSBoZWxw ZXIgc29tZXRoaW5nIGxpa2UgYmVsb3cgdG8gc2F2ZQo+IHNvbWUgdHlwaW5nIGFuZCBjb2RlIHJl ZHVjdGlvbj8KPiAKPiBzdHJ1Y3QgY29ubmVjdG9yX3N0YXRlICogaW50ZWxfY3J0Y19zdGF0ZV9j b25uZWN0b3IoY3J0Y19zdGF0ZSwgY3J0Yyk7Cj4gCj4gYWxzbyBzaW1pbGFyaWx5IGZvciBlbmNv ZGVyCj4gc3RydWN0IGVuY29kZXJfc3RhdGUgKmludGVsX2NydGNfc3RhdGVfZW5jb2RlcihjcnRj X3N0YXRlLCBjcnRjKTsKClRoaXMgd291bGRuJ3Qgd29yayBmb3IgY2xvbmVkIHNldHVwcywgd2hl cmUgd2UgaGF2ZSBtb3JlIHRoYW4gb25lCmNvbm5lY3Rvci9lbmNvZGVyIGluIGEgc2luZ2xlIHBp cGUuIAoKQW5kZXIKCj4gPiAKPiA+IC0JZm9yX2VhY2hfaW50ZWxfZW5jb2RlcihkZXYsIGVuY29k ZXIpCj4gPiAtCQlpZiAoZW5jb2Rlci0+bmV3X2NydGMgPT0gY3J0YyAmJiBlbmNvZGVyLT50eXBl ID09IHR5cGUpCj4gPiArCQllbmNvZGVyID0gdG9faW50ZWxfZW5jb2Rlcihjb25uZWN0b3Jfc3Rh dGUtPmJlc3RfZW5jb2Rlcik7Cj4gPiArCQlpZiAoZW5jb2Rlci0+dHlwZSA9PSB0eXBlKQo+ID4g IAkJCXJldHVybiB0cnVlOwo+ID4gKwl9Cj4gPiArCj4gPiArCVdBUk5fT04obnVtX2Nvbm5lY3Rv cnMgPT0gMCk7Cj4gPiAKPiA+ICAJcmV0dXJuIGZhbHNlOwo+ID4gIH0KPiA+IAo+ID4gLXN0YXRp YyBjb25zdCBpbnRlbF9saW1pdF90ICppbnRlbF9pcm9ubGFrZV9saW1pdChzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YywKPiA+IC0JCQkJCQlpbnQgcmVmY2xrKQo+ID4gK3N0YXRpYyBjb25zdCBpbnRl bF9saW1pdF90ICoKPiA+ICtpbnRlbF9pcm9ubGFrZV9saW1pdChzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSwgaW50IHJlZmNsaykKPiA+ICB7Cj4gPiAtCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKPiA+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2Owo+ID4gIAljb25zdCBpbnRlbF9saW1pdF90ICps aW1pdDsKPiA+IAo+ID4gLQlpZiAoaW50ZWxfcGlwZV93aWxsX2hhdmVfdHlwZShjcnRjLCBJTlRF TF9PVVRQVVRfTFZEUykpIHsKPiA+ICsJaWYgKGludGVsX3BpcGVfd2lsbF9oYXZlX3R5cGUoY3J0 Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0xWRFMpKSB7Cj4gPiAgCQlpZiAoaW50ZWxfaXNfZHVhbF9s aW5rX2x2ZHMoZGV2KSkgewo+ID4gIAkJCWlmIChyZWZjbGsgPT0gMTAwMDAwKQo+ID4gIAkJCQls aW1pdCA9ICZpbnRlbF9saW1pdHNfaXJvbmxha2VfZHVhbF9sdmRzXzEwMG07Cj4gPiBAQCAtNDY3 LDIwICs0ODMsMjEgQEAgc3RhdGljIGNvbnN0IGludGVsX2xpbWl0X3QgKmludGVsX2lyb25sYWtl X2xpbWl0KHN0cnVjdAo+ID4gaW50ZWxfY3J0YyAqY3J0YywKPiA+ICAJcmV0dXJuIGxpbWl0Owo+ ID4gIH0KPiA+IAo+ID4gLXN0YXRpYyBjb25zdCBpbnRlbF9saW1pdF90ICppbnRlbF9nNHhfbGlt aXQoc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gPiArc3RhdGljIGNvbnN0IGludGVsX2xpbWl0 X3QgKgo+ID4gK2ludGVsX2c0eF9saW1pdChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKPiA+ICB7Cj4gPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRl djsKPiA+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ ZGV2Owo+ID4gIAljb25zdCBpbnRlbF9saW1pdF90ICpsaW1pdDsKPiA+IAo+ID4gLQlpZiAoaW50 ZWxfcGlwZV93aWxsX2hhdmVfdHlwZShjcnRjLCBJTlRFTF9PVVRQVVRfTFZEUykpIHsKPiA+ICsJ aWYgKGludGVsX3BpcGVfd2lsbF9oYXZlX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0xW RFMpKSB7Cj4gPiAgCQlpZiAoaW50ZWxfaXNfZHVhbF9saW5rX2x2ZHMoZGV2KSkKPiA+ICAJCQls aW1pdCA9ICZpbnRlbF9saW1pdHNfZzR4X2R1YWxfY2hhbm5lbF9sdmRzOwo+ID4gIAkJZWxzZQo+ ID4gIAkJCWxpbWl0ID0gJmludGVsX2xpbWl0c19nNHhfc2luZ2xlX2NoYW5uZWxfbHZkczsKPiA+ IC0JfSBlbHNlIGlmIChpbnRlbF9waXBlX3dpbGxfaGF2ZV90eXBlKGNydGMsIElOVEVMX09VVFBV VF9IRE1JKSB8fAo+ID4gLQkJICAgaW50ZWxfcGlwZV93aWxsX2hhdmVfdHlwZShjcnRjLCBJTlRF TF9PVVRQVVRfQU5BTE9HKSkgewo+ID4gKwl9IGVsc2UgaWYgKGludGVsX3BpcGVfd2lsbF9oYXZl X3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0hETUkpCj4gPiB8fAo+ID4gKwkJICAgaW50 ZWxfcGlwZV93aWxsX2hhdmVfdHlwZShjcnRjX3N0YXRlLAo+ID4gSU5URUxfT1VUUFVUX0FOQUxP RykpIHsKPiA+ICAJCWxpbWl0ID0gJmludGVsX2xpbWl0c19nNHhfaGRtaTsKPiA+IC0JfSBlbHNl IGlmIChpbnRlbF9waXBlX3dpbGxfaGF2ZV90eXBlKGNydGMsIElOVEVMX09VVFBVVF9TRFZPKSkg ewo+ID4gKwl9IGVsc2UgaWYgKGludGVsX3BpcGVfd2lsbF9oYXZlX3R5cGUoY3J0Y19zdGF0ZSwg SU5URUxfT1VUUFVUX1NEVk8pKSB7Cj4gPiAgCQlsaW1pdCA9ICZpbnRlbF9saW1pdHNfZzR4X3Nk dm87Cj4gPiAgCX0gZWxzZSAvKiBUaGUgb3B0aW9uIGlzIGZvciBvdGhlciBvdXRwdXRzICovCj4g PiAgCQlsaW1pdCA9ICZpbnRlbF9saW1pdHNfaTl4eF9zZHZvOwo+ID4gQEAgLTQ4OCwxNyArNTA1 LDE4IEBAIHN0YXRpYyBjb25zdCBpbnRlbF9saW1pdF90ICppbnRlbF9nNHhfbGltaXQoc3RydWN0 Cj4gPiBpbnRlbF9jcnRjICpjcnRjKQo+ID4gIAlyZXR1cm4gbGltaXQ7Cj4gPiAgfQo+ID4gCj4g PiAtc3RhdGljIGNvbnN0IGludGVsX2xpbWl0X3QgKmludGVsX2xpbWl0KHN0cnVjdCBpbnRlbF9j cnRjICpjcnRjLCBpbnQgcmVmY2xrKQo+ID4gK3N0YXRpYyBjb25zdCBpbnRlbF9saW1pdF90ICoK PiA+ICtpbnRlbF9saW1pdChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwgaW50 IHJlZmNsaykKPiA+ICB7Cj4gPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNl LmRldjsKPiA+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGNfc3RhdGUtPmJhc2UuY3J0 Yy0+ZGV2Owo+ID4gIAljb25zdCBpbnRlbF9saW1pdF90ICpsaW1pdDsKPiA+IAo+ID4gIAlpZiAo SEFTX1BDSF9TUExJVChkZXYpKQo+ID4gLQkJbGltaXQgPSBpbnRlbF9pcm9ubGFrZV9saW1pdChj cnRjLCByZWZjbGspOwo+ID4gKwkJbGltaXQgPSBpbnRlbF9pcm9ubGFrZV9saW1pdChjcnRjX3N0 YXRlLCByZWZjbGspOwo+ID4gIAllbHNlIGlmIChJU19HNFgoZGV2KSkgewo+ID4gLQkJbGltaXQg PSBpbnRlbF9nNHhfbGltaXQoY3J0Yyk7Cj4gPiArCQlsaW1pdCA9IGludGVsX2c0eF9saW1pdChj cnRjX3N0YXRlKTsKPiA+ICAJfSBlbHNlIGlmIChJU19QSU5FVklFVyhkZXYpKSB7Cj4gPiAtCQlp ZiAoaW50ZWxfcGlwZV93aWxsX2hhdmVfdHlwZShjcnRjLCBJTlRFTF9PVVRQVVRfTFZEUykpCj4g PiArCQlpZiAoaW50ZWxfcGlwZV93aWxsX2hhdmVfdHlwZShjcnRjX3N0YXRlLAo+ID4gSU5URUxf T1VUUFVUX0xWRFMpKQo+ID4gIAkJCWxpbWl0ID0gJmludGVsX2xpbWl0c19waW5ldmlld19sdmRz Owo+ID4gIAkJZWxzZQo+ID4gIAkJCWxpbWl0ID0gJmludGVsX2xpbWl0c19waW5ldmlld19zZHZv OyBAQCAtNTA3LDE0Cj4gPiArNTI1LDE0IEBAIHN0YXRpYyBjb25zdCBpbnRlbF9saW1pdF90ICpp bnRlbF9saW1pdChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywgaW50Cj4gPiByZWZjbGspCj4gPiAg CX0gZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXYpKSB7Cj4gPiAgCQlsaW1pdCA9ICZpbnRlbF9s aW1pdHNfdmx2Owo+ID4gIAl9IGVsc2UgaWYgKCFJU19HRU4yKGRldikpIHsKPiA+IC0JCWlmIChp bnRlbF9waXBlX3dpbGxfaGF2ZV90eXBlKGNydGMsIElOVEVMX09VVFBVVF9MVkRTKSkKPiA+ICsJ CWlmIChpbnRlbF9waXBlX3dpbGxfaGF2ZV90eXBlKGNydGNfc3RhdGUsCj4gPiBJTlRFTF9PVVRQ VVRfTFZEUykpCj4gPiAgCQkJbGltaXQgPSAmaW50ZWxfbGltaXRzX2k5eHhfbHZkczsKPiA+ICAJ CWVsc2UKPiA+ICAJCQlsaW1pdCA9ICZpbnRlbF9saW1pdHNfaTl4eF9zZHZvOwo+ID4gIAl9IGVs c2Ugewo+ID4gLQkJaWYgKGludGVsX3BpcGVfd2lsbF9oYXZlX3R5cGUoY3J0YywgSU5URUxfT1VU UFVUX0xWRFMpKQo+ID4gKwkJaWYgKGludGVsX3BpcGVfd2lsbF9oYXZlX3R5cGUoY3J0Y19zdGF0 ZSwKPiA+IElOVEVMX09VVFBVVF9MVkRTKSkKPiA+ICAJCQlsaW1pdCA9ICZpbnRlbF9saW1pdHNf aTh4eF9sdmRzOwo+ID4gLQkJZWxzZSBpZiAoaW50ZWxfcGlwZV93aWxsX2hhdmVfdHlwZShjcnRj LCBJTlRFTF9PVVRQVVRfRFZPKSkKPiA+ICsJCWVsc2UgaWYgKGludGVsX3BpcGVfd2lsbF9oYXZl X3R5cGUoY3J0Y19zdGF0ZSwKPiA+IElOVEVMX09VVFBVVF9EVk8pKQo+ID4gIAkJCWxpbWl0ID0g JmludGVsX2xpbWl0c19pOHh4X2R2bzsKPiA+ICAJCWVsc2UKPiA+ICAJCQlsaW1pdCA9ICZpbnRl bF9saW1pdHNfaTh4eF9kYWM7Cj4gPiBAQCAtNjAxLDE1ICs2MTksMTcgQEAgc3RhdGljIGJvb2wg aW50ZWxfUExMX2lzX3ZhbGlkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPiB9Cj4gPiAKPiA+ ICBzdGF0aWMgYm9vbAo+ID4gLWk5eHhfZmluZF9iZXN0X2RwbGwoY29uc3QgaW50ZWxfbGltaXRf dCAqbGltaXQsIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ID4gK2k5eHhfZmluZF9iZXN0X2Rw bGwoY29uc3QgaW50ZWxfbGltaXRfdCAqbGltaXQsCj4gPiArCQkgICAgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gPiAgCQkgICAgaW50IHRhcmdldCwgaW50IHJlZmNsaywg aW50ZWxfY2xvY2tfdCAqbWF0Y2hfY2xvY2ssCj4gPiAgCQkgICAgaW50ZWxfY2xvY2tfdCAqYmVz dF9jbG9jaykKPiA+ICB7Cj4gPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ID4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gY3J0Yy0+YmFzZS5kZXY7Cj4gPiAgCWludGVsX2Nsb2NrX3QgY2xvY2s7Cj4gPiAgCWludCBl cnIgPSB0YXJnZXQ7Cj4gPiAKPiA+IC0JaWYgKGludGVsX3BpcGVfd2lsbF9oYXZlX3R5cGUoY3J0 YywgSU5URUxfT1VUUFVUX0xWRFMpKSB7Cj4gPiArCWlmIChpbnRlbF9waXBlX3dpbGxfaGF2ZV90 eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9MVkRTKSkgewo+ID4gIAkJLyoKPiA+ICAJCSAq IEZvciBMVkRTIGp1c3QgcmVseSBvbiBpdHMgY3VycmVudCBzZXR0aW5ncyBmb3IgZHVhbC1jaGFu bmVsLgo+ID4gIAkJICogV2UgaGF2ZW4ndCBmaWd1cmVkIG91dCBob3cgdG8gcmVsaWFibHkgc2V0 IHVwIGRpZmZlcmVudCBAQCAtCj4gPiA2NjIsMTUgKzY4MiwxNyBAQCBpOXh4X2ZpbmRfYmVzdF9k cGxsKGNvbnN0IGludGVsX2xpbWl0X3QgKmxpbWl0LCBzdHJ1Y3QKPiA+IGludGVsX2NydGMgKmNy dGMsICB9Cj4gPiAKPiA+ICBzdGF0aWMgYm9vbAo+ID4gLXBudl9maW5kX2Jlc3RfZHBsbChjb25z dCBpbnRlbF9saW1pdF90ICpsaW1pdCwgc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gPiArcG52 X2ZpbmRfYmVzdF9kcGxsKGNvbnN0IGludGVsX2xpbWl0X3QgKmxpbWl0LAo+ID4gKwkJICAgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gPiAgCQkgICBpbnQgdGFyZ2V0LCBp bnQgcmVmY2xrLCBpbnRlbF9jbG9ja190ICptYXRjaF9jbG9jaywKPiA+ICAJCSAgIGludGVsX2Ns b2NrX3QgKmJlc3RfY2xvY2spCj4gPiAgewo+ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9 IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiA+ICAJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2Owo+ID4gIAlpbnRlbF9jbG9ja190IGNsb2NrOwo+ ID4gIAlpbnQgZXJyID0gdGFyZ2V0Owo+ID4gCj4gPiAtCWlmIChpbnRlbF9waXBlX3dpbGxfaGF2 ZV90eXBlKGNydGMsIElOVEVMX09VVFBVVF9MVkRTKSkgewo+ID4gKwlpZiAoaW50ZWxfcGlwZV93 aWxsX2hhdmVfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRfTFZEUykpIHsKPiA+ICAJCS8q Cj4gPiAgCQkgKiBGb3IgTFZEUyBqdXN0IHJlbHkgb24gaXRzIGN1cnJlbnQgc2V0dGluZ3MgZm9y IGR1YWwtY2hhbm5lbC4KPiA+ICAJCSAqIFdlIGhhdmVuJ3QgZmlndXJlZCBvdXQgaG93IHRvIHJl bGlhYmx5IHNldCB1cCBkaWZmZXJlbnQgQEAgLQo+ID4gNzIxLDEwICs3NDMsMTIgQEAgcG52X2Zp bmRfYmVzdF9kcGxsKGNvbnN0IGludGVsX2xpbWl0X3QgKmxpbWl0LCBzdHJ1Y3QKPiA+IGludGVs X2NydGMgKmNydGMsICB9Cj4gPiAKPiA+ICBzdGF0aWMgYm9vbAo+ID4gLWc0eF9maW5kX2Jlc3Rf ZHBsbChjb25zdCBpbnRlbF9saW1pdF90ICpsaW1pdCwgc3RydWN0IGludGVsX2NydGMgKmNydGMs Cj4gPiArZzR4X2ZpbmRfYmVzdF9kcGxsKGNvbnN0IGludGVsX2xpbWl0X3QgKmxpbWl0LAo+ID4g KwkJICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gPiAgCQkgICBpbnQg dGFyZ2V0LCBpbnQgcmVmY2xrLCBpbnRlbF9jbG9ja190ICptYXRjaF9jbG9jaywKPiA+ICAJCSAg IGludGVsX2Nsb2NrX3QgKmJlc3RfY2xvY2spCj4gPiAgewo+ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiA+ICAJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2Owo+ID4gIAlpbnRlbF9jbG9ja190 IGNsb2NrOwo+ID4gIAlpbnQgbWF4X247Cj4gPiBAQCAtNzMzLDcgKzc1Nyw3IEBAIGc0eF9maW5k X2Jlc3RfZHBsbChjb25zdCBpbnRlbF9saW1pdF90ICpsaW1pdCwgc3RydWN0Cj4gPiBpbnRlbF9j cnRjICpjcnRjLAo+ID4gIAlpbnQgZXJyX21vc3QgPSAodGFyZ2V0ID4+IDgpICsgKHRhcmdldCA+ PiA5KTsKPiA+ICAJZm91bmQgPSBmYWxzZTsKPiA+IAo+ID4gLQlpZiAoaW50ZWxfcGlwZV93aWxs X2hhdmVfdHlwZShjcnRjLCBJTlRFTF9PVVRQVVRfTFZEUykpIHsKPiA+ICsJaWYgKGludGVsX3Bp cGVfd2lsbF9oYXZlX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0xWRFMpKSB7Cj4gPiAg CQlpZiAoaW50ZWxfaXNfZHVhbF9saW5rX2x2ZHMoZGV2KSkKPiA+ICAJCQljbG9jay5wMiA9IGxp bWl0LT5wMi5wMl9mYXN0Owo+ID4gIAkJZWxzZQo+ID4gQEAgLTc3OCwxMCArODAyLDEyIEBAIGc0 eF9maW5kX2Jlc3RfZHBsbChjb25zdCBpbnRlbF9saW1pdF90ICpsaW1pdCwgc3RydWN0Cj4gPiBp bnRlbF9jcnRjICpjcnRjLCAgfQo+ID4gCj4gPiAgc3RhdGljIGJvb2wKPiA+IC12bHZfZmluZF9i ZXN0X2RwbGwoY29uc3QgaW50ZWxfbGltaXRfdCAqbGltaXQsIHN0cnVjdCBpbnRlbF9jcnRjICpj cnRjLAo+ID4gK3Zsdl9maW5kX2Jlc3RfZHBsbChjb25zdCBpbnRlbF9saW1pdF90ICpsaW1pdCwK PiA+ICsJCSAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ID4gIAkJICAg aW50IHRhcmdldCwgaW50IHJlZmNsaywgaW50ZWxfY2xvY2tfdCAqbWF0Y2hfY2xvY2ssCj4gPiAg CQkgICBpbnRlbF9jbG9ja190ICpiZXN0X2Nsb2NrKQo+ID4gIHsKPiA+ICsJc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gPiAg CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKPiA+ICAJaW50ZWxfY2xv Y2tfdCBjbG9jazsKPiA+ICAJdW5zaWduZWQgaW50IGJlc3RwcG0gPSAxMDAwMDAwOwo+ID4gQEAg LTgzNSwxMCArODYxLDEyIEBAIHZsdl9maW5kX2Jlc3RfZHBsbChjb25zdCBpbnRlbF9saW1pdF90 ICpsaW1pdCwgc3RydWN0Cj4gPiBpbnRlbF9jcnRjICpjcnRjLCAgfQo+ID4gCj4gPiAgc3RhdGlj IGJvb2wKPiA+IC1jaHZfZmluZF9iZXN0X2RwbGwoY29uc3QgaW50ZWxfbGltaXRfdCAqbGltaXQs IHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ID4gK2Nodl9maW5kX2Jlc3RfZHBsbChjb25zdCBp bnRlbF9saW1pdF90ICpsaW1pdCwKPiA+ICsJCSAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlLAo+ID4gIAkJICAgaW50IHRhcmdldCwgaW50IHJlZmNsaywgaW50ZWxfY2xvY2tf dCAqbWF0Y2hfY2xvY2ssCj4gPiAgCQkgICBpbnRlbF9jbG9ja190ICpiZXN0X2Nsb2NrKQo+ID4g IHsKPiA+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3Rh dGUtPmJhc2UuY3J0Yyk7Cj4gPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNl LmRldjsKPiA+ICAJaW50ZWxfY2xvY2tfdCBjbG9jazsKPiA+ICAJdWludDY0X3QgbTI7Cj4gPiBA QCAtNTcyNiw3ICs1NzU0LDcgQEAgc3RhdGljIGludCBpbnRlbF9jcnRjX2NvbXB1dGVfY29uZmln KHN0cnVjdCBpbnRlbF9jcnRjCj4gPiAqY3J0YywKPiA+ICAJICogLSBMVkRTIGR1YWwgY2hhbm5l bCBtb2RlCj4gPiAgCSAqIC0gRG91YmxlIHdpZGUgcGlwZQo+ID4gIAkgKi8KPiA+IC0JaWYgKChp bnRlbF9waXBlX3dpbGxfaGF2ZV90eXBlKGNydGMsIElOVEVMX09VVFBVVF9MVkRTKSAmJgo+ID4g KwlpZiAoKGludGVsX3BpcGVfd2lsbF9oYXZlX3R5cGUocGlwZV9jb25maWcsIElOVEVMX09VVFBV VF9MVkRTKSAmJgo+ID4gIAkgICAgIGludGVsX2lzX2R1YWxfbGlua19sdmRzKGRldikpIHx8IHBp cGVfY29uZmlnLT5kb3VibGVfd2lkZSkKPiA+ICAJCXBpcGVfY29uZmlnLT5waXBlX3NyY193ICY9 IH4xOwo+ID4gCj4gPiBAQCAtNTkwNSwxNSArNTkzMywxOCBAQCBzdGF0aWMgaW5saW5lIGJvb2wg aW50ZWxfcGFuZWxfdXNlX3NzYyhzdHJ1Y3QKPiA+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQo+ID4gIAkJJiYgIShkZXZfcHJpdi0+cXVpcmtzICYgUVVJUktfTFZEU19TU0NfRElTQUJMRSk7 ICB9Cj4gPiAKPiA+IC1zdGF0aWMgaW50IGk5eHhfZ2V0X3JlZmNsayhzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YywgaW50IG51bV9jb25uZWN0b3JzKQo+ID4gK3N0YXRpYyBpbnQgaTl4eF9nZXRfcmVm Y2xrKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ID4gKwkJCSAg IGludCBudW1fY29ubmVjdG9ycykKPiA+ICB7Cj4gPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBjcnRjLT5iYXNlLmRldjsKPiA+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGNfc3Rh dGUtPmJhc2UuY3J0Yy0+ZGV2Owo+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ID4gIAlpbnQgcmVmY2xrOwo+ID4gCj4gPiArCVdBUk5f T04oIWNydGNfc3RhdGUtPmJhc2Uuc3RhdGUpOwo+ID4gKwo+ID4gIAlpZiAoSVNfVkFMTEVZVklF VyhkZXYpKSB7Cj4gPiAgCQlyZWZjbGsgPSAxMDAwMDA7Cj4gPiAtCX0gZWxzZSBpZiAoaW50ZWxf cGlwZV93aWxsX2hhdmVfdHlwZShjcnRjLCBJTlRFTF9PVVRQVVRfTFZEUykgJiYKPiA+ICsJfSBl bHNlIGlmIChpbnRlbF9waXBlX3dpbGxfaGF2ZV90eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBV VF9MVkRTKQo+ID4gJiYKPiA+ICAJICAgIGludGVsX3BhbmVsX3VzZV9zc2MoZGV2X3ByaXYpICYm IG51bV9jb25uZWN0b3JzIDwgMikgewo+ID4gIAkJcmVmY2xrID0gZGV2X3ByaXYtPnZidC5sdmRz X3NzY19mcmVxOwo+ID4gIAkJRFJNX0RFQlVHX0tNUygidXNpbmcgU1NDIHJlZmVyZW5jZSBjbG9j ayBvZiAlZCBrSHpcbiIsCj4gPiByZWZjbGspOyBAQCAtNTk1Niw3ICs1OTg3LDcgQEAgc3RhdGlj IHZvaWQgaTl4eF91cGRhdGVfcGxsX2RpdmlkZXJzKHN0cnVjdAo+ID4gaW50ZWxfY3J0YyAqY3J0 YywKPiA+ICAJY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZS5mcDAgPSBmcDsKPiA+IAo+ID4gIAlj cnRjLT5sb3dmcmVxX2F2YWlsID0gZmFsc2U7Cj4gPiAtCWlmIChpbnRlbF9waXBlX3dpbGxfaGF2 ZV90eXBlKGNydGMsIElOVEVMX09VVFBVVF9MVkRTKSAmJgo+ID4gKwlpZiAoaW50ZWxfcGlwZV93 aWxsX2hhdmVfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRfTFZEUykgJiYKPiA+ICAJICAg IHJlZHVjZWRfY2xvY2sgJiYgaTkxNS5wb3dlcnNhdmUpIHsKPiA+ICAJCWNydGNfc3RhdGUtPmRw bGxfaHdfc3RhdGUuZnAxID0gZnAyOwo+ID4gIAkJY3J0Yy0+bG93ZnJlcV9hdmFpbCA9IHRydWU7 Cj4gPiBAQCAtNjMxNCw2ICs2MzQ1LDcgQEAgdm9pZCB2bHZfZm9yY2VfcGxsX29uKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIGVudW0KPiA+IHBpcGUgcGlwZSwKPiA+ICAJc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPQo+ID4gIAkJdG9faW50ZWxfY3J0YyhpbnRlbF9nZXRfY3J0Y19mb3JfcGlwZShk ZXYsIHBpcGUpKTsKPiA+ICAJc3RydWN0IGludGVsX2NydGNfc3RhdGUgcGlwZV9jb25maWcgPSB7 Cj4gPiArCQkuYmFzZS5jcnRjID0gJmNydGMtPmJhc2UsCj4gPiAgCQkucGl4ZWxfbXVsdGlwbGll ciA9IDEsCj4gPiAgCQkuZHBsbCA9ICpkcGxsLAo+ID4gIAl9Owo+ID4gQEAgLTYzNTgsMTIgKzYz OTAsMTIgQEAgc3RhdGljIHZvaWQgaTl4eF91cGRhdGVfcGxsKHN0cnVjdCBpbnRlbF9jcnRjICpj cnRjLAo+ID4gCj4gPiAgCWk5eHhfdXBkYXRlX3BsbF9kaXZpZGVycyhjcnRjLCBjcnRjX3N0YXRl LCByZWR1Y2VkX2Nsb2NrKTsKPiA+IAo+ID4gLQlpc19zZHZvID0gaW50ZWxfcGlwZV93aWxsX2hh dmVfdHlwZShjcnRjLCBJTlRFTF9PVVRQVVRfU0RWTykgfHwKPiA+IC0JCWludGVsX3BpcGVfd2ls bF9oYXZlX3R5cGUoY3J0YywgSU5URUxfT1VUUFVUX0hETUkpOwo+ID4gKwlpc19zZHZvID0gaW50 ZWxfcGlwZV93aWxsX2hhdmVfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRfU0RWTykKPiA+ IHx8Cj4gPiArCQlpbnRlbF9waXBlX3dpbGxfaGF2ZV90eXBlKGNydGNfc3RhdGUsIElOVEVMX09V VFBVVF9IRE1JKTsKPiA+IAo+ID4gIAlkcGxsID0gRFBMTF9WR0FfTU9ERV9ESVM7Cj4gPiAKPiA+ IC0JaWYgKGludGVsX3BpcGVfd2lsbF9oYXZlX3R5cGUoY3J0YywgSU5URUxfT1VUUFVUX0xWRFMp KQo+ID4gKwlpZiAoaW50ZWxfcGlwZV93aWxsX2hhdmVfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9P VVRQVVRfTFZEUykpCj4gPiAgCQlkcGxsIHw9IERQTExCX01PREVfTFZEUzsKPiA+ICAJZWxzZQo+ ID4gIAkJZHBsbCB8PSBEUExMQl9NT0RFX0RBQ19TRVJJQUw7Cj4gPiBAQCAtNjQwNiw3ICs2NDM4 LDcgQEAgc3RhdGljIHZvaWQgaTl4eF91cGRhdGVfcGxsKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRj LAo+ID4gCj4gPiAgCWlmIChjcnRjX3N0YXRlLT5zZHZvX3R2X2Nsb2NrKQo+ID4gIAkJZHBsbCB8 PSBQTExfUkVGX0lOUFVUX1RWQ0xLSU5CQzsKPiA+IC0JZWxzZSBpZiAoaW50ZWxfcGlwZV93aWxs X2hhdmVfdHlwZShjcnRjLCBJTlRFTF9PVVRQVVRfTFZEUykgJiYKPiA+ICsJZWxzZSBpZiAoaW50 ZWxfcGlwZV93aWxsX2hhdmVfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRfTFZEUykgJiYK PiA+ICAJCSBpbnRlbF9wYW5lbF91c2Vfc3NjKGRldl9wcml2KSAmJiBudW1fY29ubmVjdG9ycyA8 IDIpCj4gPiAgCQlkcGxsIHw9IFBMTEJfUkVGX0lOUFVUX1NQUkVBRFNQRUNUUlVNSU47Cj4gPiAg CWVsc2UKPiA+IEBAIC02NDM2LDcgKzY0NjgsNyBAQCBzdGF0aWMgdm9pZCBpOHh4X3VwZGF0ZV9w bGwoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gPiAKPiA+ICAJZHBsbCA9IERQTExfVkdBX01P REVfRElTOwo+ID4gCj4gPiAtCWlmIChpbnRlbF9waXBlX3dpbGxfaGF2ZV90eXBlKGNydGMsIElO VEVMX09VVFBVVF9MVkRTKSkgewo+ID4gKwlpZiAoaW50ZWxfcGlwZV93aWxsX2hhdmVfdHlwZShj cnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRfTFZEUykpIHsKPiA+ICAJCWRwbGwgfD0gKDEgPDwgKGNs b2NrLT5wMSAtIDEpKSA8PAo+ID4gRFBMTF9GUEEwMV9QMV9QT1NUX0RJVl9TSElGVDsKPiA+ICAJ fSBlbHNlIHsKPiA+ICAJCWlmIChjbG9jay0+cDEgPT0gMikKPiA+IEBAIC02NDQ3LDEwICs2NDc5 LDEwIEBAIHN0YXRpYyB2b2lkIGk4eHhfdXBkYXRlX3BsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YywKPiA+ICAJCQlkcGxsIHw9IFBMTF9QMl9ESVZJREVfQllfNDsKPiA+ICAJfQo+ID4gCj4gPiAt CWlmICghSVNfSTgzMChkZXYpICYmIGludGVsX3BpcGVfd2lsbF9oYXZlX3R5cGUoY3J0YywKPiA+ IElOVEVMX09VVFBVVF9EVk8pKQo+ID4gKwlpZiAoIUlTX0k4MzAoZGV2KSAmJiBpbnRlbF9waXBl X3dpbGxfaGF2ZV90eXBlKGNydGNfc3RhdGUsCj4gPiArSU5URUxfT1VUUFVUX0RWTykpCj4gPiAg CQlkcGxsIHw9IERQTExfRFZPXzJYX01PREU7Cj4gPiAKPiA+IC0JaWYgKGludGVsX3BpcGVfd2ls bF9oYXZlX3R5cGUoY3J0YywgSU5URUxfT1VUUFVUX0xWRFMpICYmCj4gPiArCWlmIChpbnRlbF9w aXBlX3dpbGxfaGF2ZV90eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9MVkRTKSAmJgo+ID4g IAkJIGludGVsX3BhbmVsX3VzZV9zc2MoZGV2X3ByaXYpICYmIG51bV9jb25uZWN0b3JzIDwgMikK PiA+ICAJCWRwbGwgfD0gUExMQl9SRUZfSU5QVVRfU1BSRUFEU1BFQ1RSVU1JTjsKPiA+ICAJZWxz ZQo+ID4gQEAgLTY2ODcsNyArNjcxOSw3IEBAIHN0YXRpYyBpbnQgaTl4eF9jcnRjX2NvbXB1dGVf Y2xvY2soc3RydWN0IGludGVsX2NydGMKPiA+ICpjcnRjLAo+ID4gIAkJcmV0dXJuIDA7Cj4gPiAK PiA+ICAJaWYgKCFjcnRjX3N0YXRlLT5jbG9ja19zZXQpIHsKPiA+IC0JCXJlZmNsayA9IGk5eHhf Z2V0X3JlZmNsayhjcnRjLCBudW1fY29ubmVjdG9ycyk7Cj4gPiArCQlyZWZjbGsgPSBpOXh4X2dl dF9yZWZjbGsoY3J0Y19zdGF0ZSwgbnVtX2Nvbm5lY3RvcnMpOwo+ID4gCj4gPiAgCQkvKgo+ID4g IAkJICogUmV0dXJucyBhIHNldCBvZiBkaXZpc29ycyBmb3IgdGhlIGRlc2lyZWQgdGFyZ2V0IGNs b2NrIHdpdGggQEAKPiA+IC02Njk1LDggKzY3MjcsOCBAQCBzdGF0aWMgaW50IGk5eHhfY3J0Y19j b21wdXRlX2Nsb2NrKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ID4gIAkJICogdGhlIGNsb2Nr IGVxdWF0aW9uOiByZWZsY2sgKiAoNSAqIChtMSArIDIpICsgKG0yICsgMikpIC8gKG4gKwo+ID4g IAkJICogMikgLyBwMSAvIHAyLgo+ID4gIAkJICovCj4gPiAtCQlsaW1pdCA9IGludGVsX2xpbWl0 KGNydGMsIHJlZmNsayk7Cj4gPiAtCQlvayA9IGRldl9wcml2LT5kaXNwbGF5LmZpbmRfZHBsbChs aW1pdCwgY3J0YywKPiA+ICsJCWxpbWl0ID0gaW50ZWxfbGltaXQoY3J0Y19zdGF0ZSwgcmVmY2xr KTsKPiA+ICsJCW9rID0gZGV2X3ByaXYtPmRpc3BsYXkuZmluZF9kcGxsKGxpbWl0LCBjcnRjX3N0 YXRlLAo+ID4gIAkJCQkJCSBjcnRjX3N0YXRlLT5wb3J0X2Nsb2NrLAo+ID4gIAkJCQkJCSByZWZj bGssIE5VTEwsICZjbG9jayk7Cj4gPiAgCQlpZiAoIW9rKSB7Cj4gPiBAQCAtNjcxMiw3ICs2NzQ0 LDcgQEAgc3RhdGljIGludCBpOXh4X2NydGNfY29tcHV0ZV9jbG9jayhzdHJ1Y3QgaW50ZWxfY3J0 Ywo+ID4gKmNydGMsCj4gPiAgCQkJICogd2Ugd2lsbCBkaXNhYmxlIHRoZSBMVkRTIGRvd25jbG9j ayBmZWF0dXJlLgo+ID4gIAkJCSAqLwo+ID4gIAkJCWhhc19yZWR1Y2VkX2Nsb2NrID0KPiA+IC0J CQkJZGV2X3ByaXYtPmRpc3BsYXkuZmluZF9kcGxsKGxpbWl0LCBjcnRjLAo+ID4gKwkJCQlkZXZf cHJpdi0+ZGlzcGxheS5maW5kX2RwbGwobGltaXQsIGNydGNfc3RhdGUsCj4gPiAgCQkJCQkJCSAg ICBkZXZfcHJpdi0KPiA+ID5sdmRzX2Rvd25jbG9jaywKPiA+ICAJCQkJCQkJICAgIHJlZmNsaywg JmNsb2NrLAo+ID4gIAkJCQkJCQkgICAgJnJlZHVjZWRfY2xvY2spOwo+ID4gQEAgLTc1NDAsMTIg Kzc1NzIsMTEgQEAgc3RhdGljIGJvb2wgaXJvbmxha2VfY29tcHV0ZV9jbG9ja3Moc3RydWN0Cj4g PiBkcm1fY3J0YyAqY3J0YywgIHsKPiA+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMt PmRldjsKPiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKPiA+IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9j cnRjKGNydGMpOwo+ID4gIAlpbnQgcmVmY2xrOwo+ID4gIAljb25zdCBpbnRlbF9saW1pdF90ICps aW1pdDsKPiA+ICAJYm9vbCByZXQsIGlzX2x2ZHMgPSBmYWxzZTsKPiA+IAo+ID4gLQlpc19sdmRz ID0gaW50ZWxfcGlwZV93aWxsX2hhdmVfdHlwZShpbnRlbF9jcnRjLCBJTlRFTF9PVVRQVVRfTFZE Uyk7Cj4gPiArCWlzX2x2ZHMgPSBpbnRlbF9waXBlX3dpbGxfaGF2ZV90eXBlKGNydGNfc3RhdGUs IElOVEVMX09VVFBVVF9MVkRTKTsKPiA+IAo+ID4gIAlyZWZjbGsgPSBpcm9ubGFrZV9nZXRfcmVm Y2xrKGNydGMpOwo+ID4gCj4gPiBAQCAtNzU1NCw4ICs3NTg1LDggQEAgc3RhdGljIGJvb2wgaXJv bmxha2VfY29tcHV0ZV9jbG9ja3Moc3RydWN0IGRybV9jcnRjCj4gPiAqY3J0YywKPiA+ICAJICog cmVmY2xrLCBvciBGQUxTRS4gIFRoZSByZXR1cm5lZCB2YWx1ZXMgcmVwcmVzZW50IHRoZSBjbG9j ayBlcXVhdGlvbjoKPiA+ICAJICogcmVmbGNrICogKDUgKiAobTEgKyAyKSArIChtMiArIDIpKSAv IChuICsgMikgLyBwMSAvIHAyLgo+ID4gIAkgKi8KPiA+IC0JbGltaXQgPSBpbnRlbF9saW1pdChp bnRlbF9jcnRjLCByZWZjbGspOwo+ID4gLQlyZXQgPSBkZXZfcHJpdi0+ZGlzcGxheS5maW5kX2Rw bGwobGltaXQsIGludGVsX2NydGMsCj4gPiArCWxpbWl0ID0gaW50ZWxfbGltaXQoY3J0Y19zdGF0 ZSwgcmVmY2xrKTsKPiA+ICsJcmV0ID0gZGV2X3ByaXYtPmRpc3BsYXkuZmluZF9kcGxsKGxpbWl0 LCBjcnRjX3N0YXRlLAo+ID4gIAkJCQkJICBjcnRjX3N0YXRlLT5wb3J0X2Nsb2NrLAo+ID4gIAkJ CQkJICByZWZjbGssIE5VTEwsIGNsb2NrKTsKPiA+ICAJaWYgKCFyZXQpCj4gPiBAQCAtNzU2OSw3 ICs3NjAwLDcgQEAgc3RhdGljIGJvb2wgaXJvbmxha2VfY29tcHV0ZV9jbG9ja3Moc3RydWN0IGRy bV9jcnRjCj4gPiAqY3J0YywKPiA+ICAJCSAqIGRvd25jbG9jayBmZWF0dXJlLgo+ID4gIAkJKi8K PiA+ICAJCSpoYXNfcmVkdWNlZF9jbG9jayA9Cj4gPiAtCQkJZGV2X3ByaXYtPmRpc3BsYXkuZmlu ZF9kcGxsKGxpbWl0LCBpbnRlbF9jcnRjLAo+ID4gKwkJCWRldl9wcml2LT5kaXNwbGF5LmZpbmRf ZHBsbChsaW1pdCwgY3J0Y19zdGF0ZSwKPiA+ICAJCQkJCQkgICAgZGV2X3ByaXYtPmx2ZHNfZG93 bmNsb2NrLAo+ID4gIAkJCQkJCSAgICByZWZjbGssIGNsb2NrLAo+ID4gIAkJCQkJCSAgICByZWR1 Y2VkX2Nsb2NrKTsKPiA+IC0tCj4gPiAyLjEuMAo+IAoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==