From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH v7 1/6] drm/i915: Fallback to lower link rate and lane count during link training Date: Wed, 28 Sep 2016 23:41:50 -0700 Message-ID: <20160929064150.GA13161@intel.com> References: <1473984244-4349-2-git-send-email-manasi.d.navare@intel.com> <1474051514-5811-1-git-send-email-manasi.d.navare@intel.com> <87twd2kcfd.fsf@intel.com> <20160927152502.GA18889@intel.com> <8737klp8zu.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7451C6E0CD for ; Thu, 29 Sep 2016 06:41:09 +0000 (UTC) Content-Disposition: inline In-Reply-To: <8737klp8zu.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBTZXAgMjcsIDIwMTYgYXQgMDg6MDc6MDFQTSArMDMwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gT24gVHVlLCAyNyBTZXAgMjAxNiwgTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJl QGludGVsLmNvbT4gd3JvdGU6Cj4gPiBPbiBNb24sIFNlcCAyNiwgMjAxNiBhdCAwNDozOTozNFBN ICswMzAwLCBKYW5pIE5pa3VsYSB3cm90ZToKPiA+PiBPbiBGcmksIDE2IFNlcCAyMDE2LCBNYW5h c2kgTmF2YXJlIDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPiB3cm90ZToKPiA+PiA+IEFjY29y ZGluZyB0byB0aGUgRGlzcGxheVBvcnQgU3BlYywgaW4gY2FzZSBvZiBDbG9jayBSZWNvdmVyeSBm YWlsdXJlCj4gPj4gPiB0aGUgbGluayB0cmFpbmluZyBzZXF1ZW5jZSBzaG91bGQgZmFsbCBiYWNr IHRvIHRoZSBsb3dlciBsaW5rIHJhdGUKPiA+PiA+IGZvbGxvd2VkIGJ5IGxvd2VyIGxhbmUgY291 bnQgdW50aWwgQ1Igc3VjY2VlZHMuCj4gPj4gPiBPbiBDUiBzdWNjZXNzLCB0aGUgc2VxdWVuY2Ug cHJvY2VlZHMgd2l0aCBDaGFubmVsIEVRLgo+ID4+ID4gSW4gY2FzZSBvZiBDaGFubmVsIEVRIGZh aWx1cmVzLCBpdCBzaG91bGQgZmFsbGJhY2sgdG8KPiA+PiA+IGxvd2VyIGxpbmsgcmF0ZSBhbmQg bGFuZSBjb3VudCBhbmQgc3RhcnQgdGhlIENSIHBoYXNlIGFnYWluLgo+ID4+IAo+ID4+IFRoaXMg Y2hhbmdlIG1ha2VzIHRoZSBsaW5rIHRyYWluaW5nIHN0YXJ0IGF0IHRoZSBtYXggbGFuZSBjb3Vu dCBhbmQgbWF4Cj4gPj4gbGluayByYXRlLiBUaGlzIGlzIG5vdCBpZGVhbCwgYXMgaXQgd2FzdGVz IHRoZSBsaW5rLiBBbmQgaXQgaXMgbm90IGEKPiA+PiBzcGVjIHJlcXVpcmVtZW50LiAiVGhlIExp bmsgUG9saWN5IE1ha2VyIG9mIHRoZSB1cHN0cmVhbSBkZXZpY2UgbWF5Cj4gPj4gY2hvb3NlIGFu eSBsaW5rIGNvdW50IGFuZCBsaW5rIHJhdGUgYXMgbG9uZyBhcyB0aGV5IGRvIG5vdCBleGNlZWQg dGhlCj4gPj4gY2FwYWJpbGl0aWVzIG9mIHRoZSBEUCByZWNlaXZlci4iCj4gPj4gCj4gPj4gT3Vy IGN1cnJlbnQgY29kZSBzdGFydHMgYXQgdGhlIG1pbmltdW0gcmVxdWlyZWQgYmFuZHdpZHRoIGZv ciB0aGUgbW9kZSwKPiA+PiB0aGVyZWZvcmUgd2UgY2FuJ3QgZmFsbCBiYWNrIHRvIGxvd2VyIGxp bmsgcmF0ZSBhbmQgbGFuZSBjb3VudCB3aXRob3V0Cj4gPj4gcmVkdWNpbmcgdGhlIG1vZGUuCj4g Pj4gCj4gPj4gQUZBSUNUIHRoaXMgcGF0Y2ggaGVyZSBtYWtlcyBpdCBwb3NzaWJsZSBmb3IgdGhl IGxpbmsgYmFuZHdpZHRoIHRvIGRyb3AKPiA+PiBiZWxvdyB3aGF0IGlzIHJlcXVpcmVkIGZvciB0 aGUgbW9kZS4gVGhpcyBpcyB1bmFjY2VwdGFibGUuCj4gPj4gCj4gPj4gQlIsCj4gPj4gSmFuaS4K PiA+PiAKPiA+Pgo+ID4KPiA+IFRoYW5rcyBKYW5pIGZvciB5b3VyIHJldmlldyBjb21tZW50cy4K PiA+IFllcyBpbiB0aGlzIGNoYW5nZSB3ZSBzdGFydCBhdCB0aGUgbWF4IGxpbmsgcmF0ZSBhbmQg bGFuZSBjb3VudC4gVGhpcwo+ID4gY2hhbmdlIHdhcyBtYWRlIGFjY29yZGluZyB0byB0aGUgZGVz aWduIGRvY3VtZW50IGRpc2N1c3Npb25zIHdlIGhhZAo+ID4gYmVmb3JlIHN0cmF0aW5nIHRoaXMg RFAgUmVkZXNpZ24gcHJvamVjdC4gVGhlIG1haW4gcmVhc29uIGZvciBzdGFydGluZwo+ID4gYXQg dGhlIG1heGxpbmsgcmF0ZSBhbmQgbWF4IGxhbmUgY291bnQgd2FzIGZvciBlbnN1cmluZyBwcm9w ZXIKPiA+IGJlaGF2aW9yIG9mIERQIE1TVC4gSW4gY2FzZSBvZiBEUCBNU1QsIHdlIHdhbnQgdG8g dHJhaW4gdGhlIGxpbmsgYXQKPiA+IHRoZSBtYXhpbXVtIHN1cHBvcnRlZCBsaW5rIHJhdGUvbGFu ZSBjb3VudCBiYXNlZCBvbiBhbiBlYXJseS8gdXBmcm9udAo+ID4gbGluayB0cmFpbmluZyByZXN1 bHQgc28gdGhhdCB3ZSBkb250IGZhaWwgd2hlbiB3ZSB0cnkgdG8gY29ubmVjdCBhCj4gPiBoaWdo ZXIgcmVzb2x1dGlvbiBtb25pdG9yIGFzIGEgc2Vjb25kIG1vbml0b3IuIFRoaXMgYSB0cmFkZSBv ZmYKPiA+IGJldHdlZW4gd3N0aW5nIHRoZSBsaW5rIG9yIGhpZ2hlciBwb3dlciB2cy4gbmVlZGlu ZyB0byByZXRyYWluIGZvcgo+ID4gZXZlcnkgbW9uaXRvciB0aGF0IHJlcXVlc3RzIGEgaGlnaGVy IEJXIGluIGNhc2Ugb2YgRFAgTVNULgo+IAo+IFdlIGFscmVhZHkgdHJhaW4gYXQgbWF4IGJhbmR3 aWR0aCBmb3IgRFAgTVNULCB3aGljaCBzZWVtcyB0byBiZSB0aGUKPiBzZW5zaWJsZSB0aGluZyB0 byBkby4KPiAKPiA+IEFjdHVhbGx5IHRoaXMgaXMgYWxzbyB0aGUgcmVhc29uIGZvciBlbmFibGlu ZyB1cGZyb250IGxpbmsgdHJhaW5pbmcgaW4KPiA+IHRoZSBmb2xsb3dpbmcgcGF0Y2ggd2hlcmUg d2UgdHJhaW4gdGhlIGxpbmsgbXVjaCBhaGVhZCBpbiB0aGUgbW9kZXNldAo+ID4gc2VxdWVuY2Ug dG8gdW5kZXJzdGFuZCB0aGUgbGluayByYXRlIGFuZCBsYW5lIGNvdW50IHZhbHVlcyBhdCB3aGlj aAo+ID4gdGhlIGxpbmsgY2FuIGJlIHN1Y2Nlc3NmdWxseSB0cmFpbmVkIGFuZCB0aGVuIHRoZSBs aW5rIHRyYWluaW5nCj4gPiB0aHJvdWdoIG1vZGVzZXQgd2lsbCBhbHdheXMgc3RhcnQgYXQgdGhl IHVwZnJvbnQgdmFsdWVzIChtYXhpbXVtCj4gPiBzdXBwb3J0ZWQgdmFsdWVzIG9mIGxhbmUgY291 bnQgYW5kIGxpbmsgcmF0ZSBiYXNlZCBvbiB1cGZyb250IGxpbmsKPiA+IHRyYWluaW5nKS4KPiAK PiBJIGRvbid0IHNlZSBhIG5lZWQgdG8gZG8gdGhpcyBmb3IgRFAgU1NULgo+IAo+ID4gQXMgcGVy IHRoZSBDVFMsIGFsbCB0aGUgdGVzdCA0LjMuMS40IHJlcXVpcmVzIHRoYXQgeW91IGZhbGwgYmFj ayB0bwo+ID4gdGhlIGxvd2VyIGxpbmsgcmF0ZSBhZnRlciB0cnlpbmcgdG8gdHJhaW4gYXQgdGhl IG1heGltdW0gbGluayByYXRlCj4gPiBhZHZlcnRpc2VkIHRocm91Z2ggdGhlIERQQ0QgcmVnaXN0 ZXJzLgo+IAo+IFRoYXQgdGVzdCBkb2VzIG5vdCByZXF1aXJlIHRoZSBzb3VyY2UgRFVUIHRvIGRl ZmF1bHQgdG8gbWF4aW11bSBsYW5lCj4gY291bnQgb3IgbGluayByYXRlIG9mIHRoZSBzaW5rLiBU aGUgc291cmNlIG1heSBmcmVlbHkgY2hvb3NlIHRoZSBsYW5lCj4gY291bnQgYW5kIGxpbmsgcmF0 ZSBhcyBsb25nIGFzIHRoZXkgZG9uJ3QgZXhjZWVkIHNpbmsgY2FwYWJpbGl0aWVzLgo+IAo+IEZv ciB0aGUgcHVycG9zZXMgb2YgdGhlIHRlc3QsIHRoZSB0ZXN0IHNldHVwIGNhbiByZXF1ZXN0IHNw ZWNpZmljCj4gcGFyYW1ldGVycyB0byBiZSB1c2VkLCBidXQgdGhhdCBkb2VzIG5vdCBtZWFuIHVz aW5nIG1heGltdW0gYnkKPiAqZGVmYXVsdCouCj4gCj4gV2UgY3VycmVudGx5IGxhY2sgdGhlIGZl YXR1cmUgdG8gcmVkdWNlIGxhbmUgY291bnQgYW5kIGxpbmsgcmF0ZS4gVGhlCj4ga2V5IHRvIHVu ZGVyc3RhbmQgaGVyZSBpcyB0aGF0IHN0YXJ0aW5nIGF0IG1heCBhbmQgcmVkdWNpbmcgZG93biB0 byB0aGUKPiBzdWZmaWNpZW50IHBhcmFtZXRlcnMgZm9yIHRoZSBtb2RlICh3aGljaCBpcyB3aGVy ZSB3ZSBzdGFydCBub3cpIG9mZmVycwo+IG5vIHJlYWwgYmVuZWZpdCBmb3IgYW55IHVzZSBjYXNl LiBXaGF0IHdlJ3JlIGxhY2tpbmcgaXMgYSBmZWF0dXJlIHRvCj4gcmVkdWNlIHRoZSBsaW5rIHBh cmFtZXRlcnMgKmJlbG93KiB3aGF0J3MgcmVxdWlyZWQgYnkgdGhlIG1vZGUgdGhlCj4gdXNlcnNw YWNlIHdhbnRzLiBUaGlzIGNhbiBvbmx5IGJlIGFjaGlldmVkIHRocm91Z2ggY29vcGVyYXRpb24g d2l0aAo+IHVzZXJzcGFjZS4KPiAKCldlIGNhbiB0cmFpbiBhdCB0aGUgb3B0aW1hbCBsaW5rIHJh dGUgcmVxdWlyZWQgZm9yIHRoZSByZXF1ZXN0ZWQgbW9kZSBhcwpkb25lIGluIHRoZSBleGlzdGlu ZyBpbXBsZW1lbnRhdGlvbiBhbmQgcmV0cmFpbiB3aGVuZXZlciB0aGUgbGluayB0cmFpbmluZwp0 ZXN0IHJlcXVlc3QgaXMgc2VudC4gCkZvciB0aGUgdGVzdCA0LjMuMS40IGluIENUUywgaXQgZG9l cyBmb3JjZSBhIGZhaWx1cmUgaW4gQ1IgYW5kIGV4cGVjdHMgdGhlCmRyaXZlciB0byBmYWxsIGJh Y2sgdG8gZXZlbiBsb3dlciBsaW5rIHJhdGUuIFdlIGRvIG5vdCBpbXBsZW1lbnQgdGhpcyBpbiB0 aGUKY3VycmVudCBkcml2ZXIgYW5kIHNvIHRoaXMgdGVzdCBmYWlscy4gQ291bGQgeW91IGVsYWJv cmF0ZSBvbiBob3cgdGhpcyBjYW4KYmUgYWNoaWV2ZWQgd2l0aCB0aGUgdGhlIGNvb3BlcmF0aW9u IHdpdGggdXNlcnNwYWNlPwpTaG91bGQgd2Ugc2VuZCBhIHVldmVudCB0byB0aGUgdXNlcnNwYWNl IGFza2luZyB0byByZXRyeSBhdCBhIGxvd2VyIHJlc29sdXRpb24KYWZ0ZXIgcmV0cmFpbmluZyBh dCB0aGUgbG93ZXIgbGluayByYXRlPwpUaGlzIGlzIHBlcnR0eSBtdWNoIHRoZSBwbGFjZSB3aGVy ZSBtYWpvcml0eSBvZiB0aGUgY29tcGxpYW5jZSB0ZXN0cyBhcmUgZmFpbGluZy4KSG93IGNhbiB3 ZSBwYXNzIGNvbXBsaWFuY2Ugd2l0aCByZWdhcmRzIHRvIHRoaXMgZmVhdHVyZT8KClJlZ2FyZHMK TWFuYXNpIAo+ID4gVGhpcyB3aWxsIG5vdCBkcm9wIHRoZSBsaW5rIEJXIHRvIGEgbnVtYmVyIGJl bG93IHdoYXQgaXMgcmVxdWlyZWQgZm9yCj4gPiB0aGUgbW9kZSBiZWNhdXNlIHRoZSByZXF1ZXN0 ZWQgbW9kZXMgYXJlIHBydW5lZCBvciB2YWxpZGF0ZWQgaW4KPiA+IGludGVsX2RwX21vZGVfdmFs aWQgYmFzZWQgb24gdGhlIHVwZnJvbnQgbGluayB0cmFpbmluZyByZXN1bHRzIGluIHRoZQo+ID4g Zm9sbG93aW5nIHBhdGNoLiBBbmQgdGhlc2UgdmFsdWVzIGFyZSB1c2VkIGhlcmUgYXMgdGhlIHN0 YXJ0aW5nIHZhbHVlcwo+ID4gb2YgbGluayByYXRlIGFuZCBsYW5lIGNvdW50Lgo+IAo+IEVhY2gg cGF0Y2ggbXVzdCBiZSBhIHdvcnRod2hpbGUgY2hhbmdlIG9uIGl0cyBvd24uIEJ5IG15IHJlYWRp bmcgb2YgdGhpcwo+IHBhdGNoLCB3ZSBjYW4gZ28gdW5kZXIgdGhlIHJlcXVpcmVkIGJhbmR3aWR0 aC4gWW91IGNhbid0IGp1c3RpZnkgdGhhdCBieQo+IHNheWluZyB0aGUgZm9sbG93LXVwIHBhdGNo IGZpeGVzIGl0Lgo+IAo+ID4gSSBhbG1vc3QgZmVlbCB0aGF0IHRoZSB1cGZyb250IGxpbmsgdHJh aW5pbmcgcGF0Y2ggYW5kIHRoaXMgcGF0Y2ggc2hvdWxkIGJlIAo+ID4gY29tYmluZWQgc28gdGhh dCBpbnNlYWQgb2Ygc3RhcnRpbmcgZnJvbSB0aGUgbWF4IGxpbmsgcmF0ZSBhbmQgbGFuZSBjb3Vu dCBpdAo+ID4gaXMgY2xlYXIgdGhhdCB3ZSBhcmUgc3RhcnRpbmcgZnJvbSB0aGUgdXBmcm9udCB2 YWx1ZXMuCj4gCj4gSSBhbSBzdGlsbCByZWFkaW5nIGFuZCBnYXRoZXJpbmcgbW9yZSBmZWVkYmFj ayBvbiB0aGUgdXBmcm9udCBsaW5rCj4gdHJhaW5pbmcgcGF0Y2guIEkgd2lsbCBnZXQgYmFjayB0 byB5b3UuIEJ1dCB0aGUgaW1wcmVzc2lvbiBJJ20gY3VycmVudGx5Cj4gZ2V0dGluZyBpcyB0aGF0 IHdlIGNhbid0IGRvIHRoaXMuIFRoZSB1cGZyb250IGxpbmsgdHJhaW5pbmcgcGF0Y2ggd2FzCj4g b3JpZ2luYWxseSB3cml0dGVuIGZvciBVU0IgdHlwZSBDLiBCdXQgaWYgRFAgY29tcGxpYW5jZSBo YXMgcHJpb3JpdHksCj4gdGhlIG9yZGVyIG9mIGJ1c2luZXNzIHNob3VsZCBiZSBnZXR0aW5nIGNv bXBsaWFuY2Ugd2l0aG91dCB1cGZyb250IGxpbmsKPiB0cmFpbmluZy4gSSBhbSBhbHNvIHN0aWxs IG5vdCBjb252aW5jZWQgdXBmcm9udCBsaW5rIHRyYWluaW5nIGlzCj4gcmVxdWlyZWQgZm9yIGNv bXBsaWFuY2UuCj4gCj4gVG8gYmUgY29udGludWVkLi4uCj4gCj4gQlIsCj4gSmFuaS4KPiAKPiAK PiAKPiA+Cj4gPiBSZWdhcmRzLAo+ID4gTWFuYXNpIAo+ID4+ID4KPiA+PiA+IHY3Ogo+ID4+ID4g KiBBZGRyZXNzIHJlYWRhYmlsaXR5IGNvbmNlcm5zIChNaWthIEthaG9sYSkKPiA+PiA+IHY2Ogo+ ID4+ID4gKiBEbyBub3Qgc3BsaXQgcXVvdGVkIHN0cmluZyBhY3Jvc3MgbGluZSAoTWlrYSBLYWhv bGEpCj4gPj4gPiB2NToKPiA+PiA+ICogUmVzZXQgdGhlIGxpbmsgcmF0ZSBpbmRleCB0byB0aGUg bWF4IGxpbmsgcmF0ZSBpbmRleAo+ID4+ID4gYmVmb3JlIGxvd2VyaW5nIHRoZSBsYW5lIGNvdW50 IChKYW5pIE5pa3VsYSkKPiA+PiA+ICogVXNlIHRoZSBwYXJhZGlnbSBmb3IgbG9vcCBpbiBpbnRl bF9kcF9saW5rX3JhdGVfaW5kZXgKPiA+PiA+IHY0Ogo+ID4+ID4gKiBGaXhlZCB0aGUgbGluayBy YXRlIGZhbGxiYWNrIGxvb3AgKE1hbmFzaSBOYXZhcmUpCj4gPj4gPiB2MzoKPiA+PiA+ICogRml4 ZWQgc29tZSByZWJhc2UgaXNzdWVzIChNaWthIEthaG9sYSkKPiA+PiA+IHYyOgo+ID4+ID4gKiBB ZGQgYSBoZWxwZXIgZnVuY3Rpb24gdG8gcmV0dXJuIGluZGV4IG9mIHJlcXVlc3RlZCBsaW5rIHJh dGUKPiA+PiA+IGludG8gY29tbW9uX3JhdGVzIGFycmF5Cj4gPj4gPiAqIENoYW5nZWQgdGhlIGxp bmsgcmF0ZSBmYWxsYmFjayBsb29wIHRvIG1ha2UgdXNlCj4gPj4gPiBvZiBjb21tb25fcmF0ZXMg YXJyYXkgKE1pa2EgS2Fob2xhKQo+ID4+ID4gKiBDaGFuZ2VkIElOVEVMX0lORk8gdG8gSU5URUxf R0VOIChEYXZpZCBXZWluZWhhbGwpCj4gPj4gPgo+ID4+ID4gU2lnbmVkLW9mZi1ieTogTWFuYXNp IE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KPiA+PiA+IC0tLQo+ID4+ID4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jICAgICAgICAgICAgICB8IDExMyArKysrKysr KysrKysrKysrKysrKysrKy0tLQo+ID4+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rw LmMgICAgICAgICAgICAgICB8ICAxNSArKysrCj4gPj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHBfbGlua190cmFpbmluZy5jIHwgIDEzICsrLQo+ID4+ID4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oICAgICAgICAgICAgICB8ICAgNiArLQo+ID4+ID4gIDQgZmlsZXMg Y2hhbmdlZCwgMTMzIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQo+ID4+ID4KPiA+PiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gPj4gPiBpbmRleCA4MDY1YTVmLi4wOTMwMzhjIDEw MDY0NAo+ID4+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiA+PiA+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gPj4gPiBAQCAtMTYzNywx OSArMTYzNywxOCBAQCB2b2lkIGludGVsX2RkaV9jbGtfc2VsZWN0KHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAo+ID4+ID4gIAl9Cj4gPj4gPiAgfQo+ID4+ID4gIAo+ID4+ID4gLXN0YXRp YyB2b2lkIGludGVsX2RkaV9wcmVfZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAo+ID4+ID4gK3N0YXRpYyB2b2lkIGludGVsX2RkaV9wcmVfZW5hYmxlX2VkcChzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+PiA+ICAJCQkJICAgIGludCBsaW5rX3JhdGUsIHVp bnQzMl90IGxhbmVfY291bnQsCj4gPj4gPiAtCQkJCSAgICBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2Rw bGwgKnBsbCwKPiA+PiA+IC0JCQkJICAgIGJvb2wgbGlua19tc3QpCj4gPj4gPiArCQkJCSAgICBz dHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbCkKPiA+PiA+ICB7Cj4gPj4gPiAgCXN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwo+ID4+ ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXIt PmJhc2UuZGV2KTsKPiA+PiA+ICAJZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9kZGlfZ2V0X2VuY29k ZXJfcG9ydChlbmNvZGVyKTsKPiA+PiA+ICAKPiA+PiA+ICAJaW50ZWxfZHBfc2V0X2xpbmtfcGFy YW1zKGludGVsX2RwLCBsaW5rX3JhdGUsIGxhbmVfY291bnQsCj4gPj4gPiAtCQkJCSBsaW5rX21z dCk7Cj4gPj4gPiAtCWlmIChlbmNvZGVyLT50eXBlID09IElOVEVMX09VVFBVVF9FRFApCj4gPj4g PiAtCQlpbnRlbF9lZHBfcGFuZWxfb24oaW50ZWxfZHApOwo+ID4+ID4gKwkJCQkgZmFsc2UpOwo+ ID4+ID4gKwo+ID4+ID4gKwlpbnRlbF9lZHBfcGFuZWxfb24oaW50ZWxfZHApOwo+ID4+ID4gIAo+ ID4+ID4gIAlpbnRlbF9kZGlfY2xrX3NlbGVjdChlbmNvZGVyLCBwbGwpOwo+ID4+ID4gIAlpbnRl bF9wcmVwYXJlX2RwX2RkaV9idWZmZXJzKGVuY29kZXIpOwo+ID4+ID4gQEAgLTE2NjAsNiArMTY1 OSwyOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcHJlX2VuYWJsZV9kcChzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKPiA+PiA+ICAJCWludGVsX2RwX3N0b3BfbGlua190cmFpbihpbnRl bF9kcCk7Cj4gPj4gPiAgfQo+ID4+ID4gIAo+ID4+ID4gK3N0YXRpYyB2b2lkIGludGVsX2RkaV9w cmVfZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4+ID4gKwkJCQkg ICAgaW50IGxpbmtfcmF0ZSwgdWludDMyX3QgbGFuZV9jb3VudCwKPiA+PiA+ICsJCQkJICAgIHN0 cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsLAo+ID4+ID4gKwkJCQkgICAgYm9vbCBsaW5rX21z dCkKPiA+PiA+ICt7Cj4gPj4gPiArCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9f aW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwo+ID4+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiA+PiA+ICsJc3RydWN0 IGludGVsX3NoYXJlZF9kcGxsX2NvbmZpZyB0bXBfcGxsX2NvbmZpZzsKPiA+PiA+ICsKPiA+PiA+ ICsJLyogRGlzYWJsZSB0aGUgUExMIGFuZCBvYnRhaW4gdGhlIFBMTCBmb3IgTGluayBUcmFpbmlu Zwo+ID4+ID4gKwkgKiB0aGF0IHN0YXJ0cyB3aXRoIGhpZ2hlc3QgbGluayByYXRlIGFuZCBsYW5l IGNvdW50Lgo+ID4+ID4gKwkgKi8KPiA+PiA+ICsJdG1wX3BsbF9jb25maWcgPSBwbGwtPmNvbmZp ZzsKPiA+PiA+ICsJcGxsLT5mdW5jcy5kaXNhYmxlKGRldl9wcml2LCBwbGwpOwo+ID4+ID4gKwlw bGwtPmNvbmZpZy5jcnRjX21hc2sgPSAwOwo+ID4+ID4gKwo+ID4+ID4gKwkvKiBJZiBMaW5rIFRy YWluaW5nIGZhaWxzLCBzZW5kIGEgdWV2ZW50IHRvIGdlbmVyYXRlIGEgaG90cGx1ZyAqLwo+ID4+ ID4gKwlpZiAoIWludGVsX2RkaV9saW5rX3RyYWluKGludGVsX2RwLCBsaW5rX3JhdGUsIGxhbmVf Y291bnQsIGxpbmtfbXN0KSkKPiA+PiA+ICsJCWRybV9rbXNfaGVscGVyX2hvdHBsdWdfZXZlbnQo ZW5jb2Rlci0+YmFzZS5kZXYpOwo+ID4+ID4gKwlwbGwtPmNvbmZpZyA9IHRtcF9wbGxfY29uZmln Owo+ID4+ID4gK30KPiA+PiA+ICsKPiA+PiA+ICBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcHJlX2Vu YWJsZV9oZG1pKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4+ID4gIAkJCQkgICAg ICBib29sIGhhc19oZG1pX3NpbmssCj4gPj4gPiAgCQkJCSAgICAgIHN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICphZGp1c3RlZF9tb2RlLAo+ID4+ID4gQEAgLTE2OTMsMjAgKzE3MTQsMjYgQEAgc3Rh dGljIHZvaWQgaW50ZWxfZGRpX3ByZV9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVs X2VuY29kZXIsCj4gPj4gPiAgCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhlbmNvZGVyLT5jcnRjKTsKPiA+PiA+ICAJaW50IHR5cGUgPSBpbnRlbF9lbmNvZGVyLT50eXBl Owo+ID4+ID4gIAo+ID4+ID4gLQlpZiAodHlwZSA9PSBJTlRFTF9PVVRQVVRfRFAgfHwgdHlwZSA9 PSBJTlRFTF9PVVRQVVRfRURQKSB7Cj4gPj4gPiArCWlmICh0eXBlID09IElOVEVMX09VVFBVVF9F RFApCj4gPj4gPiArCQlpbnRlbF9kZGlfcHJlX2VuYWJsZV9lZHAoaW50ZWxfZW5jb2RlciwKPiA+ PiA+ICsJCQkJCWNydGMtPmNvbmZpZy0+cG9ydF9jbG9jaywKPiA+PiA+ICsJCQkJCWNydGMtPmNv bmZpZy0+bGFuZV9jb3VudCwKPiA+PiA+ICsJCQkJCWNydGMtPmNvbmZpZy0+c2hhcmVkX2RwbGwp Owo+ID4+ID4gKwo+ID4+ID4gKwlpZiAodHlwZSA9PSBJTlRFTF9PVVRQVVRfRFApCj4gPj4gPiAg CQlpbnRlbF9kZGlfcHJlX2VuYWJsZV9kcChpbnRlbF9lbmNvZGVyLAo+ID4+ID4gIAkJCQkJY3J0 Yy0+Y29uZmlnLT5wb3J0X2Nsb2NrLAo+ID4+ID4gIAkJCQkJY3J0Yy0+Y29uZmlnLT5sYW5lX2Nv dW50LAo+ID4+ID4gIAkJCQkJY3J0Yy0+Y29uZmlnLT5zaGFyZWRfZHBsbCwKPiA+PiA+ICAJCQkJ CWludGVsX2NydGNfaGFzX3R5cGUoY3J0Yy0+Y29uZmlnLAo+ID4+ID4gIAkJCQkJCQkgICAgSU5U RUxfT1VUUFVUX0RQX01TVCkpOwo+ID4+ID4gLQl9Cj4gPj4gPiAtCWlmICh0eXBlID09IElOVEVM X09VVFBVVF9IRE1JKSB7Cj4gPj4gPiArCj4gPj4gPiArCWlmICh0eXBlID09IElOVEVMX09VVFBV VF9IRE1JKQo+ID4+ID4gIAkJaW50ZWxfZGRpX3ByZV9lbmFibGVfaGRtaShpbnRlbF9lbmNvZGVy LAo+ID4+ID4gIAkJCQkJICBjcnRjLT5jb25maWctPmhhc19oZG1pX3NpbmssCj4gPj4gPiAgCQkJ CQkgICZjcnRjLT5jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZSwKPiA+PiA+ICAJCQkJCSAgY3J0 Yy0+Y29uZmlnLT5zaGFyZWRfZHBsbCk7Cj4gPj4gPiAtCX0KPiA+PiA+ICsKPiA+PiA+ICB9Cj4g Pj4gPiAgCj4gPj4gPiAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3Bvc3RfZGlzYWJsZShzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciwKPiA+PiA+IEBAIC0yNDM1LDYgKzI0NjIsNzIg QEAgaW50ZWxfZGRpX2dldF9saW5rX2RwbGwoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50 IGNsb2NrKQo+ID4+ID4gIAlyZXR1cm4gcGxsOwo+ID4+ID4gIH0KPiA+PiA+ICAKPiA+PiA+ICti b29sCj4gPj4gPiAraW50ZWxfZGRpX2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9k cCwgaW50IG1heF9saW5rX3JhdGUsCj4gPj4gPiArCQkgICAgIHVpbnQ4X3QgbWF4X2xhbmVfY291 bnQsIGJvb2wgbGlua19tc3QpCj4gPj4gPiArewo+ID4+ID4gKwlzdHJ1Y3QgaW50ZWxfY29ubmVj dG9yICpjb25uZWN0b3IgPSBpbnRlbF9kcC0+YXR0YWNoZWRfY29ubmVjdG9yOwo+ID4+ID4gKwlz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9IGNvbm5lY3Rvci0+ZW5jb2RlcjsKPiA+PiA+ ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5i YXNlLmRldik7Cj4gPj4gPiArCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsOwo+ID4+ID4g KwlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGxfY29uZmlnIHRtcF9wbGxfY29uZmlnOwo+ID4+ID4g KwlpbnQgbGlua19yYXRlLCBtYXhfbGlua19yYXRlX2luZGV4LCBsaW5rX3JhdGVfaW5kZXg7Cj4g Pj4gPiArCXVpbnQ4X3QgbGFuZV9jb3VudDsKPiA+PiA+ICsJaW50IGNvbW1vbl9yYXRlc1tEUF9N QVhfU1VQUE9SVEVEX1JBVEVTXSA9IHt9Owo+ID4+ID4gKwlib29sIHJldCA9IGZhbHNlOwo+ID4+ ID4gKwo+ID4+ID4gKwltYXhfbGlua19yYXRlX2luZGV4ID0gaW50ZWxfZHBfbGlua19yYXRlX2lu ZGV4KGludGVsX2RwLCBjb21tb25fcmF0ZXMsCj4gPj4gPiArCQkJCQkJICAgICAgIG1heF9saW5r X3JhdGUpOwo+ID4+ID4gKwlpZiAobWF4X2xpbmtfcmF0ZV9pbmRleCA8IDApIHsKPiA+PiA+ICsJ CURSTV9FUlJPUigiSW52YWxpZCBMaW5rIFJhdGVcbiIpOwo+ID4+ID4gKwkJcmV0dXJuIGZhbHNl Owo+ID4+ID4gKwl9Cj4gPj4gPiArCj4gPj4gPiArCWZvciAobGFuZV9jb3VudCA9IG1heF9sYW5l X2NvdW50OyBsYW5lX2NvdW50ID4gMDsgbGFuZV9jb3VudCA+Pj0gMSkgewo+ID4+ID4gKwkJZm9y IChsaW5rX3JhdGVfaW5kZXggPSBtYXhfbGlua19yYXRlX2luZGV4Owo+ID4+ID4gKwkJICAgICBs aW5rX3JhdGVfaW5kZXggPj0gMDsgbGlua19yYXRlX2luZGV4LS0pIHsKPiA+PiA+ICsJCQlsaW5r X3JhdGUgPSBjb21tb25fcmF0ZXNbbGlua19yYXRlX2luZGV4XTsKPiA+PiA+ICsJCQlwbGwgPSBp bnRlbF9kZGlfZ2V0X2xpbmtfZHBsbChpbnRlbF9kcCwgbGlua19yYXRlKTsKPiA+PiA+ICsJCQlp ZiAocGxsID09IE5VTEwpIHsKPiA+PiA+ICsJCQkJRFJNX0VSUk9SKCJDb3VsZCBub3QgZmluZCBE UExMIGZvciBsaW5rIHRyYWluaW5nLlxuIik7Cj4gPj4gPiArCQkJCXJldHVybiBmYWxzZTsKPiA+ PiA+ICsJCQl9Cj4gPj4gPiArCQkJdG1wX3BsbF9jb25maWcgPSBwbGwtPmNvbmZpZzsKPiA+PiA+ ICsJCQlwbGwtPmZ1bmNzLmVuYWJsZShkZXZfcHJpdiwgcGxsKTsKPiA+PiA+ICsKPiA+PiA+ICsJ CQlpbnRlbF9kcF9zZXRfbGlua19wYXJhbXMoaW50ZWxfZHAsIGxpbmtfcmF0ZSwKPiA+PiA+ICsJ CQkJCQkgbGFuZV9jb3VudCwgbGlua19tc3QpOwo+ID4+ID4gKwo+ID4+ID4gKwkJCWludGVsX2Rk aV9jbGtfc2VsZWN0KGVuY29kZXIsIHBsbCk7Cj4gPj4gPiArCQkJaW50ZWxfcHJlcGFyZV9kcF9k ZGlfYnVmZmVycyhlbmNvZGVyKTsKPiA+PiA+ICsJCQlpbnRlbF9kZGlfaW5pdF9kcF9idWZfcmVn KGVuY29kZXIpOwo+ID4+ID4gKwkJCWludGVsX2RwX3NpbmtfZHBtcyhpbnRlbF9kcCwgRFJNX01P REVfRFBNU19PTik7Cj4gPj4gPiArCQkJcmV0ID0gaW50ZWxfZHBfc3RhcnRfbGlua190cmFpbihp bnRlbF9kcCk7Cj4gPj4gPiArCQkJaWYgKHJldCkKPiA+PiA+ICsJCQkJYnJlYWs7Cj4gPj4gPiAr Cj4gPj4gPiArCQkJLyogRGlzYWJsZSBwb3J0IGZvbGxvd2VkIGJ5IFBMTCBmb3IgbmV4dAo+ID4+ ID4gKwkJCSAqcmV0cnkvY2xlYW4gdXAKPiA+PiA+ICsJCQkgKi8KPiA+PiA+ICsJCQlpbnRlbF9k ZGlfcG9zdF9kaXNhYmxlKGVuY29kZXIsIE5VTEwsIE5VTEwpOwo+ID4+ID4gKwkJCXBsbC0+ZnVu Y3MuZGlzYWJsZShkZXZfcHJpdiwgcGxsKTsKPiA+PiA+ICsJCQlwbGwtPmNvbmZpZyA9IHRtcF9w bGxfY29uZmlnOwo+ID4+ID4gKwkJfQo+ID4+ID4gKwkJaWYgKHJldCkgewo+ID4+ID4gKwkJCURS TV9ERUJVR19LTVMoIkxpbmsgVHJhaW5pbmcgc3VjY2Vzc2Z1bCBhdCBsaW5rIHJhdGU6ICVkIGxh bmU6ICVkXG4iLAo+ID4+ID4gKwkJCQkgICAgICBsaW5rX3JhdGUsIGxhbmVfY291bnQpOwo+ID4+ ID4gKwkJCWJyZWFrOwo+ID4+ID4gKwkJfQo+ID4+ID4gKwl9Cj4gPj4gPiArCj4gPj4gPiArCWlu dGVsX2RwX3N0b3BfbGlua190cmFpbihpbnRlbF9kcCk7Cj4gPj4gPiArCj4gPj4gPiArCWlmICgh bGFuZV9jb3VudCkKPiA+PiA+ICsJCURSTV9FUlJPUigiTGluayBUcmFpbmluZyBGYWlsZWRcbiIp Owo+ID4+ID4gKwo+ID4+ID4gKwlyZXR1cm4gcmV0Owo+ID4+ID4gK30KPiA+PiA+ICsKPiA+PiA+ ICB2b2lkIGludGVsX2RkaV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVudW0gcG9ydCBw b3J0KQo+ID4+ID4gIHsKPiA+PiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShkZXYpOwo+ID4+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPj4gPiBpbmRl eCA2OWNlZTliLi5kODFjNjdjYiAxMDA2NDQKPiA+PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwLmMKPiA+PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rw LmMKPiA+PiA+IEBAIC0xNTA2LDYgKzE1MDYsMjEgQEAgaW50ZWxfZHBfbWF4X2xpbmtfcmF0ZShz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4+ID4gIAlyZXR1cm4gcmF0ZXNbbGVuIC0gMV07 Cj4gPj4gPiAgfQo+ID4+ID4gIAo+ID4+ID4gK2ludCBpbnRlbF9kcF9saW5rX3JhdGVfaW5kZXgo c3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50ICpjb21tb25fcmF0ZXMsCj4gPj4gPiArCQkJ ICAgICBpbnQgbGlua19yYXRlKQo+ID4+ID4gK3sKPiA+PiA+ICsJaW50IGNvbW1vbl9sZW47Cj4g Pj4gPiArCWludCBpbmRleDsKPiA+PiA+ICsKPiA+PiA+ICsJY29tbW9uX2xlbiA9IGludGVsX2Rw X2NvbW1vbl9yYXRlcyhpbnRlbF9kcCwgY29tbW9uX3JhdGVzKTsKPiA+PiA+ICsJZm9yIChpbmRl eCA9IDA7IGluZGV4IDwgY29tbW9uX2xlbjsgaW5kZXgrKykgewo+ID4+ID4gKwkJaWYgKGxpbmtf cmF0ZSA9PSBjb21tb25fcmF0ZXNbY29tbW9uX2xlbiAtIGluZGV4IC0gMV0pCj4gPj4gPiArCQkJ cmV0dXJuIGNvbW1vbl9sZW4gLSBpbmRleCAtIDE7Cj4gPj4gPiArCX0KPiA+PiA+ICsKPiA+PiA+ ICsJcmV0dXJuIC0xOwo+ID4+ID4gK30KPiA+PiA+ICsKPiA+PiA+ICBpbnQgaW50ZWxfZHBfcmF0 ZV9zZWxlY3Qoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50IHJhdGUpCj4gPj4gPiAgewo+ ID4+ID4gIAlyZXR1cm4gcmF0ZV90b19pbmRleChyYXRlLCBpbnRlbF9kcC0+c2lua19yYXRlcyk7 Cj4gPj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbGlua190 cmFpbmluZy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbGlua190cmFpbmluZy5j Cj4gPj4gPiBpbmRleCBjNDM4YjAyLi42ZWI1ZWI2IDEwMDY0NAo+ID4+ID4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbGlua190cmFpbmluZy5jCj4gPj4gPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9saW5rX3RyYWluaW5nLmMKPiA+PiA+IEBAIC0zMTMs OSArMzEzLDE2IEBAIHZvaWQgaW50ZWxfZHBfc3RvcF9saW5rX3RyYWluKHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHApCj4gPj4gPiAgCQkJCURQX1RSQUlOSU5HX1BBVFRFUk5fRElTQUJMRSk7Cj4g Pj4gPiAgfQo+ID4+ID4gIAo+ID4+ID4gLXZvaWQKPiA+PiA+ICtib29sCj4gPj4gPiAgaW50ZWxf ZHBfc3RhcnRfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4+ID4gIHsK PiA+PiA+IC0JaW50ZWxfZHBfbGlua190cmFpbmluZ19jbG9ja19yZWNvdmVyeShpbnRlbF9kcCk7 Cj4gPj4gPiAtCWludGVsX2RwX2xpbmtfdHJhaW5pbmdfY2hhbm5lbF9lcXVhbGl6YXRpb24oaW50 ZWxfZHApOwo+ID4+ID4gKwlib29sIHJldDsKPiA+PiA+ICsKPiA+PiA+ICsJaWYgKGludGVsX2Rw X2xpbmtfdHJhaW5pbmdfY2xvY2tfcmVjb3ZlcnkoaW50ZWxfZHApKSB7Cj4gPj4gPiArCQlyZXQg PSBpbnRlbF9kcF9saW5rX3RyYWluaW5nX2NoYW5uZWxfZXF1YWxpemF0aW9uKGludGVsX2RwKTsK PiA+PiA+ICsJCWlmIChyZXQpCj4gPj4gPiArCQkJcmV0dXJuIHRydWU7Cj4gPj4gPiArCX0KPiA+ PiA+ICsKPiA+PiA+ICsJcmV0dXJuIGZhbHNlOwo+ID4+ID4gIH0KPiA+PiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCj4gPj4gPiBpbmRleCA4ZmQxNmFkLi4wOGNiNTcxIDEwMDY0NAo+ID4+ID4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+PiA+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPj4gPiBAQCAtMTE2NCw2ICsxMTY0LDggQEAg dm9pZCBpbnRlbF9kZGlfY2xvY2tfZ2V0KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ ID4+ID4gIAkJCSBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpOwo+ID4+ID4g IHZvaWQgaW50ZWxfZGRpX3NldF92Y19wYXlsb2FkX2FsbG9jKHN0cnVjdCBkcm1fY3J0YyAqY3J0 YywgYm9vbCBzdGF0ZSk7Cj4gPj4gPiAgdWludDMyX3QgZGRpX3NpZ25hbF9sZXZlbHMoc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCk7Cj4gPj4gPiArYm9vbCBpbnRlbF9kZGlfbGlua190cmFpbihz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBpbnQgbWF4X2xpbmtfcmF0ZSwKPiA+PiA+ICsJCQkg IHVpbnQ4X3QgbWF4X2xhbmVfY291bnQsIGJvb2wgbGlua19tc3QpOwo+ID4+ID4gIHN0cnVjdCBp bnRlbF9zaGFyZWRfZHBsbCAqaW50ZWxfZGRpX2dldF9saW5rX2RwbGwoc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCwKPiA+PiA+ICAJCQkJCQkgIGludCBjbG9jayk7Cj4gPj4gPiAgdW5zaWduZWQg aW50IGludGVsX2ZiX2FsaWduX2hlaWdodChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4+ID4g QEAgLTEzODUsNyArMTM4Nyw3IEBAIGJvb2wgaW50ZWxfZHBfaW5pdF9jb25uZWN0b3Ioc3RydWN0 IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCj4gPj4gPiAgdm9pZCBpbnRlbF9k cF9zZXRfbGlua19wYXJhbXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiA+PiA+ICAJCQkg ICAgICBpbnQgbGlua19yYXRlLCB1aW50OF90IGxhbmVfY291bnQsCj4gPj4gPiAgCQkJICAgICAg Ym9vbCBsaW5rX21zdCk7Cj4gPj4gPiAtdm9pZCBpbnRlbF9kcF9zdGFydF9saW5rX3RyYWluKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApOwo+ID4+ID4gK2Jvb2wgaW50ZWxfZHBfc3RhcnRfbGlu a190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsKPiA+PiA+ICB2b2lkIGludGVsX2Rw X3N0b3BfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsKPiA+PiA+ICB2b2lk IGludGVsX2RwX3NpbmtfZHBtcyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBpbnQgbW9kZSk7 Cj4gPj4gPiAgdm9pZCBpbnRlbF9kcF9lbmNvZGVyX3Jlc2V0KHN0cnVjdCBkcm1fZW5jb2RlciAq ZW5jb2Rlcik7Cj4gPj4gPiBAQCAtMTQwNyw2ICsxNDA5LDggQEAgdm9pZCBpbnRlbF9kcF9hZGRf cHJvcGVydGllcyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY28KPiA+PiA+ICB2b2lkIGludGVsX2RwX21zdF9zdXNwZW5kKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpOwo+ID4+ID4gIHZvaWQgaW50ZWxfZHBfbXN0X3Jlc3VtZShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KTsKPiA+PiA+ICBpbnQgaW50ZWxfZHBfbWF4X2xpbmtfcmF0ZShzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwKTsKPiA+PiA+ICtpbnQgaW50ZWxfZHBfbGlua19yYXRlX2luZGV4KHN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHAsIGludCAqY29tbW9uX3JhdGVzLAo+ID4+ID4gKwkJCSAgICAg aW50IGxpbmtfcmF0ZSk7Cj4gPj4gPiAgaW50IGludGVsX2RwX3JhdGVfc2VsZWN0KHN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHAsIGludCByYXRlKTsKPiA+PiA+ICB2b2lkIGludGVsX2RwX2hvdF9w bHVnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKTsKPiA+PiA+ICB2b2lkIGlu dGVsX3Bvd2VyX3NlcXVlbmNlcl9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpOwo+ID4+IAo+ID4+IC0tIAo+ID4+IEphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBU ZWNobm9sb2d5IENlbnRlcgo+IAo+IC0tIAo+IEphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJj ZSBUZWNobm9sb2d5IENlbnRlcgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK