From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH v5] drm/i915: Add IOCTL Param to control data port coherency. Date: Fri, 13 Jul 2018 11:40:37 +0100 Message-ID: <3338310a-7b71-ba04-1871-d1e177e11704@linux.intel.com> References: <1521463055-5325-2-git-send-email-tomasz.lis@intel.com> <1531408203-3888-1-git-send-email-tomasz.lis@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 403AF6F209 for ; Fri, 13 Jul 2018 10:40:41 +0000 (UTC) In-Reply-To: <1531408203-3888-1-git-send-email-tomasz.lis@intel.com> Content-Language: en-GB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Tomasz Lis , intel-gfx@lists.freedesktop.org Cc: bartosz.dunajski@intel.com List-Id: intel-gfx@lists.freedesktop.org Ck9uIDEyLzA3LzIwMTggMTY6MTAsIFRvbWFzeiBMaXMgd3JvdGU6Cj4gVGhlIHBhdGNoIGFkZHMg YSBwYXJhbWV0ZXIgdG8gY29udHJvbCB0aGUgZGF0YSBwb3J0IGNvaGVyZW5jeSBmdW5jdGlvbmFs aXR5Cj4gb24gYSBwZXItY29udGV4dCBsZXZlbC4gV2hlbiB0aGUgSU9DVEwgaXMgY2FsbGVkLCBh IGNvbW1hbmQgdG8gc3dpdGNoIGRhdGEKPiBwb3J0IGNvaGVyZW5jeSBzdGF0ZSBpcyBhZGRlZCB0 byB0aGUgb3JkZXJlZCBsaXN0LiBBbGwgcHJpb3IgcmVxdWVzdHMgYXJlCj4gZXhlY3V0ZWQgb24g b2xkIGNvaGVyZW5jeSBzZXR0aW5ncywgYW5kIGFsbCBleGVjIHJlcXVlc3RzIGFmdGVyIHRoZSBJ T0NUTAo+IHdpbGwgdXNlIG5ldyBzZXR0aW5ncy4KPiAKPiBSYXRpb25hbGU6Cj4gCj4gVGhlIE9w ZW5DTCBkcml2ZXIgZGV2ZWxwZXJzIHJlcXVlc3RlZCBhIGZ1bmN0aW9uYWxpdHkgdG8gY29udHJv bCBjYWNoZQo+IGNvaGVyZW5jeSBhdCBkYXRhIHBvcnQgbGV2ZWwuIEtlZXBpbmcgdGhlIGNvaGVy ZW5jeSBhdCB0aGF0IGxldmVsIGlzIGRpc2FibGVkCj4gYnkgZGVmYXVsdCBkdWUgdG8gaXRzIHBl cmZvcm1hbmNlIGNvc3RzLiBPcGVuQ0wgZHJpdmVyIGlzIHBsYW5uaW5nIHRvCj4gZW5hYmxlIGl0 IGZvciBhIHNtYWxsIHN1YnNldCBvZiBzdWJtaXNzaW9ucywgd2hlbiBzdWNoIGZ1bmN0aW9uYWxp dHkgaXMKPiByZXF1aXJlZC4gQmVsb3cgYXJlIGFuc3dlcnMgdG8gYmFzaWMgcXVlc3Rpb24gZXhw bGFpbmluZyBiYWNrZ3JvdW5kCj4gb2YgdGhlIGZ1bmN0aW9uYWxpdHkgYW5kIHJlYXNvbmluZyBm b3IgdGhlIHByb3Bvc2VkIGltcGxlbWVudGF0aW9uOgo+IAo+IDEuIFdoeSBkbyB3ZSBuZWVkIGEg Y29oZXJlbmN5IGVuYWJsZS9kaXNhYmxlIHN3aXRjaCBmb3IgbWVtb3J5IHRoYXQgaXMgc2hhcmVk Cj4gYmV0d2VlbiBDUFUgYW5kIEdFTiAoR1BVKT8KPiAKPiBNZW1vcnkgY29oZXJlbmN5IGJldHdl ZW4gQ1BVIGFuZCBHRU4sIHdoaWxlIGJlaW5nIGEgZ3JlYXQgZmVhdHVyZSB0aGF0IGVuYWJsZXMK PiBDTF9NRU1fU1ZNX0ZJTkVfR1JBSU5fQlVGRkVSIE9DTCBjYXBhYmlsaXR5IG9uIEludGVsIEdF TiBhcmNoaXRlY3R1cmUsIGFkZHMKPiBvdmVyaGVhZCByZWxhdGVkIHRvIHRyYWNraW5nIChzbm9v cGluZykgbWVtb3J5IGluc2lkZSBkaWZmZXJlbnQgY2FjaGUgdW5pdHMKPiAoTDEkLCBMMiQsIEwz JCwgTExDJCwgZXRjLikuIEF0IHRoZSBzYW1lIHRpbWUsIG1pbm9yaXR5IG9mIG1vZGVybiBPQ0wK PiBhcHBsaWNhdGlvbnMgYWN0dWFsbHkgdXNlIENMX01FTV9TVk1fRklORV9HUkFJTl9CVUZGRVIg KGFuZCBoZW5jZSByZXF1aXJlCj4gbWVtb3J5IGNvaGVyZW5jeSBiZXR3ZWVuIENQVSBhbmQgR1BV KS4gVGhlIGdvYWwgb2YgY29oZXJlbmN5IGVuYWJsZS9kaXNhYmxlCj4gc3dpdGNoIGlzIHRvIHJl bW92ZSBvdmVyaGVhZCBvZiBtZW1vcnkgY29oZXJlbmN5IHdoZW4gbWVtb3J5IGNvaGVyZW5jeSBp cyBub3QKPiBuZWVkZWQuCj4gCj4gMi4gV2h5IGRvIHdlIG5lZWQgYSBnbG9iYWwgY29oZXJlbmN5 IHN3aXRjaD8KPiAKPiBJbiBvcmRlciB0byBzdXBwb3J0IEkvTyBjb21tYW5kcyBmcm9tIHdpdGhp biBFVXMgKEV4ZWN1dGlvbiBVbml0cyksIEludGVsIEdFTgo+IElTQSAoR0VOIEluc3RydWN0aW9u IFNldCBBc3NlbWJseSkgY29udGFpbnMgZGVkaWNhdGVkICJzZW5kIiBpbnN0cnVjdGlvbnMuCj4g VGhlc2Ugc2VuZCBpbnN0cnVjdGlvbnMgcHJvdmlkZSBzZXZlcmFsIGFkZHJlc3NpbmcgbW9kZWxz LiBPbmUgb2YgdGhlc2UKPiBhZGRyZXNzaW5nIG1vZGVscyAobmFtZWQgInN0YXRlbGVzcyIpIHBy b3ZpZGVzIG1vc3QgZmxleGlibGUgSS9PIHVzaW5nIHBsYWluCj4gdmlydHVhbCBhZGRyZXNzZXMg KGFzIG9wcG9zZWQgdG8gYnVmZmVyX2hhbmRsZStvZmZzZXQgbW9kZWxzKS4gVGhpcyAic3RhdGVs ZXNzIgo+IG1vZGVsIGlzIHNpbWlsYXIgdG8gcmVndWxhciBtZW1vcnkgbG9hZC9zdG9yZSBvcGVy YXRpb25zIGF2YWlsYWJsZSBvbiB0eXBpY2FsCj4gQ1BVcy4gU2luY2UgdGhpcyBtb2RlbCBwcm92 aWRlcyBJL08gdXNpbmcgYXJiaXRyYXJ5IHZpcnR1YWwgYWRkcmVzc2VzLCBpdAo+IGVuYWJsZXMg YWxnb3JpdGhtaWMgZGVzaWducyB0aGF0IGFyZSBiYXNlZCBvbiBwb2ludGVyLXRvLXBvaW50ZXIg KGUuZy4gYnVmZmVyCj4gb2YgcG9pbnRlcnMpIGNvbmNlcHRzLiBGb3IgaW5zdGFuY2UsIGl0IGFs bG93cyBjcmVhdGluZyB0cmVlLWxpa2UgZGF0YQo+IHN0cnVjdHVyZXMgc3VjaCBhczoKPiAgICAg ICAgICAgICAgICAgICAgIF9fX19fX19fX19fX19fX18KPiAgICAgICAgICAgICAgICAgICAgfCAg ICAgIE5PREUxICAgICB8Cj4gICAgICAgICAgICAgICAgICAgIHwgdWludDY0X3QgZGF0YSAgfAo+ ICAgICAgICAgICAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLXwKPiAgICAgICAgICAgICAgICAg ICAgfCBOT0RFKiAgfCAgTk9ERSp8Cj4gICAgICAgICAgICAgICAgICAgICstLS0tLS0tLSstLS0t LS0tKwo+ICAgICAgICAgICAgICAgICAgICAgIC8gICAgICAgICAgICAgIFwKPiAgICAgX19fX19f X19fX19fX19fXy8gICAgICAgICAgICAgICAgXF9fX19fX19fX19fX19fX18KPiAgICB8ICAgICAg Tk9ERTIgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgIE5PREUzICAgICB8Cj4gICAgfCB1aW50 NjRfdCBkYXRhICB8ICAgICAgICAgICAgICAgIHwgdWludDY0X3QgZGF0YSAgfAo+ICAgICstLS0t LS0tLS0tLS0tLS0tfCAgICAgICAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLXwKPiAgICB8IE5P REUqICB8ICBOT0RFKnwgICAgICAgICAgICAgICAgfCBOT0RFKiAgfCAgTk9ERSp8Cj4gICAgKy0t LS0tLS0tKy0tLS0tLS0rICAgICAgICAgICAgICAgICstLS0tLS0tLSstLS0tLS0tKwo+IAo+IFBs ZWFzZSBub3RlIHRoYXQgcG9pbnRlcnMgaW5zaWRlIHN1Y2ggc3RydWN0dXJlcyBjYW4gcG9pbnQg dG8gbWVtb3J5IGxvY2F0aW9ucwo+IGluIGRpZmZlcmVudCBPQ0wgYWxsb2NhdGlvbnMgIC0gZS5n LiBOT0RFMSBhbmQgTk9ERTIgY2FuIHJlc2lkZSBpbiBvbmUgT0NMCj4gYWxsb2NhdGlvbiB3aGls ZSBOT0RFMyByZXNpZGVzIGluIGEgY29tcGxldGVseSBzZXBhcmF0ZSBPQ0wgYWxsb2NhdGlvbi4K PiBBZGRpdGlvbmFsbHksIHN1Y2ggcG9pbnRlcnMgY2FuIGJlIHNoYXJlZCB3aXRoIENQVSAoaS5l LiB1c2luZyBTVk0gLSBTaGFyZWQKPiBWaXJ0dWFsIE1lbW9yeSBmZWF0dXJlKS4gVXNpbmcgcG9p bnRlcnMgZnJvbSBkaWZmZXJlbnQgYWxsb2NhdGlvbnMgZG9lc24ndAo+IGFmZmVjdCB0aGUgc3Rh dGVsZXNzIGFkZHJlc3NpbmcgbW9kZWwgd2hpY2ggZXZlbiBhbGxvd3Mgc2NhdHRlcmVkIHJlYWRp bmcgZnJvbQo+IGRpZmZlcmVudCBhbGxvY2F0aW9ucyBhdCB0aGUgc2FtZSB0aW1lIChpLmUuIGJ5 IHV0aWxpemluZyBTSU1ELW5hdHVyZSBvZiBzZW5kCj4gaW5zdHJ1Y3Rpb25zKS4KPiAKPiBXaGVu IGl0IGNvbWVzIHRvIGNvaGVyZW5jeSBwcm9ncmFtbWluZywgc2VuZCBpbnN0cnVjdGlvbnMgaW4g c3RhdGVsZXNzIG1vZGVsCj4gY2FuIGJlIGVuY29kZWQgKGF0IElTQSBsZXZlbCkgdG8gZWl0aGVy IHVzZSBvciBkaXNhYmxlIGNvaGVyZW5jeS4gSG93ZXZlciwgZm9yCj4gZ2VuZXJpYyBPQ0wgYXBw bGljYXRpb25zIChzdWNoIGFzIGV4YW1wbGUgd2l0aCB0cmVlLWxpa2UgZGF0YSBzdHJ1Y3R1cmUp LCBPQ0wKPiBjb21waWxlciBpcyBub3QgYWJsZSB0byBkZXRlcm1pbmUgb3JpZ2luIG9mIG1lbW9y eSBwb2ludGVkIHRvIGJ5IGFuIGFyYml0cmFyeQo+IHBvaW50ZXIgLSBpLmUuIGlzIG5vdCBhYmxl IHRvIHRyYWNrIGdpdmVuIHBvaW50ZXIgYmFjayB0byBhIHNwZWNpZmljCj4gYWxsb2NhdGlvbi4g QXMgc3VjaCwgaXQncyBub3QgYWJsZSB0byBkZWNpZGUgd2hldGhlciBjb2hlcmVuY3kgaXMgbmVl ZGVkIG9yIG5vdAo+IGZvciBzcGVjaWZpYyBwb2ludGVyIChvciBmb3Igc3BlY2lmaWMgSS9PIGlu c3RydWN0aW9uKS4gQXMgYSByZXN1bHQsIGNvbXBpbGVyCj4gZW5jb2RlcyBhbGwgc3RhdGVsZXNz IHNlbmRzIGFzIGNvaGVyZW50IChkb2luZyBvdGhlcndpc2Ugd291bGQgbGVhZCB0bwo+IGZ1bmN0 aW9uYWwgaXNzdWVzIHJlc3VsdGluZyBmcm9tIGRhdGEgY29ycnVwdGlvbikuIFBsZWFzZSBub3Rl IHRoYXQgaXQgd291bGQgYmUKPiBwb3NzaWJsZSB0byB3b3JrYXJvdW5kIHRoaXMgKGUuZy4gYmFz ZWQgb24gYWxsb2NhdGlvbnMgbWFwIGFuZCBwb2ludGVyIGJvdW5kcwo+IGNoZWNraW5nIHByaW9y IHRvIGVhY2ggSS9PIGluc3RydWN0aW9uKSBidXQgdGhlIHBlcmZvcm1hbmNlIGNvc3Qgb2Ygc3Vj aAo+IHdvcmthcm91bmQgd291bGQgYmUgbWFueSB0aW1lcyBncmVhdGVyIHRoYW4gdGhlIGNvc3Qg b2Yga2VlcGluZyBjb2hlcmVuY3kKPiBhbHdheXMgZW5hYmxlZC4gQXMgc3VjaCwgZW5hYmxpbmcv ZGlzYWJsaW5nIG1lbW9yeSBjb2hlcmVuY3kgYXQgR0VOIElTQSBsZXZlbAo+IGlzIG5vdCBmZWFz aWJsZSBhbmQgYWx0ZXJuYXRpdmUgbWV0aG9kIGlzIG5lZWRlZC4KPiAKPiBTdWNoIGFsdGVybmF0 aXZlIHNvbHV0aW9uIGlzIHRvIGhhdmUgYSBnbG9iYWwgY29oZXJlbmN5IHN3aXRjaCB0aGF0IGFs bG93cwo+IGRpc2FibGluZyBjb2hlcmVuY3kgZm9yIHNpbmdsZSAodGhvdWdoIGVudGlyZSkgR1BV IHN1Ym1pc3Npb24uIFRoaXMgaXMKPiBiZW5lZmljaWFsIGJlY2F1c2UgdGhpcyB3YXkgd2U6Cj4g KiBjYW4gZW5hYmxlIChhbmQgcGF5IGZvcikgY29oZXJlbmN5IG9ubHkgaW4gc3VibWlzc2lvbnMg dGhhdCBhY3R1YWxseSBuZWVkCj4gY29oZXJlbmN5IChzdWJtaXNzaW9ucyB0aGF0IHVzZSBDTF9N RU1fU1ZNX0ZJTkVfR1JBSU5fQlVGRkVSIHJlc291cmNlcykKPiAqIGRvbid0IGNhcmUgYWJvdXQg Y29oZXJlbmN5IGF0IEdFTiBJU0EgZ3JhbnVsYXJpdHkgKG5vIHBlcmZvcm1hbmNlIGltcGFjdCkK PiAKPiAzLiBXaWxsIGNvaGVyZW5jeSBzd2l0Y2ggYmUgdXNlZCBmcmVxdWVudGx5Pwo+IAo+IFRo ZXJlIGFyZSBzY2VuYXJpb3MgdGhhdCB3aWxsIHJlcXVpcmUgZnJlcXVlbnQgdG9nZ2xpbmcgb2Yg dGhlIGNvaGVyZW5jeQo+IHN3aXRjaC4KPiBFLmcuIGFuIGFwcGxpY2F0aW9uIGhhcyB0d28gT0NM IGNvbXB1dGUga2VybmVsczoga2Vybl9tYXN0ZXIgYW5kIGtlcm5fd29ya2VyLgo+IGtlcm5fbWFz dGVyIHVzZXMsIGNvbmN1cnJlbnRseSB3aXRoIENQVSwgc29tZSBmaW5lIGdyYWluIFNWTSByZXNv dXJjZXMKPiAoQ0xfTUVNX1NWTV9GSU5FX0dSQUlOX0JVRkZFUikuIFRoZXNlIHJlc291cmNlcyBj b250YWluIGRlc2NyaXB0b3JzIG9mCj4gY29tcHV0YXRpb25hbCB3b3JrIHRoYXQgbmVlZHMgdG8g YmUgZXhlY3V0ZWQuIGtlcm5fbWFzdGVyIGFuYWx5emVzIGluY29taW5nCj4gd29yayBkZXNjcmlw dG9ycyBhbmQgcG9wdWxhdGVzIGEgcGxhaW4gT0NMIGJ1ZmZlciAobm9uLWZpbmUtZ3JhaW4pIHdp dGggcGF5bG9hZAo+IGZvciBrZXJuX3dvcmtlci4gT25jZSBrZXJuX21hc3RlciBpcyBkb25lLCBr ZXJuX3dvcmtlciBraWNrcy1pbiBhbmQgcHJvY2Vzc2VzCj4gdGhlIHBheWxvYWQgdGhhdCBrZXJu X21hc3RlciBwcm9kdWNlZC4gVGhlc2UgdHdvIGtlcm5lbHMgd29yayBpbiBhIGxvb3AsIG9uZQo+ IGFmdGVyIGFub3RoZXIuIFNpbmNlIG9ubHkga2Vybl9tYXN0ZXIgcmVxdWlyZXMgY29oZXJlbmN5 LCBrZXJuX3dvcmtlciBzaG91bGQKPiBub3QgYmUgZm9yY2VkIHRvIHBheSBmb3IgaXQuIFRoaXMg bWVhbnMgdGhhdCB3ZSBuZWVkIHRvIGhhdmUgdGhlIGFiaWxpdHkgdG8KPiB0b2dnbGUgY29oZXJl bmN5IHN3aXRjaCBvbiBvciBvZmYgcGVyIGVhY2ggR1BVIHN1Ym1pc3Npb246Cj4gKEVOQUJMRSBD T0hFUkVOQ1kpIGtlcm5fbWFzdGVyIC0+IChESVNBQkxFIENPSEVSRU5DWSlrZXJuX3dvcmtlciAt PiAoRU5BQkxFCj4gQ09IRVJFTkNZKSBrZXJuX21hc3RlciAtPiAoRElTQUJMRSBDT0hFUkVOQ1kp a2Vybl93b3JrZXIgLT4gLi4uCj4gCj4gdjI6IEZpeGVkIGNvbXBpbGF0aW9uIHdhcm5pbmcuCj4g djM6IFJlZmFjdG9yZWQgdGhlIHBhdGNoIHRvIGFkZCBJT0NUTCBpbnN0ZWFkIG9mIGV4ZWMgZmxh Zy4KPiB2NDogUmVuYW1lZCBhbmQgZG9jdW1lbnRlZCB0aGUgQVBJIGZsYWcuIFVzZWQgc3RyaWN0 IHZhbHVlcy4KPiAgICAgIFJlbW92ZWQgcmVkdW5kYW50IEdFTV9XQVJOX09OKClzLiBJbXByb3Zl ZCB0byBjb2Rpbmcgc3RhbmRhcmQuCj4gICAgICBJbnRyb2R1Y2VkIGEgbWFjcm8gZm9yIGNoZWNr aW5nIHdoZXRoZXIgaGFyZHdhcmUgc3VwcG9ydHMgdGhlIGZlYXR1cmUuCj4gdjU6IFJlbmFtZWQg c29tZSBsb2NhbHMuIE1hZGUgdGhlIGZsYWcgd3JpdGUgdG8gYmUgbGF6eS4KPiAgICAgIFVwZGF0 ZWQgY29tbWVudHMgdG8gcmVtb3ZlIG1pc2NvbmNlcHRpb25zLiBBZGRlZCBnZW4xMSBzdXBwb3J0 Lgo+IAo+IENjOiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5j b20+Cj4gQ2M6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Cj4gQ2M6 IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IENjOiBNaWNoYWwgV2lu aWFyc2tpIDxtaWNoYWwud2luaWFyc2tpQGludGVsLmNvbT4KPiAKPiBCc3BlYzogMTE0MTkKPiBC c3BlYzogMTkxNzUKPiBTaWduZWQtb2ZmLWJ5OiBUb21hc3ogTGlzIDx0b21hc3oubGlzQGludGVs LmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAg ICB8ICAxICsKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyAgICB8 IDI5ICsrKysrKysrKysrKystLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2Nv bnRleHQuaCAgICB8IDE3ICsrKysrKysrKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fZXhlY2J1ZmZlci5jIHwgIDYgKysrKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHJjLmMgICAgICAgICAgIHwgNTUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaCAgICAgICAgICAgfCAgNCArKysKPiAgIGlu Y2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaCAgICAgICAgICAgICAgICB8ICA3ICsrKysKPiAgIDcg ZmlsZXMgY2hhbmdlZCwgMTE1IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCj4gCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggMDFkZDI5OC4uNzMxOTJlMSAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaAo+IEBAIC0yNTI0LDYgKzI1MjQsNyBAQCBpbnRlbF9pbmZvKGNvbnN0 IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgICNkZWZpbmUgSEFTX0VEUkFN KGRldl9wcml2KQkoISEoKGRldl9wcml2KS0+ZWRyYW1fY2FwICYgRURSQU1fRU5BQkxFRCkpCj4g ICAjZGVmaW5lIEhBU19XVChkZXZfcHJpdikJKChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBcCj4g ICAJCQkJIElTX0JST0FEV0VMTChkZXZfcHJpdikpICYmIEhBU19FRFJBTShkZXZfcHJpdikpCj4g KyNkZWZpbmUgSEFTX0RBVEFfUE9SVF9DT0hFUkVOQ1koZGV2X3ByaXYpCShJTlRFTF9HRU4oZGV2 X3ByaXYpID49IDkpCj4gICAKPiAgICNkZWZpbmUgSFdTX05FRURTX1BIWVNJQ0FMKGRldl9wcml2 KQkoKGRldl9wcml2KS0+aW5mby5od3NfbmVlZHNfcGh5c2ljYWwpCj4gICAKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCj4gaW5kZXggYjEwNzcwYy4uYjViNjNhYyAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKPiBAQCAtNzg0LDYgKzc4 NCw3IEBAIGludCBpOTE1X2dlbV9jb250ZXh0X2Rlc3Ryb3lfaW9jdGwoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgIGludCBpOTE1X2dlbV9jb250ZXh0X2dldHBhcmFtX2lv Y3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gICAJCQkJICAgIHN0cnVj dCBkcm1fZmlsZSAqZmlsZSkKPiAgIHsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 ID0gdG9faTkxNShkZXYpOwo+ICAgCXN0cnVjdCBkcm1faTkxNV9maWxlX3ByaXZhdGUgKmZpbGVf cHJpdiA9IGZpbGUtPmRyaXZlcl9wcml2Owo+ICAgCXN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4 dF9wYXJhbSAqYXJncyA9IGRhdGE7Cj4gICAJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eDsK PiBAQCAtODA0LDEwICs4MDUsMTAgQEAgaW50IGk5MTVfZ2VtX2NvbnRleHRfZ2V0cGFyYW1faW9j dGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgIAljYXNlIEk5MTVfQ09O VEVYVF9QQVJBTV9HVFRfU0laRToKPiAgIAkJaWYgKGN0eC0+cHBndHQpCj4gICAJCQlhcmdzLT52 YWx1ZSA9IGN0eC0+cHBndHQtPnZtLnRvdGFsOwo+IC0JCWVsc2UgaWYgKHRvX2k5MTUoZGV2KS0+ bW0uYWxpYXNpbmdfcHBndHQpCj4gLQkJCWFyZ3MtPnZhbHVlID0gdG9faTkxNShkZXYpLT5tbS5h bGlhc2luZ19wcGd0dC0+dm0udG90YWw7Cj4gKwkJZWxzZSBpZiAoaTkxNS0+bW0uYWxpYXNpbmdf cHBndHQpCj4gKwkJCWFyZ3MtPnZhbHVlID0gaTkxNS0+bW0uYWxpYXNpbmdfcHBndHQtPnZtLnRv dGFsOwo+ICAgCQllbHNlCj4gLQkJCWFyZ3MtPnZhbHVlID0gdG9faTkxNShkZXYpLT5nZ3R0LnZt LnRvdGFsOwo+ICsJCQlhcmdzLT52YWx1ZSA9IGk5MTUtPmdndHQudm0udG90YWw7Cj4gICAJCWJy ZWFrOwo+ICAgCWNhc2UgSTkxNV9DT05URVhUX1BBUkFNX05PX0VSUk9SX0NBUFRVUkU6Cj4gICAJ CWFyZ3MtPnZhbHVlID0gaTkxNV9nZW1fY29udGV4dF9ub19lcnJvcl9jYXB0dXJlKGN0eCk7Cj4g QEAgLTgxOCw2ICs4MTksMTIgQEAgaW50IGk5MTVfZ2VtX2NvbnRleHRfZ2V0cGFyYW1faW9jdGwo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgIAljYXNlIEk5MTVfQ09OVEVY VF9QQVJBTV9QUklPUklUWToKPiAgIAkJYXJncy0+dmFsdWUgPSBjdHgtPnNjaGVkLnByaW9yaXR5 Owo+ICAgCQlicmVhazsKPiArCWNhc2UgSTkxNV9DT05URVhUX1BBUkFNX0RBVEFfUE9SVF9DT0hF UkVOQ1k6Cj4gKwkJaWYgKCFIQVNfREFUQV9QT1JUX0NPSEVSRU5DWShpOTE1KSkKPiArCQkJcmV0 ID0gLUVOT0RFVjsKPiArCQllbHNlCj4gKwkJCWFyZ3MtPnZhbHVlID0gaTkxNV9nZW1fY29udGV4 dF9pc19kYXRhX3BvcnRfY29oZXJlbnRfcmVxdWVzdGVkKGN0eCk7CgpGZWVscyBhIGJpdCBsaWtl IG92ZXJseSBsb25nIG5hbWUgc28gbWF5YmUgZHJvcCB0aGUgX3JlcXVlc3RlZCBzdWZmaXggCmJ1 dCBhIHN1Z2dlc3Rpb24gb25seS4KCj4gKwkJYnJlYWs7Cj4gICAJZGVmYXVsdDoKPiAgIAkJcmV0 ID0gLUVJTlZBTDsKPiAgIAkJYnJlYWs7Cj4gQEAgLTgzMCw2ICs4MzcsNyBAQCBpbnQgaTkxNV9n ZW1fY29udGV4dF9nZXRwYXJhbV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpk YXRhLAo+ICAgaW50IGk5MTVfZ2VtX2NvbnRleHRfc2V0cGFyYW1faW9jdGwoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgIAkJCQkgICAgc3RydWN0IGRybV9maWxlICpmaWxl KQo+ICAgewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB0b19pOTE1KGRldik7 Cj4gICAJc3RydWN0IGRybV9pOTE1X2ZpbGVfcHJpdmF0ZSAqZmlsZV9wcml2ID0gZmlsZS0+ZHJp dmVyX3ByaXY7Cj4gICAJc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X3BhcmFtICphcmdzID0g ZGF0YTsKPiAgIAlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4Owo+IEBAIC04ODAsNyArODg4 LDcgQEAgaW50IGk5MTVfZ2VtX2NvbnRleHRfc2V0cGFyYW1faW9jdGwoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgIAo+ICAgCQkJaWYgKGFyZ3MtPnNpemUpCj4gICAJCQkJ cmV0ID0gLUVJTlZBTDsKPiAtCQkJZWxzZSBpZiAoISh0b19pOTE1KGRldiktPmNhcHMuc2NoZWR1 bGVyICYgSTkxNV9TQ0hFRFVMRVJfQ0FQX1BSSU9SSVRZKSkKPiArCQkJZWxzZSBpZiAoIShpOTE1 LT5jYXBzLnNjaGVkdWxlciAmIEk5MTVfU0NIRURVTEVSX0NBUF9QUklPUklUWSkpCj4gICAJCQkJ cmV0ID0gLUVOT0RFVjsKPiAgIAkJCWVsc2UgaWYgKHByaW9yaXR5ID4gSTkxNV9DT05URVhUX01B WF9VU0VSX1BSSU9SSVRZIHx8Cj4gICAJCQkJIHByaW9yaXR5IDwgSTkxNV9DT05URVhUX01JTl9V U0VSX1BSSU9SSVRZKQo+IEBAIC04OTMsNiArOTAxLDE5IEBAIGludCBpOTE1X2dlbV9jb250ZXh0 X3NldHBhcmFtX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gICAJ CX0KPiAgIAkJYnJlYWs7Cj4gICAKPiArCWNhc2UgSTkxNV9DT05URVhUX1BBUkFNX0RBVEFfUE9S VF9DT0hFUkVOQ1k6Cj4gKwkJaWYgKGFyZ3MtPnNpemUpCj4gKwkJCXJldCA9IC1FSU5WQUw7Cj4g KwkJZWxzZSBpZiAoIUhBU19EQVRBX1BPUlRfQ09IRVJFTkNZKGk5MTUpKQo+ICsJCQlyZXQgPSAt RU5PREVWOwo+ICsJCWVsc2UgaWYgKGFyZ3MtPnZhbHVlID09IDEpCj4gKwkJCWk5MTVfZ2VtX2Nv bnRleHRfc2V0X2RhdGFfcG9ydF9jb2hlcmVudF9yZXF1ZXN0ZWQoY3R4KTsKPiArCQllbHNlIGlm IChhcmdzLT52YWx1ZSA9PSAwKQo+ICsJCQlpOTE1X2dlbV9jb250ZXh0X2NsZWFyX2RhdGFfcG9y dF9jb2hlcmVudF9yZXF1ZXN0ZWQoY3R4KTsKPiArCQllbHNlCj4gKwkJCXJldCA9IC1FSU5WQUw7 Cj4gKwkJYnJlYWs7Cj4gKwo+ICAgCWRlZmF1bHQ6Cj4gICAJCXJldCA9IC1FSU5WQUw7Cj4gICAJ CWJyZWFrOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250 ZXh0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmgKPiBpbmRleCBi MTE2ZTQ5Li44MjZhZjg0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2NvbnRleHQuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRl eHQuaAo+IEBAIC0xMjYsNiArMTI2LDggQEAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgewo+ICAg I2RlZmluZSBDT05URVhUX0JBTk5BQkxFCQkzCj4gICAjZGVmaW5lIENPTlRFWFRfQkFOTkVECQkJ NAo+ICAgI2RlZmluZSBDT05URVhUX0ZPUkNFX1NJTkdMRV9TVUJNSVNTSU9OCTUKPiArI2RlZmlu ZSBDT05URVhUX0RBVEFfUE9SVF9DT0hFUkVOVF9SRVFVRVNURUQJNgo+ICsjZGVmaW5lIENPTlRF WFRfREFUQV9QT1JUX0NPSEVSRU5UX0FDVElWRQk3Cj4gICAKPiAgIAkvKioKPiAgIAkgKiBAaHdf aWQ6IC0gdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBjb250ZXh0Cj4gQEAgLTI1Nyw2ICsyNTks MjEgQEAgc3RhdGljIGlubGluZSB2b2lkIGk5MTVfZ2VtX2NvbnRleHRfc2V0X2ZvcmNlX3Npbmds ZV9zdWJtaXNzaW9uKHN0cnVjdCBpOTE1X2dlbV8KPiAgIAlfX3NldF9iaXQoQ09OVEVYVF9GT1JD RV9TSU5HTEVfU1VCTUlTU0lPTiwgJmN0eC0+ZmxhZ3MpOwo+ICAgfQo+ICAgCj4gK3N0YXRpYyBp bmxpbmUgYm9vbCBpOTE1X2dlbV9jb250ZXh0X2lzX2RhdGFfcG9ydF9jb2hlcmVudF9yZXF1ZXN0 ZWQoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCkKPiArewo+ICsJcmV0dXJuIHRlc3RfYml0 KENPTlRFWFRfREFUQV9QT1JUX0NPSEVSRU5UX1JFUVVFU1RFRCwgJmN0eC0+ZmxhZ3MpOwo+ICt9 Cj4gKwo+ICtzdGF0aWMgaW5saW5lIHZvaWQgaTkxNV9nZW1fY29udGV4dF9zZXRfZGF0YV9wb3J0 X2NvaGVyZW50X3JlcXVlc3RlZChzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4KQo+ICt7Cj4g KwlfX3NldF9iaXQoQ09OVEVYVF9EQVRBX1BPUlRfQ09IRVJFTlRfUkVRVUVTVEVELCAmY3R4LT5m bGFncyk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBpOTE1X2dlbV9jb250ZXh0X2Ns ZWFyX2RhdGFfcG9ydF9jb2hlcmVudF9yZXF1ZXN0ZWQoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQg KmN0eCkKPiArewo+ICsJX19jbGVhcl9iaXQoQ09OVEVYVF9EQVRBX1BPUlRfQ09IRVJFTlRfUkVR VUVTVEVELCAmY3R4LT5mbGFncyk7Cj4gK30KPiArCj4gICBzdGF0aWMgaW5saW5lIGJvb2wgaTkx NV9nZW1fY29udGV4dF9pc19kZWZhdWx0KGNvbnN0IHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpj KQo+ICAgewo+ICAgCXJldHVybiBjLT51c2VyX2hhbmRsZSA9PSBERUZBVUxUX0NPTlRFWFRfSEFO RExFOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVm ZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKPiBpbmRl eCAzZjBjNjEyLi42NGE3Y2Q0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2V4ZWNidWZmZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2V4ZWNidWZmZXIuYwo+IEBAIC0yMzYxLDYgKzIzNjEsMTIgQEAgaTkxNV9nZW1fZG9fZXhlY2J1 ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgCQlnb3RvIGVycl9iYXRjaF91bnBpbjsK PiAgIAl9Cj4gICAKPiArCS8qIEVtaXQgdGhlIHN3aXRjaCBvZiBkYXRhIHBvcnQgY29oZXJlbmN5 IHN0YXRlIGlmIG5lZWRlZCAqLwo+ICsJZXJyID0gaW50ZWxfbHJfY29udGV4dF9tb2RpZnlfZGF0 YV9wb3J0X2NvaGVyZW5jeShlYi5yZXF1ZXN0LAo+ICsJCSAgICAgaTkxNV9nZW1fY29udGV4dF9p c19kYXRhX3BvcnRfY29oZXJlbnRfcmVxdWVzdGVkKGViLmN0eCkpOwo+ICsJaWYgKEdFTV9XQVJO X09OKGVycikpCj4gKwkJRFJNX0RFQlVHKCJEYXRhIFBvcnQgQ29oZXJlbmN5IHRvZ2dsZSBmYWls ZWQsIGtlZXBpbmcgb2xkIHNldHRpbmcuXG4iKTsKCkkgdGhpbmsgd2Ugc2hvdWxkIHByb3BhZ2F0 ZSB0aGUgZXJyb3IgdG8gdXNlcnNwYWNlIGhlcmUuIEJ5IHRoZSB2aXJ0dWUgCm9mIE1JTl9TUEFD RV9GT1JfQUREX1JFUVVFU1QqIHdlIGd1YXJhbnRlZSB0aGVyZSBtdXN0IGJlIHNwYWNlIGZvciAK cmVxdWVzdCBlbWlzc2lvbi4KCkdFTV9XQVJOX09OIGlzIHRoZXJlZm9yZSBva2F5IHRvIGxldCB1 cyBrbm93IHdlIGdvdCB0aGUgdmFsdWUgb2YgCk1JTl9TUEFDRV9GT1JfQUREX1JFUVVFU1Qgd3Jv bmcuIEp1c3QgcmVtb3ZlIHRoZSAia2VlcGluZyBvbGQgc2V0dGluZyIgCmZyb20gdGhlIGRlYnVn IG1lc3NhZ2UuCgoqIEhhdmluZyBsb29rZWQgYXQgdGhlIGNvbW1pdCB3aGljaCBsYXN0IGluY3Jl YXNlZCAKTUlOX1NQQUNFX0ZPUl9BRERfUkVRVUVTVCBJIHN1c3BlY3QgdGhlIGN1cnJlbnQgdmFs dWUgaXMgbGFyZ2UgZW5vdWdoIApmb3IgdGhpcyBhZGRpdGlvbiBhbmQgdGhhdCB3ZSBjb3VsZCBw cm9iYWJseSBsb29rIGF0IGRlY3JlYXNpbmcgaXQuIEl0IAppcyBhIG1hbnVhbCBwcm9jZXNzIHRo b3VnaCBzbyBub3Qgc3RyYWlnaHRmb3J3YXJkLgoKQnV0IGFsc28gc2luY2UgdGhpcyBpcyA+PSBH RU45IGNvZGUgSSB0aGluayBpdCBuZWVkcyB0byBiZSBkb25lIGRlZXBlci4gCkxpa2UgaW4gdGhl IGJhY2tlbmQgbGF5ZXIgc291bmRzIHJpZ2h0IHRvIG1lLgoKTWF5YmUgaW50ZWxfbHJjLmMvZ2Vu OF9lbWl0X2ZsdXNoX3JlbmRlciBpbiB0aGUgRU1JVF9JTlZBTElEQVRFIG1vZGU/IApUaGF0IGlz IHRoZSByZXF1ZXN0IHByZWFtYmxlIGRlYWxpbmcgd2l0aCBpbnZhbGlkYXRpbmcgY2FjaGVzIHNv IAptb2RpZnlpbmcgY2FjaGUgY29oZXJlbmN5IG1vZGUgdGhlcmUgYXMgd2VsbCBzb3VuZHMgbGlr ZSBhIGZpdCB0byBtZS4KCj4gKwo+ICAgCWlmIChpbl9mZW5jZSkgewo+ICAgCQllcnIgPSBpOTE1 X3JlcXVlc3RfYXdhaXRfZG1hX2ZlbmNlKGViLnJlcXVlc3QsIGluX2ZlbmNlKTsKPiAgIAkJaWYg KGVyciA8IDApCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiBpbmRleCAzNWQzN2FmLi5mY2Vl MDNkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiBAQCAtMjU5LDYgKzI1OSw2MSBA QCBpbnRlbF9scl9jb250ZXh0X2Rlc2NyaXB0b3JfdXBkYXRlKHN0cnVjdCBpOTE1X2dlbV9jb250 ZXh0ICpjdHgsCj4gICAJY2UtPmxyY19kZXNjID0gZGVzYzsKPiAgIH0KPiAgIAo+ICtzdGF0aWMg aW50IGVtaXRfc2V0X2RhdGFfcG9ydF9jb2hlcmVuY3koc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEs IGJvb2wgZW5hYmxlKQo+ICt7Cj4gKwl1MzIgKmNzOwo+ICsJaTkxNV9yZWdfdCByZWc7Cj4gKwo+ ICsJR0VNX0JVR19PTihycS0+ZW5naW5lLT5jbGFzcyAhPSBSRU5ERVJfQ0xBU1MpOwo+ICsJR0VN X0JVR19PTihJTlRFTF9HRU4ocnEtPmk5MTUpIDwgOSk7Cj4gKwo+ICsJY3MgPSBpbnRlbF9yaW5n X2JlZ2luKHJxLCA0KTsKPiArCWlmIChJU19FUlIoY3MpKQo+ICsJCXJldHVybiBQVFJfRVJSKGNz KTsKPiArCj4gKwlpZiAoSU5URUxfR0VOKHJxLT5pOTE1KSA+PSAxMSkKPiArCQlyZWcgPSBJQ0xf SERDX01PREU7Cj4gKwllbHNlIGlmIChJTlRFTF9HRU4ocnEtPmk5MTUpID49IDEwKQo+ICsJCXJl ZyA9IENOTF9IRENfQ0hJQ0tFTjA7Cj4gKwllbHNlCj4gKwkJcmVnID0gSERDX0NISUNLRU4wOwo+ ICsKPiArCSpjcysrID0gTUlfTE9BRF9SRUdJU1RFUl9JTU0oMSk7Cj4gKwkqY3MrKyA9IGk5MTVf bW1pb19yZWdfb2Zmc2V0KHJlZyk7Cj4gKwkvKiBFbmFibGluZyBjb2hlcmVuY3kgbWVhbnMgZGlz YWJsaW5nIHRoZSBiaXQgd2hpY2ggZm9yY2VzIGl0IG9mZiAqLwo+ICsJaWYgKGVuYWJsZSkKPiAr CQkqY3MrKyA9IF9NQVNLRURfQklUX0RJU0FCTEUoSERDX0ZPUkNFX05PTl9DT0hFUkVOVCk7Cj4g KwllbHNlCj4gKwkJKmNzKysgPSBfTUFTS0VEX0JJVF9FTkFCTEUoSERDX0ZPUkNFX05PTl9DT0hF UkVOVCk7Cj4gKwkqY3MrKyA9IE1JX05PT1A7Cj4gKwo+ICsJaW50ZWxfcmluZ19hZHZhbmNlKHJx LCBjcyk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK2ludAo+ICtpbnRlbF9scl9jb250 ZXh0X21vZGlmeV9kYXRhX3BvcnRfY29oZXJlbmN5KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLAo+ ICsJCQkJCSAgICBib29sIGVuYWJsZSkKPiArewo+ICsJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQg KmN0eCA9IHJxLT5nZW1fY29udGV4dDsKPiArCWludCByZXQ7Cj4gKwoKSSdkIHB1dCBhIGxvY2tk ZXBfYXNzZXJ0X2hlbGQgb24gc3RydWN0X211dGV4IGhlcmUgdG8gbWFyayBpdCB1cCBmb3IgdGhl IApmdXR1cmUuCgo+ICsJaWYgKHRlc3RfYml0KENPTlRFWFRfREFUQV9QT1JUX0NPSEVSRU5UX0FD VElWRSwgJmN0eC0+ZmxhZ3MpID09IGVuYWJsZSkKCllvdSBkb24ndCBuZWVkIHRvIHBhc3MgaW4g ZW5hYmxlIHRvIHRoaXMgZnVuY3Rpb24gc2luY2UgaXQgY2FuIGZpZ3VyZSAKb3V0IHdoYXQgdG8g ZG8gZnJvbSB0aGUgZmxhZ3Mgb24gaXRzIG93bjoKCglpZiAoKGN0eC0+ZmxhZ3MgJiBSRVFVRVNU RUQpID09IChjdHgtPmZsYWdzICYgQUNUSVZFKSkKCQlyZXR1cm4gMDsKCkFmdGVyIHdoaWNoIGZ1 bmN0aW9ucyBzaG91bGQgcHJvYWJibHkgYmUgcmVuYW1lZCB0byAKaW50ZWxfbHJfY29udGV4dF91 cGRhdGVfZGF0YV9wb3J0X2NvaGVyZW5jeT8KCj4gKwkJcmV0dXJuIDA7Cj4gKwo+ICsJcmV0ID0g ZW1pdF9zZXRfZGF0YV9wb3J0X2NvaGVyZW5jeShycSwgZW5hYmxlKTsKCkFuZCB0aGVuOgoKCS4u KHJxLCBjdHgtPmZsYWdzICYgUkVRVUVTVEVEKQoKPiArCj4gKwlpZiAoIXJldCkgewo+ICsJCWlm IChlbmFibGUpCj4gKwkJCV9fc2V0X2JpdChDT05URVhUX0RBVEFfUE9SVF9DT0hFUkVOVF9BQ1RJ VkUsICZjdHgtPmZsYWdzKTsKPiArCQllbHNlCj4gKwkJCV9fY2xlYXJfYml0KENPTlRFWFRfREFU QV9QT1JUX0NPSEVSRU5UX0FDVElWRSwgJmN0eC0+ZmxhZ3MpOwo+ICsJfQo+ICsKPiArICAgICAg IHJldHVybiByZXQ7Cj4gK30KPiArCj4gICBzdGF0aWMgc3RydWN0IGk5MTVfcHJpb2xpc3QgKgo+ ICAgbG9va3VwX3ByaW9saXN0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgaW50IHBy aW8pCj4gICB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgKPiBpbmRleCAxNTkzMTk0Li4yMGU4 NjY0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgKPiBAQCAtMTA0LDQgKzEwNCw4IEBA IHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0Owo+ICAgCj4gICB2b2lkIGludGVsX2xyX2NvbnRleHRf cmVzdW1lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gICAKPiAraW50Cj4g K2ludGVsX2xyX2NvbnRleHRfbW9kaWZ5X2RhdGFfcG9ydF9jb2hlcmVuY3koc3RydWN0IGk5MTVf cmVxdWVzdCAqcnEsCj4gKwkJCQkJICAgIGJvb2wgZW5hYmxlKTsKPiArCj4gICAjZW5kaWYgLyog X0lOVEVMX0xSQ19IXyAqLwo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJt LmggYi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKPiBpbmRleCA3ZjU2MzRjLi4wYTRlMzFm IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAo+ICsrKyBiL2luY2x1 ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAo+IEBAIC0xNDU2LDYgKzE0NTYsMTMgQEAgc3RydWN0IGRy bV9pOTE1X2dlbV9jb250ZXh0X3BhcmFtIHsKPiAgICNkZWZpbmUgICBJOTE1X0NPTlRFWFRfTUFY X1VTRVJfUFJJT1JJVFkJMTAyMyAvKiBpbmNsdXNpdmUgKi8KPiAgICNkZWZpbmUgICBJOTE1X0NP TlRFWFRfREVGQVVMVF9QUklPUklUWQkJMAo+ICAgI2RlZmluZSAgIEk5MTVfQ09OVEVYVF9NSU5f VVNFUl9QUklPUklUWQktMTAyMyAvKiBpbmNsdXNpdmUgKi8KPiArLyoKPiArICogV2hlbiBkYXRh IHBvcnQgbGV2ZWwgY29oZXJlbmN5IGlzIGVuYWJsZWQsIHRoZSBHUFUgd2lsbCB1cGRhdGUgbWVt b3J5Cj4gKyAqIGJ1ZmZlcnMgc2hhcmVkIHdpdGggQ1BVLCBieSBmb3JjaW5nIGludGVybmFsIGNh Y2hlIHVuaXRzIHRvIHNlbmQgbWVtb3J5Cj4gKyAqIHdyaXRlcyB0byBoaWdoZXIgbGV2ZWwgY2Fj aGVzIGZhc3Rlci4gRW5hYmxpbmcgZGF0YSBwb3J0IGNvaGVyZW5jeSBoYXMKPiArICogcGVyZm9y bWFuY2UgY29zdC4KCiJoYXMgX2FfIHBlcmZvcm1hbmNlIGNvc3QiIEkgdGhpbmsgYnV0IG5vdCBh IG5hdGl2ZSBzcGVha2VyIHNvIG1pZ2h0IGJlIAp3cm9uZy4KCj4gKyAqLwo+ICsjZGVmaW5lIEk5 MTVfQ09OVEVYVF9QQVJBTV9EQVRBX1BPUlRfQ09IRVJFTkNZCTB4Nwo+ICAgCV9fdTY0IHZhbHVl Owo+ICAgfTsKPiAgIAo+IAoKUmVnYXJkcywKClR2cnRrbwpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK