From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: Re: [PATCH v3 36/38] altp2m: Allow specifying external-only use-case Date: Wed, 24 Aug 2016 13:18:35 +0100 Message-ID: <20160824121835.GH20641@citrix.com> References: <20160816221714.22041-1-proskurin@sec.in.tum.de> <20160816221714.22041-37-proskurin@sec.in.tum.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bcX8i-0006j5-Sw for xen-devel@lists.xenproject.org; Wed, 24 Aug 2016 12:18:41 +0000 Content-Disposition: inline In-Reply-To: <20160816221714.22041-37-proskurin@sec.in.tum.de> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Sergej Proskurin Cc: Wei Liu , Andrew Cooper , Ian Jackson , Jan Beulich , Tamas K Lengyel , xen-devel@lists.xenproject.org, Daniel De Graaf List-Id: xen-devel@lists.xenproject.org T24gV2VkLCBBdWcgMTcsIDIwMTYgYXQgMTI6MTc6MTJBTSArMDIwMCwgU2VyZ2VqIFByb3NrdXJp biB3cm90ZToKPiBGcm9tOiBUYW1hcyBLIExlbmd5ZWwgPHRhbWFzLmxlbmd5ZWxAemVudGlmaWMu Y29tPgo+IAo+IEN1cnJlbnRseSBzZXR0aW5nIGFsdHAybWh2bT0xIGluIHRoZSBkb21haW4gY29u ZmlndXJhdGlvbiBhbGxvd3MgYWNjZXNzIHRvIHRoZQo+IGFsdHAybSBpbnRlcmZhY2UgZm9yIGJv dGggaW4tZ3Vlc3QgYW5kIGV4dGVybmFsIHByaXZpbGVnZWQgdG9vbHMuIFRoaXMgcG9zZXMKPiBh IHByb2JsZW0gZm9yIHVzZS1jYXNlcyB3aGVyZSBvbmx5IGV4dGVybmFsIGFjY2VzcyBzaG91bGQg YmUgYWxsb3dlZCwgcmVxdWlyaW5nCj4gdGhlIHVzZXIgdG8gY29tcGlsZSBYZW4gd2l0aCBYU00g ZW5hYmxlZCB0byBiZSBhYmxlIHRvIGFwcHJvcHJpYXRlbHkgcmVzdHJpY3QKPiBhY2Nlc3MuCj4g Cj4gSW4gdGhpcyBwYXRjaCB3ZSBkZXByZWNhdGUgdGhlIGFsdHAybWh2bSBkb21haW4gY29uZmln dXJhdGlvbiBvcHRpb24gYW5kCj4gaW50cm9kdWNlIHRoZSBhbHRwMm0gb3B0aW9uLCB3aGljaCBh bGxvd3Mgc3BlY2lmeWluZyBpZiBieSBkZWZhdWx0IHRoZSBhbHRwMm0KPiBpbnRlcmZhY2Ugc2hv dWxkIGJlIGV4dGVybmFsLW9ubHkuIFRoZSBpbmZvcm1hdGlvbiBpcyBzdG9yZWQgaW4KPiBIVk1f UEFSQU1fQUxUUDJNIHdoaWNoIHdlIG5vdyBkZWZpbmUgd2l0aCBzcGVjaWZpYyBYRU5fQUxUUDJN XyogbW9kZXMuCj4gSWYgZXh0ZXJuYWxfb25seSBtb2RlIGlzIHNlbGVjdGVkLCB0aGUgWFNNIGNo ZWNrIGlzIHNoaWZ0ZWQgdG8gdXNlIFhTTV9ETV9QUklWCj4gdHlwZSBjaGVjaywgdGh1cyByZXN0 cmljdGluZyBhY2Nlc3MgdG8gdGhlIGludGVyZmFjZSBieSB0aGUgZ3Vlc3QgaXRzZWxmLiBOb3Rl Cj4gdGhhdCB3ZSBrZWVwIHRoZSBkZWZhdWx0IFhTTSBwb2xpY3kgdW50b3VjaGVkLiBVc2VycyBv ZiBYU00gd2hvIHdpc2ggdG8gZW5mb3JjZQo+IGV4dGVybmFsX29ubHkgbW9kZSBmb3IgYWx0cDJt IGNhbiBkbyBzbyBieSBhZGp1c3RpbmcgdGhlaXIgWFNNIHBvbGljeSBkaXJlY3RseSwKPiBhcyB0 aGlzIGRvbWFpbiBjb25maWcgb3B0aW9uIGRvZXMgbm90IG92ZXJyaWRlIGFuIGFjdGl2ZSBYU00g cG9saWN5Lgo+IAo+IEFsc28sIGFzIHBhcnQgb2YgdGhpcyBwYXRjaCB3ZSBhZGp1c3QgdGhlIGh2 bW9wIGhhbmRsZXIgdG8gcmVxdWlyZQo+IEhWTV9QQVJBTV9BTFRQMk0gdG8gYmUgb2YgYSB0eXBl IG90aGVyIHRoZW4gZGlzYWJsZWQgZm9yIGFsbCBvcHMuIFRoaXMgaGFzIGJlZW4KPiBwcmV2aW91 c2x5IG9ubHkgcmVxdWlyZWQgZm9yIGdldC9zZXQgYWx0cDJtIGRvbWFpbiBzdGF0ZSwgYWxsIG90 aGVyIG9wdGlvbnMKPiB3ZXJlIGdhdGVkIG9uIGFsdHAybV9lbmFibGVkLiBTaW5jZSBhbHRwMm1f ZW5hYmxlZCBvbmx5IGdldHMgc2V0IGR1cmluZyBzZXQKPiBhbHRwMm0gZG9tYWluIHN0YXRlLCB0 aGlzIGNoYW5nZSBpbnRyb2R1Y2VzIG5vIG5ldyByZXF1aXJlbWVudHMgdG8gdGhlIG90aGVyCj4g b3BzIGJ1dCBtYWtlcyBpdCBtb3JlIGNsZWFyIHRoYXQgaXQgaXMgcmVxdWlyZWQgZm9yIGFsbCBv cHMuCj4gCj4gU2lnbmVkLW9mZi1ieTogVGFtYXMgSyBMZW5neWVsIDx0YW1hcy5sZW5neWVsQHpl bnRpZmljLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBTZXJnZWogUHJvc2t1cmluIDxwcm9za3VyaW5A c2VjLmluLnR1bS5kZT4KCgpEdXJpbmcgbXkgcmV2aWV3IG9mIFRhbWFzJ3Mgb3JpZ2luYWwgcGF0 Y2gsIEkgZmlndXJlZCB0aGF0IGl0IHdvdWxkCmJlIHF1aXRlIHVnbHkgdG8gaGFuZGxlIHRoZSBv bGQgdHlwZSB2cyBuZXcgdHlwZSBvZiBhbHRwMm0gaW4gb3JkZXIgdG8Kbm90IGJyZWFrIGNvbXBp bGF0aW9uIGZvciBvbGRlciBhcHBsaWNhdGlvbi4KCkJ1dCBpdCBzZWVtcyB0aGF0IHdlIHNoYWxs IGp1c3Qga2VlcCBhbHRwMm1odm0gbGlieGxfZGVmX2Jvb2wgYW5kIHVzZQp0aGUgbmV3IHR5cGUg Zm9yIGFsdHAybS4gIEkgdGhpbmsgYnkgdGFraW5nIHRoaXMgcGF0Y2ggaW4gdGhlIHNlcmllcywg d2UKbWFuYWdlIHRvIHJlZHVjZSB0aGUgY29tcGF0aWJpbGl0eSBjcnVmdCBuZWVkZWQsIHdoaWNo IGlzIGdvb2QuCgo+IC0tLQo+IENjOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0cml4 LmNvbT4KPiBDYzogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KPiBDYzogSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPgo+IENjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVy M0BjaXRyaXguY29tPgo+IENjOiBEYW5pZWwgRGUgR3JhYWYgPGRnZGVncmFAdHljaG8ubnNhLmdv dj4KPiAKPiB2MjogUmVuYW1lIEhWTUFMVFAyTV8qIHRvIFhFTl9BTFRQMk1fKgo+ICAgICBSZWxh eCB4c20gY2hlY2sgdG8gWFNNX0RNX1BSSVYgZm9yIGV4dGVybmFsLW9ubHkgbW9kZQo+IAo+IHYz OiBJbnRyb2R1Y2UgbWFjcm8gTElCWExfSEFWRV9BUk1fQUxUUDJNIGluIHBhcmFsbGVsIHRvIHRo ZSBmb3JtZXIKPiAgICAgTElCWExfSEFWRV9BTFRQMk0gdG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVu IGFsdHAybSBmb3IgeDg2IGFuZCBhbmQKPiAgICAgYWx0cDJtIGZvciBBUk0gYXJjaGl0ZWN0dXJl cy4KPiAKPiAgICAgRG9jdW1lbnQgdGhlIG9wdGlvbiAiYWx0cDJtIiBpbiAuL2RvY3MvbWFuL3hs LmNmZy5wb2QuNS5pbi4KPiAKPiAgICAgTWFpbnRhaW4gdGhlIGxlZ2FjeSBpbmZvLT51Lmh2bS5h bHRwMm0gZmllbGQgZm9yIHg4NiBIVk0gZG9tYWlucyBpbgo+ICAgICBwYXJhbGxlbCB0byB0aGUg aW50cm9kdWNlZCBpbmZvLT5hbHRwMm0gZmllbGQgZm9yIHg4NiBIVk0gYW5kIEFSTQo+ICAgICBk b21haW5zLgo+IC0tLQo+ICBkb2NzL21hbi94bC5jZmcucG9kLjUuaW4gICAgICAgIHwgMzcgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQo+ICB0b29scy9saWJ4bC9saWJ4bC5o ICAgICAgICAgICAgIHwgMTAgKysrKysrKysrLQo+ICB0b29scy9saWJ4bC9saWJ4bF9jcmVhdGUu YyAgICAgIHwgIDcgKysrKystLQo+ICB0b29scy9saWJ4bC9saWJ4bF9kb20uYyAgICAgICAgIHwg MzAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCj4gIHRvb2xzL2xpYnhsL2xpYnhsX3R5 cGVzLmlkbCAgICAgfCAxMyArKysrKysrKysrKysrCj4gIHRvb2xzL2xpYnhsL3hsX2NtZGltcGwu YyAgICAgICAgfCAyNSArKysrKysrKysrKysrKysrKysrKysrKystCj4gIHhlbi9hcmNoL2FybS9o dm0uYyAgICAgICAgICAgICAgfCAxNCArKysrKysrKysrKysrLQo+ICB4ZW4vYXJjaC94ODYvaHZt L2h2bS5jICAgICAgICAgIHwgMjAgKysrKysrKysrKy0tLS0tLS0tLS0KPiAgeGVuL2luY2x1ZGUv cHVibGljL2h2bS9wYXJhbXMuaCB8IDEwICsrKysrKysrKy0KPiAgeGVuL2luY2x1ZGUveHNtL2R1 bW15LmggICAgICAgICB8IDE0ICsrKysrKysrKysrLS0tCj4gIHhlbi9pbmNsdWRlL3hzbS94c20u aCAgICAgICAgICAgfCAgNiArKystLS0KPiAgeGVuL3hzbS9mbGFzay9ob29rcy5jICAgICAgICAg ICB8ICAyICstCj4gIDEyIGZpbGVzIGNoYW5nZWQsIDE2MiBpbnNlcnRpb25zKCspLCAyNiBkZWxl dGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZG9jcy9tYW4veGwuY2ZnLnBvZC41LmluIGIvZG9j cy9tYW4veGwuY2ZnLnBvZC41LmluCj4gaW5kZXggNDhjOWMwZC4uYmY5YTQ4YSAxMDA2NDQKPiAt LS0gYS9kb2NzL21hbi94bC5jZmcucG9kLjUuaW4KPiArKysgYi9kb2NzL21hbi94bC5jZmcucG9k LjUuaW4KPiBAQCAtMTI2OCw2ICsxMjY4LDM3IEBAIGVuYWJsZWQgYnkgZGVmYXVsdCBhbmQgeW91 IHNob3VsZCB1c3VhbGx5IG9taXQgaXQuIEl0IG1heSBiZSBuZWNlc3NhcnkKPiAgdG8gZGlzYWJs ZSB0aGUgSFBFVCBpbiBvcmRlciB0byBpbXByb3ZlIGNvbXBhdGliaWxpdHkgd2l0aCBndWVzdAo+ ICBPcGVyYXRpbmcgU3lzdGVtcyAoWDg2IG9ubHkpCj4gIAo+ICs9aXRlbSBCPGFsdHAybT1NT0RF Pgo+ICsKPiArU3BlY2lmaWVzIGFjY2VzcyBtb2RlIHRvIHRoZSBhbHRlcm5hdGUtcDJtIGNhcGFi aWxpdHkuIEFsdGVybmF0ZS1wMm0gYWxsb3dzIGEKPiArZ3Vlc3QgdG8gbWFuYWdlIG11bHRpcGxl IHAybSBndWVzdCBwaHlzaWNhbCAibWVtb3J5IHZpZXdzIiAoYXMgb3Bwb3NlZCB0byBhCj4gK3Np bmdsZSBwMm0pLiBUaGlzIG9wdGlvbiBpcyBkaXNhYmxlZCBieSBkZWZhdWx0IGFuZCBpcyBhdmFp bGFibGUgdG8geDg2IGh2bSBhbmQKPiArQVJNIGRvbWFpbnMuIFlvdSBtYXkgd2FudCB0aGlzIG9w dGlvbiBpZiB5b3Ugd2FudCB0byBhY2Nlc3MtY29udHJvbC9pc29sYXRlCj4gK2FjY2VzcyB0byBz cGVjaWZpYyBndWVzdCBwaHlzaWNhbCBtZW1vcnkgcGFnZXMgYWNjZXNzZWQgYnkgdGhlIGd1ZXN0 LCBlLmcuIGZvcgo+ICtkb21haW4gbWVtb3J5IGludHJvc3BlY3Rpb24gb3IgZm9yIGlzb2xhdGlv bi9hY2Nlc3MtY29udHJvbCBvZiBtZW1vcnkgYmV0d2Vlbgo+ICtjb21wb25lbnRzIHdpdGhpbiBh IHNpbmdsZSBndWVzdCBkb21haW4uCj4gKwo+ICtUaGUgdmFsaWQgdmFsdWVzIGFyZSBhcyBmb2xs b3dzOgo+ICsKPiArPW92ZXIgNAo+ICsKPiArPWl0ZW0gQjwiZGlzYWJsZWQiPgo+ICsKPiArQWx0 cDJtIGlzIGRpc2FibGVkIGZvciB0aGUgZG9tYWluIChkZWZhdWx0KS4KPiArCj4gKz1pdGVtIEI8 Im1peGVkIj4KPiArCj4gK1RoZSBtaXhlZCBtb2RlIGFsbG93cyBhY2Nlc3MgdG8gdGhlIGFsdHAy bSBpbnRlcmZhY2UgZm9yIGJvdGggaW4tZ3Vlc3QKPiArYW5kIGV4dGVybmFsIHRvb2xzIGFzIHdl bGwuCj4gKwo+ICs9aXRlbSBCPCJleHRlcm5hbF9vbmx5Ij4KPiArCj4gK0VuYWJsZXMgYWNjZXNz IHRvIHRoZSBhbHRlcm5hdGUtcDJtIGNhcGFiaWxpdHkgZm9yIGh2bSBndWVzdHMgb25seQo+ICti eSBleHRlcm5hbCBwcml2aWxlZ2VkIHRvb2xzLiBOb3RlOiBpZiBYU00gaXMgZW5hYmxlZCB0aGVu IHRoZSBYU00gcG9saWN5Cj4gK3Nob3VsZCBiZSB1c2VkIHRvIHNwZWNpZnkgZXh0ZXJuYWwtb25s eSBhY2Nlc3MgdG8gdGhlIGludGVyZmFjZS4KPiArCj4gKz1iYWNrCj4gKwo+ICA9aXRlbSBCPGFs dHAybWh2bT1CT09MRUFOPgo+ICAKPiAgRW5hYmxlcyBvciBkaXNhYmxlcyBodm0gZ3Vlc3QgYWNj ZXNzIHRvIGFsdGVybmF0ZS1wMm0gY2FwYWJpbGl0eS4KPiBAQCAtMTI3OCw3ICsxMzA5LDExIEBA IFlvdSBtYXkgd2FudCB0aGlzIG9wdGlvbiBpZiB5b3Ugd2FudCB0byBhY2Nlc3MtY29udHJvbC9p c29sYXRlCj4gIGFjY2VzcyB0byBzcGVjaWZpYyBndWVzdCBwaHlzaWNhbCBtZW1vcnkgcGFnZXMg YWNjZXNzZWQgYnkKPiAgdGhlIGd1ZXN0LCBlLmcuIGZvciBIVk0gZG9tYWluIG1lbW9yeSBpbnRy b3NwZWN0aW9uIG9yCj4gIGZvciBpc29sYXRpb24vYWNjZXNzLWNvbnRyb2wgb2YgbWVtb3J5IGJl dHdlZW4gY29tcG9uZW50cyB3aXRoaW4KPiAtYSBzaW5nbGUgZ3Vlc3QgaHZtIGRvbWFpbi4KPiAr YSBzaW5nbGUgZ3Vlc3QgaHZtIGRvbWFpbi4gVGhpcyBvcHRpb24gaXMgZGVwcmVjYXRlZCwgdXNl IHRoZSBvcHRpb24KPiArImFsdHAybSIgaW5zdGVhZC4KPiArCj4gK05vdGU6IFdoaWxlIHRoZSBv cHRpb24gImFsdHAybWh2bSIgaXMgZGVwcmVjYXRlZCwgbGVnYWN5IGFwcGxpY2F0aW9ucyBmb3IK PiAreDg2IHN5c3RlbXMgd2lsbCBjb250aW51ZSB0byB3b3JrIHVzaW5nIGl0Lgo+ICAKPiAgPWl0 ZW0gQjxuZXN0ZWRodm09Qk9PTEVBTj4KPiAgCj4gZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xp YnhsLmggYi90b29scy9saWJ4bC9saWJ4bC5oCj4gaW5kZXggYWUyMTMwMi4uZjc4ZDYzZSAxMDA2 NDQKPiAtLS0gYS90b29scy9saWJ4bC9saWJ4bC5oCj4gKysrIGIvdG9vbHMvbGlieGwvbGlieGwu aAo+IEBAIC04NDcsMTEgKzg0NywxOSBAQCB0eXBlZGVmIHN0cnVjdCBsaWJ4bF9fY3R4IGxpYnhs X2N0eDsKPiAgCj4gIC8qCj4gICAqIExJQlhMX0hBVkVfQUxUUDJNCj4gLSAqIElmIHRoaXMgaXMg ZGVmaW5lZCwgdGhlbiBsaWJ4bCBzdXBwb3J0cyBhbHRlcm5hdGUgcDJtIGZ1bmN0aW9uYWxpdHku Cj4gKyAqIElmIHRoaXMgaXMgZGVmaW5lZCwgdGhlbiBsaWJ4bCBzdXBwb3J0cyBhbHRlcm5hdGUg cDJtIGZ1bmN0aW9uYWxpdHkgZm9yCj4gKyAqIHg4NiBIVk0gZ3Vlc3RzLgo+ICAgKi8KPiAgI2Rl ZmluZSBMSUJYTF9IQVZFX0FMVFAyTSAxCj4gIAo+ICAvKgo+ICsgKiBMSUJYTF9IQVZFX0FSTV9B TFRQMk0KPiArICogSWYgdGhpcyBpcyBkZWZpbmVkLCB0aGVuIGxpYnhsIHN1cHBvcnRzIGFsdGVy bmF0ZSBwMm0gZnVuY3Rpb25hbGl0eSBmb3IKPiArICogQVJNIGd1ZXN0cy4KPiArICovCj4gKyNk ZWZpbmUgTElCWExfSEFWRV9BUk1fQUxUUDJNIDEKPiArCj4gKy8qCj4gICAqIExJQlhMX0hBVkVf UkVNVVMKPiAgICogSWYgdGhpcyBpcyBkZWZpbmVkLCB0aGVuIGxpYnhsIHN1cHBvcnRzIHJlbXVz Lgo+ICAgKi8KPiBkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfY3JlYXRlLmMgYi90b29s cy9saWJ4bC9saWJ4bF9jcmVhdGUuYwo+IGluZGV4IDA0ZjhhZTkuLjIxZTMyYzkgMTAwNjQ0Cj4g LS0tIGEvdG9vbHMvbGlieGwvbGlieGxfY3JlYXRlLmMKPiArKysgYi90b29scy9saWJ4bC9saWJ4 bF9jcmVhdGUuYwo+IEBAIC00MDYsNiArNDA2LDcgQEAgaW50IGxpYnhsX19kb21haW5fYnVpbGRf aW5mb19zZXRkZWZhdWx0KGxpYnhsX19nYyAqZ2MsCj4gICAgICAgICAgICAgIGxpYnhsX2RvbWFp bl90eXBlX3RvX3N0cmluZyhiX2luZm8tPnR5cGUpKTsKPiAgICAgICAgICByZXR1cm4gRVJST1Jf SU5WQUw7Cj4gICAgICB9Cj4gKwoKVW5yZWxhdGVkIGNoYW5nZS4KCj4gICAgICByZXR1cm4gMDsK PiAgfQo+ICAKPiBAQCAtOTE4LDggKzkxOSwxMCBAQCBzdGF0aWMgdm9pZCBpbml0aWF0ZV9kb21h aW5fY3JlYXRlKGxpYnhsX19lZ2MgKmVnYywKPiAgCj4gICAgICBpZiAoZF9jb25maWctPmNfaW5m by50eXBlID09IExJQlhMX0RPTUFJTl9UWVBFX0hWTSAmJgo+ICAgICAgICAgIChsaWJ4bF9kZWZi b29sX3ZhbChkX2NvbmZpZy0+Yl9pbmZvLnUuaHZtLm5lc3RlZF9odm0pICYmCj4gLSAgICAgICAg IGxpYnhsX2RlZmJvb2xfdmFsKGRfY29uZmlnLT5iX2luZm8udS5odm0uYWx0cDJtKSkpIHsKPiAt ICAgICAgICBMT0coRVJST1IsICJuZXN0ZWRodm0gYW5kIGFsdHAybWh2bSBjYW5ub3QgYmUgdXNl ZCB0b2dldGhlciIpOwo+ICsgICAgICAgIC8qIENhbm5vdCBjb21iaW5lIG5lc3RlZF9odm0gd2l0 aCBhbHRwMm0gb3IgYWx0cDJtaHZtIHBhcmFtcy4gKi8KCk5vIG5lZWQgdG8gaGF2ZSB0aGlzIGNv bW1lbnQuIFRoZSBjb2RlIGlzIHNlbGYtZXhwbGFuYXRvcnkgYW5kIHRoZSBlcnJvcgptZXNzYWdl IGFscmVhZHkgc3RhdGVzIHRoYXQuCgo+ICsgICAgICAgIChsaWJ4bF9kZWZib29sX3ZhbChkX2Nv bmZpZy0+Yl9pbmZvLnUuaHZtLmFsdHAybSkgfHwKPiArICAgICAgICAoZF9jb25maWctPmJfaW5m by5hbHRwMm0gIT0gTElCWExfQUxUUDJNX01PREVfRElTQUJMRUQpKSkpIHsKPiArICAgICAgICBM T0coRVJST1IsICJuZXN0ZWRodm0gYW5kIGFsdHAybSBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciIp Owo+ICAgICAgICAgIGdvdG8gZXJyb3Jfb3V0Owo+ICAgICAgfQo+ICAKPiBkaWZmIC0tZ2l0IGEv dG9vbHMvbGlieGwvbGlieGxfZG9tLmMgYi90b29scy9saWJ4bC9saWJ4bF9kb20uYwo+IGluZGV4 IGVlZjUwNDUuLjMyYWY3NTcgMTAwNjQ0Cj4gLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfZG9tLmMK PiArKysgYi90b29scy9saWJ4bC9saWJ4bF9kb20uYwo+IEBAIC0yOTEsOCArMjkxLDYgQEAgc3Rh dGljIHZvaWQgaHZtX3NldF9jb25mX3BhcmFtcyh4Y19pbnRlcmZhY2UgKmhhbmRsZSwgdWludDMy X3QgZG9taWQsCj4gICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGVmYm9vbF92YWwoaW5mby0+ dS5odm0udnB0X2FsaWduKSk7Cj4gICAgICB4Y19odm1fcGFyYW1fc2V0KGhhbmRsZSwgZG9taWQs IEhWTV9QQVJBTV9ORVNURURIVk0sCj4gICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGVmYm9v bF92YWwoaW5mby0+dS5odm0ubmVzdGVkX2h2bSkpOwo+IC0gICAgeGNfaHZtX3BhcmFtX3NldCho YW5kbGUsIGRvbWlkLCBIVk1fUEFSQU1fQUxUUDJNLAo+IC0gICAgICAgICAgICAgICAgICAgIGxp YnhsX2RlZmJvb2xfdmFsKGluZm8tPnUuaHZtLmFsdHAybSkpOwo+ICB9Cj4gIAo+ICBpbnQgbGli eGxfX2J1aWxkX3ByZShsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKPiBAQCAtMzAxLDYg KzI5OSw3IEBAIGludCBsaWJ4bF9fYnVpbGRfcHJlKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRv bWlkLAo+ICAgICAgbGlieGxfZG9tYWluX2J1aWxkX2luZm8gKmNvbnN0IGluZm8gPSAmZF9jb25m aWctPmJfaW5mbzsKPiAgICAgIGxpYnhsX2N0eCAqY3R4ID0gbGlieGxfX2djX293bmVyKGdjKTsK PiAgICAgIGNoYXIgKnhzX2RvbWlkLCAqY29uX2RvbWlkOwo+ICsgICAgYm9vbCBhbHRwMm1fc3Vw cG9ydCA9IGZhbHNlOwo+ICAgICAgaW50IHJjOwo+ICAKPiAgICAgIGlmICh4Y19kb21haW5fbWF4 X3ZjcHVzKGN0eC0+eGNoLCBkb21pZCwgaW5mby0+bWF4X3ZjcHVzKSAhPSAwKSB7Cj4gQEAgLTQz NCw2ICs0MzMsMzMgQEAgaW50IGxpYnhsX19idWlsZF9wcmUobGlieGxfX2djICpnYywgdWludDMy X3QgZG9taWQsCj4gICNlbmRpZgo+ICAgICAgfQo+ICAKPiArI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IGRlZmluZWQoX194ODZfNjRfXykKPiArICAgIC8qIEFsdGVybmF0ZSBwMm0gc3VwcG9ydCBv biB4ODYgaXMgYXZhaWxhYmxlIG9ubHkgZm9yIEhWTSBndWVzdHMuICovCj4gKyAgICBpZiAoaW5m by0+dHlwZSA9PSBMSUJYTF9ET01BSU5fVFlQRV9IVk0pCj4gKyAgICAgICAgYWx0cDJtX3N1cHBv cnQgPSB0cnVlOwo+ICsjZWxpZiBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19hYXJjaDY0 X18pCj4gKyAgICAvKiBBbHRlcm5hdGUgcDJtIHN1cHBvcnQgb24gQVJNIGlzIGF2YWlsYWJsZSBm b3IgYWxsIGd1ZXN0cy4gKi8KPiArICAgIGFsdHAybV9zdXBwb3J0ID0gdHJ1ZTsKPiArI2VuZGlm CgpTb3JyeSBmb3Igbm90IG1lbnRpb25pbmcgdGhpcyBlYXJsaWVyLCBjYW4geW91IHBsZWFzZSBt YWtlIGEgZnVuY3Rpb24KY2FsbGVkIGxpYnhsX19hcmNoX2FsdHAybV9zdXBwb3J0ZWQgaW4gbGli eGxfe3g4Nixhcm19LmM/Cgo+ICsKPiArICAgIGlmIChhbHRwMm1fc3VwcG9ydCkgewo+ICsgICAg ICAgIC8qIFRoZSBjb25maWcgcGFyYW1ldGVyICJhbHRwMm0iIHJlcGxhY2VzIHRoZSBwYXJhbWV0 ZXIgImFsdHAybWh2bSIuIEZvcgo+ICsgICAgICAgICAqIGxlZ2FjeSByZWFzb25zLCBib3RoIHBh cmFtZXRlcnMgYXJlIGFjY2VwdGVkIG9uIHg4NiBIVk0gZ3Vlc3RzIChvbmx5Cj4gKyAgICAgICAg ICogImFsdHAybSIgaXMgYWNjZXB0ZWQgb24gQVJNIGd1ZXN0cykuCj4gKyAgICAgICAgICoKPiAr ICAgICAgICAgKiBJZiB0aGUgbGVnYWN5IGZpZWxkIGluZm8tPnUuaHZtLmFsdHAybSBpcyBzZXQs IGFjdGl2YXRlIGFsdHAybS4KPiArICAgICAgICAgKiBPdGhlcndpc2Ugc2V0IGFsdHAybSBiYXNl ZCBvbiB0aGUgZmllbGQgaW5mby0+YWx0cDJtLiAqLwo+ICsjaWYgZGVmaW5lZChfX2kzODZfXykg fHwgZGVmaW5lZChfX3g4Nl82NF9fKQo+ICsgICAgICAgIGlmIChpbmZvLT5hbHRwMm0gPT0gTElC WExfQUxUUDJNX01PREVfRElTQUJMRUQgJiYKPiArICAgICAgICAgICAgbGlieGxfZGVmYm9vbF92 YWwoaW5mby0+dS5odm0uYWx0cDJtKSkKPiArICAgICAgICAgICAgeGNfaHZtX3BhcmFtX3NldChj dHgtPnhjaCwgZG9taWQsIEhWTV9QQVJBTV9BTFRQMk0sCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGlieGxfZGVmYm9vbF92YWwoaW5mby0+dS5odm0uYWx0cDJtKSk7Cj4gKyAgICAg ICAgZWxzZQo+ICsjZW5kaWYKPiArICAgICAgICAgICAgeGNfaHZtX3BhcmFtX3NldChjdHgtPnhj aCwgZG9taWQsIEhWTV9QQVJBTV9BTFRQMk0sCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW5mby0+YWx0cDJtKTsKPiArICAgIH0KPiArCgpPciBldmVuIG1vdmUgdGhpcyBzbmlwcGV0 IGFuZCB0aGUgc3VwcG9ydCBjaGVjayB0byBhIGZ1bmN0aW9uIG5hbWVkCmxpYnhsX19hcmNoX3Nl dF9hbHRwMm0/CgpXZWkuCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0 dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK