From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: Re: [PATCH v2 1/8] xen: move XENMAPSPACE_grant_table code into grant_table.c Date: Wed, 6 Sep 2017 08:34:56 +0000 Message-ID: References: <20170906082632.6494-1-jgross@suse.com> <20170906082632.6494-2-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170906082632.6494-2-jgross@suse.com> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: 'Juergen Gross' , "xen-devel@lists.xen.org" Cc: "sstabellini@kernel.org" , Wei Liu , Andrew Cooper , "Tim (Xen.org)" , George Dunlap , "jbeulich@suse.com" , Ian Jackson List-Id: xen-devel@lists.xenproject.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBYZW4tZGV2ZWwgW21haWx0bzp4 ZW4tZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW4ub3JnXSBPbiBCZWhhbGYgT2YNCj4gSnVlcmdlbiBH cm9zcw0KPiBTZW50OiAwNiBTZXB0ZW1iZXIgMjAxNyAwOToyNg0KPiBUbzogeGVuLWRldmVsQGxp c3RzLnhlbi5vcmcNCj4gQ2M6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT47IHNzdGFi ZWxsaW5pQGtlcm5lbC5vcmc7IFdlaSBMaXUNCj4gPHdlaS5saXUyQGNpdHJpeC5jb20+OyBHZW9y Z2UgRHVubGFwIDxHZW9yZ2UuRHVubGFwQGNpdHJpeC5jb20+Ow0KPiBBbmRyZXcgQ29vcGVyIDxB bmRyZXcuQ29vcGVyM0BjaXRyaXguY29tPjsgSWFuIEphY2tzb24NCj4gPElhbi5KYWNrc29uQGNp dHJpeC5jb20+OyBUaW0gKFhlbi5vcmcpIDx0aW1AeGVuLm9yZz47DQo+IGpiZXVsaWNoQHN1c2Uu Y29tDQo+IFN1YmplY3Q6IFtYZW4tZGV2ZWxdIFtQQVRDSCB2MiAxLzhdIHhlbjogbW92ZSBYRU5N QVBTUEFDRV9ncmFudF90YWJsZQ0KPiBjb2RlIGludG8gZ3JhbnRfdGFibGUuYw0KPiANCj4gVGhl IHg4NiBhbmQgYXJtIHZlcnNpb25zIG9mIFhFTk1BUFNQQUNFX2dyYW50X3RhYmxlIGhhbmRsaW5n IGFyZSBuZWFybHkNCj4gaWRlbnRpY2FsLiBNb3ZlIHRoZSBjb2RlIGludG8gYSBmdW5jdGlvbiBp biBncmFudF90YWJsZS5jIGFuZCBhZGQgYW4NCj4gYXJjaGl0ZWN0dXJlIGRlcGVuZGFudCBob29r IHRvIGhhbmRsZSB0aGUgZGlmZmVyZW5jZXMuDQo+IA0KPiBUaGlzIGF0IG9uY2UgZml4ZXMgYSBi dWcgaW4gdGhlIGFybSBjb2RlIHdoaWNoIGRpZG4ndCB1bmxvY2sgdGhlIGdyYW50DQo+IHRhYmxl IGluIGVycm9yIGNhc2UuDQoNCllvdSBhbHNvIG1vdmUgdG8gZ3JlYXRlciB1c2Ugb2YgdHlwZS1z YWZlIG1mbiBpbiB4ODYgeGVubWVtX2FkZF90b19waHlzbWFwX29uZSgpLCB3aGljaCBpcyBhIGdv b2QgdGhpbmcgOi0pLiBNaWdodCBiZSB3b3J0aCBhIG1lbnRpb24gaW4gdGhlIGNvbW1pdCBjb21t ZW50IHRob3VnaC4NCg0KUmV2aWV3ZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNp dHJpeC5jb20+DQoNCj4gDQo+IFNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0Bz dXNlLmNvbT4NCj4gLS0tDQo+IFYyOg0KPiAtIHJlYmFzZWQgdG8gc3RhZ2luZw0KPiAtLS0NCj4g IHhlbi9hcmNoL2FybS9tbS5jICAgICAgICAgICAgICAgICB8IDM2ICsrKystLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCj4gIHhlbi9hcmNoL3g4Ni9tbS5jICAgICAgICAgICAgICAgICB8 IDQxICsrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAgeGVuL2NvbW1v bi9ncmFudF90YWJsZS5jICAgICAgICAgIHwgMzgNCj4gKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrDQo+ICB4ZW4vaW5jbHVkZS9hc20tYXJtL2dyYW50X3RhYmxlLmggfCAgNyAr KysrKysrDQo+ICB4ZW4vaW5jbHVkZS9hc20teDg2L2dyYW50X3RhYmxlLmggfCAgNSArKysrKw0K PiAgeGVuL2luY2x1ZGUveGVuL2dyYW50X3RhYmxlLmggICAgIHwgIDMgKysrDQo+ICA2IGZpbGVz IGNoYW5nZWQsIDY3IGluc2VydGlvbnMoKyksIDYzIGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAt LWdpdCBhL3hlbi9hcmNoL2FybS9tbS5jIGIveGVuL2FyY2gvYXJtL21tLmMNCj4gaW5kZXggYjM5 Njc3ZWFjOS4uM2RiMGUzYmRlYSAxMDA2NDQNCj4gLS0tIGEveGVuL2FyY2gvYXJtL21tLmMNCj4g KysrIGIveGVuL2FyY2gvYXJtL21tLmMNCj4gQEAgLTEyMjksMzkgKzEyMjksMTEgQEAgaW50IHhl bm1lbV9hZGRfdG9fcGh5c21hcF9vbmUoDQo+ICAgICAgc3dpdGNoICggc3BhY2UgKQ0KPiAgICAg IHsNCj4gICAgICBjYXNlIFhFTk1BUFNQQUNFX2dyYW50X3RhYmxlOg0KPiAtICAgICAgICBncmFu dF93cml0ZV9sb2NrKGQtPmdyYW50X3RhYmxlKTsNCj4gLQ0KPiAtICAgICAgICBpZiAoIGQtPmdy YW50X3RhYmxlLT5ndF92ZXJzaW9uID09IDAgKQ0KPiAtICAgICAgICAgICAgZC0+Z3JhbnRfdGFi bGUtPmd0X3ZlcnNpb24gPSAxOw0KPiAtDQo+IC0gICAgICAgIGlmICggZC0+Z3JhbnRfdGFibGUt Pmd0X3ZlcnNpb24gPT0gMiAmJg0KPiAtICAgICAgICAgICAgICAgIChpZHggJiBYRU5NQVBJRFhf Z3JhbnRfdGFibGVfc3RhdHVzKSApDQo+IC0gICAgICAgIHsNCj4gLSAgICAgICAgICAgIGlkeCAm PSB+WEVOTUFQSURYX2dyYW50X3RhYmxlX3N0YXR1czsNCj4gLSAgICAgICAgICAgIGlmICggaWR4 IDwgbnJfc3RhdHVzX2ZyYW1lcyhkLT5ncmFudF90YWJsZSkgKQ0KPiAtICAgICAgICAgICAgICAg IG1mbiA9IHZpcnRfdG9fbWZuKGQtPmdyYW50X3RhYmxlLT5zdGF0dXNbaWR4XSk7DQo+IC0gICAg ICAgIH0NCj4gLSAgICAgICAgZWxzZQ0KPiAtICAgICAgICB7DQo+IC0gICAgICAgICAgICBpZiAo IChpZHggPj0gbnJfZ3JhbnRfZnJhbWVzKGQtPmdyYW50X3RhYmxlKSkgJiYNCj4gLSAgICAgICAg ICAgICAgICAgKGlkeCA8IG1heF9ncmFudF9mcmFtZXMpICkNCj4gLSAgICAgICAgICAgICAgICBn bnR0YWJfZ3Jvd190YWJsZShkLCBpZHggKyAxKTsNCj4gLQ0KPiAtICAgICAgICAgICAgaWYgKCBp ZHggPCBucl9ncmFudF9mcmFtZXMoZC0+Z3JhbnRfdGFibGUpICkNCj4gLSAgICAgICAgICAgICAg ICBtZm4gPSB2aXJ0X3RvX21mbihkLT5ncmFudF90YWJsZS0+c2hhcmVkX3Jhd1tpZHhdKTsNCj4g LSAgICAgICAgfQ0KPiAtDQo+IC0gICAgICAgIGlmICggIW1mbl9lcShtZm4sIElOVkFMSURfTUZO KSApDQo+IC0gICAgICAgIHsNCj4gLSAgICAgICAgICAgIGQtPmFyY2guZ3JhbnRfdGFibGVfZ2Zu W2lkeF0gPSBnZm47DQo+IC0NCj4gLSAgICAgICAgICAgIHQgPSBwMm1fcmFtX3J3Ow0KPiAtICAg ICAgICB9DQo+IC0NCj4gLSAgICAgICAgZ3JhbnRfd3JpdGVfdW5sb2NrKGQtPmdyYW50X3RhYmxl KTsNCj4gKyAgICAgICAgcmMgPSBnbnR0YWJfbWFwX2ZyYW1lKGQsIGlkeCwgZ2ZuLCAmbWZuKTsN Cj4gKyAgICAgICAgaWYgKCByYyApDQo+ICsgICAgICAgICAgICByZXR1cm4gcmM7DQo+IA0KPiAt ICAgICAgICBpZiAoIG1mbl9lcShtZm4sIElOVkFMSURfTUZOKSApDQo+IC0gICAgICAgICAgICBy ZXR1cm4gLUVJTlZBTDsNCj4gKyAgICAgICAgdCA9IHAybV9yYW1fcnc7DQo+IA0KPiAgICAgICAg ICBicmVhazsNCj4gICAgICBjYXNlIFhFTk1BUFNQQUNFX3NoYXJlZF9pbmZvOg0KPiBkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L21tLmMgYi94ZW4vYXJjaC94ODYvbW0uYw0KPiBpbmRleCBlNWEw MjljOWJlLi4zZDg5OWU0YThlIDEwMDY0NA0KPiAtLS0gYS94ZW4vYXJjaC94ODYvbW0uYw0KPiAr KysgYi94ZW4vYXJjaC94ODYvbW0uYw0KPiBAQCAtNDYzMSw0MCArNDYzMSwxOSBAQCBpbnQgeGVu bWVtX2FkZF90b19waHlzbWFwX29uZSgNCj4gIHsNCj4gICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpw YWdlID0gTlVMTDsNCj4gICAgICB1bnNpZ25lZCBsb25nIGdmbiA9IDA7IC8qIGdjYyAuLi4gKi8N Cj4gLSAgICB1bnNpZ25lZCBsb25nIHByZXZfbWZuLCBtZm4gPSAwLCBvbGRfZ3BmbjsNCj4gKyAg ICB1bnNpZ25lZCBsb25nIHByZXZfbWZuLCBvbGRfZ3BmbjsNCj4gICAgICBpbnQgcmMgPSAwOw0K PiArICAgIG1mbl90IG1mbiA9IElOVkFMSURfTUZOOw0KPiAgICAgIHAybV90eXBlX3QgcDJtdDsN Cj4gDQo+ICAgICAgc3dpdGNoICggc3BhY2UgKQ0KPiAgICAgIHsNCj4gICAgICAgICAgY2FzZSBY RU5NQVBTUEFDRV9zaGFyZWRfaW5mbzoNCj4gICAgICAgICAgICAgIGlmICggaWR4ID09IDAgKQ0K PiAtICAgICAgICAgICAgICAgIG1mbiA9IHZpcnRfdG9fbWZuKGQtPnNoYXJlZF9pbmZvKTsNCj4g KyAgICAgICAgICAgICAgICBtZm4gPSBfbWZuKHZpcnRfdG9fbWZuKGQtPnNoYXJlZF9pbmZvKSk7 DQo+ICAgICAgICAgICAgICBicmVhazsNCj4gICAgICAgICAgY2FzZSBYRU5NQVBTUEFDRV9ncmFu dF90YWJsZToNCj4gLSAgICAgICAgICAgIGdyYW50X3dyaXRlX2xvY2soZC0+Z3JhbnRfdGFibGUp Ow0KPiAtDQo+IC0gICAgICAgICAgICBpZiAoIGQtPmdyYW50X3RhYmxlLT5ndF92ZXJzaW9uID09 IDAgKQ0KPiAtICAgICAgICAgICAgICAgIGQtPmdyYW50X3RhYmxlLT5ndF92ZXJzaW9uID0gMTsN Cj4gLQ0KPiAtICAgICAgICAgICAgaWYgKCBkLT5ncmFudF90YWJsZS0+Z3RfdmVyc2lvbiA9PSAy ICYmDQo+IC0gICAgICAgICAgICAgICAgIChpZHggJiBYRU5NQVBJRFhfZ3JhbnRfdGFibGVfc3Rh dHVzKSApDQo+IC0gICAgICAgICAgICB7DQo+IC0gICAgICAgICAgICAgICAgaWR4ICY9IH5YRU5N QVBJRFhfZ3JhbnRfdGFibGVfc3RhdHVzOw0KPiAtICAgICAgICAgICAgICAgIGlmICggaWR4IDwg bnJfc3RhdHVzX2ZyYW1lcyhkLT5ncmFudF90YWJsZSkgKQ0KPiAtICAgICAgICAgICAgICAgICAg ICBtZm4gPSB2aXJ0X3RvX21mbihkLT5ncmFudF90YWJsZS0+c3RhdHVzW2lkeF0pOw0KPiAtICAg ICAgICAgICAgfQ0KPiAtICAgICAgICAgICAgZWxzZQ0KPiAtICAgICAgICAgICAgew0KPiAtICAg ICAgICAgICAgICAgIGlmICggKGlkeCA+PSBucl9ncmFudF9mcmFtZXMoZC0+Z3JhbnRfdGFibGUp KSAmJg0KPiAtICAgICAgICAgICAgICAgICAgICAgKGlkeCA8IG1heF9ncmFudF9mcmFtZXMpICkN Cj4gLSAgICAgICAgICAgICAgICAgICAgZ250dGFiX2dyb3dfdGFibGUoZCwgaWR4ICsgMSk7DQo+ IC0NCj4gLSAgICAgICAgICAgICAgICBpZiAoIGlkeCA8IG5yX2dyYW50X2ZyYW1lcyhkLT5ncmFu dF90YWJsZSkgKQ0KPiAtICAgICAgICAgICAgICAgICAgICBtZm4gPSB2aXJ0X3RvX21mbihkLT5n cmFudF90YWJsZS0+c2hhcmVkX3Jhd1tpZHhdKTsNCj4gLSAgICAgICAgICAgIH0NCj4gLQ0KPiAt ICAgICAgICAgICAgZ3JhbnRfd3JpdGVfdW5sb2NrKGQtPmdyYW50X3RhYmxlKTsNCj4gKyAgICAg ICAgICAgIGdudHRhYl9tYXBfZnJhbWUoZCwgaWR4LCBncGZuLCAmbWZuKTsNCj4gICAgICAgICAg ICAgIGJyZWFrOw0KPiAgICAgICAgICBjYXNlIFhFTk1BUFNQQUNFX2dtZm5fcmFuZ2U6DQo+ICAg ICAgICAgIGNhc2UgWEVOTUFQU1BBQ0VfZ21mbjoNCj4gQEAgLTQ2ODEsOCArNDY2MCw4IEBAIGlu dCB4ZW5tZW1fYWRkX3RvX3BoeXNtYXBfb25lKA0KPiAgICAgICAgICAgICAgfQ0KPiAgICAgICAg ICAgICAgaWYgKCAhZ2V0X3BhZ2VfZnJvbV9tZm4oX21mbihpZHgpLCBkKSApDQo+ICAgICAgICAg ICAgICAgICAgYnJlYWs7DQo+IC0gICAgICAgICAgICBtZm4gPSBpZHg7DQo+IC0gICAgICAgICAg ICBwYWdlID0gbWZuX3RvX3BhZ2UoX21mbihtZm4pKTsNCj4gKyAgICAgICAgICAgIG1mbiA9IF9t Zm4oaWR4KTsNCj4gKyAgICAgICAgICAgIHBhZ2UgPSBtZm5fdG9fcGFnZShtZm4pOw0KPiAgICAg ICAgICAgICAgYnJlYWs7DQo+ICAgICAgICAgIH0NCj4gICAgICAgICAgY2FzZSBYRU5NQVBTUEFD RV9nbWZuX2ZvcmVpZ246DQo+IEBAIC00NjkxLDcgKzQ2NzAsNyBAQCBpbnQgeGVubWVtX2FkZF90 b19waHlzbWFwX29uZSgNCj4gICAgICAgICAgICAgIGJyZWFrOw0KPiAgICAgIH0NCj4gDQo+IC0g ICAgaWYgKCAhcGFnaW5nX21vZGVfdHJhbnNsYXRlKGQpIHx8IChtZm4gPT0gMCkgKQ0KPiArICAg IGlmICggIXBhZ2luZ19tb2RlX3RyYW5zbGF0ZShkKSB8fCBtZm5fZXEobWZuLCBJTlZBTElEX01G TikgKQ0KPiAgICAgIHsNCj4gICAgICAgICAgcmMgPSAtRUlOVkFMOw0KPiAgICAgICAgICBnb3Rv IHB1dF9ib3RoOw0KPiBAQCAtNDcxNSwxNiArNDY5NCwxNiBAQCBpbnQgeGVubWVtX2FkZF90b19w aHlzbWFwX29uZSgNCj4gICAgICAgICAgZ290byBwdXRfYm90aDsNCj4gDQo+ICAgICAgLyogVW5t YXAgZnJvbSBvbGQgbG9jYXRpb24sIGlmIGFueS4gKi8NCj4gLSAgICBvbGRfZ3BmbiA9IGdldF9n cGZuX2Zyb21fbWZuKG1mbik7DQo+ICsgICAgb2xkX2dwZm4gPSBnZXRfZ3Bmbl9mcm9tX21mbiht Zm5feChtZm4pKTsNCj4gICAgICBBU1NFUlQoIG9sZF9ncGZuICE9IFNIQVJFRF9NMlBfRU5UUlkg KTsNCj4gICAgICBpZiAoIHNwYWNlID09IFhFTk1BUFNQQUNFX2dtZm4gfHwgc3BhY2UgPT0NCj4g WEVOTUFQU1BBQ0VfZ21mbl9yYW5nZSApDQo+ICAgICAgICAgIEFTU0VSVCggb2xkX2dwZm4gPT0g Z2ZuICk7DQo+ICAgICAgaWYgKCBvbGRfZ3BmbiAhPSBJTlZBTElEX00yUF9FTlRSWSApDQo+IC0g ICAgICAgIHJjID0gZ3Vlc3RfcGh5c21hcF9yZW1vdmVfcGFnZShkLCBfZ2ZuKG9sZF9ncGZuKSwg X21mbihtZm4pLA0KPiBQQUdFX09SREVSXzRLKTsNCj4gKyAgICAgICAgcmMgPSBndWVzdF9waHlz bWFwX3JlbW92ZV9wYWdlKGQsIF9nZm4ob2xkX2dwZm4pLCBtZm4sDQo+IFBBR0VfT1JERVJfNEsp Ow0KPiANCj4gICAgICAvKiBNYXAgYXQgbmV3IGxvY2F0aW9uLiAqLw0KPiAgICAgIGlmICggIXJj ICkNCj4gLSAgICAgICAgcmMgPSBndWVzdF9waHlzbWFwX2FkZF9wYWdlKGQsIGdwZm4sIF9tZm4o bWZuKSwgUEFHRV9PUkRFUl80Syk7DQo+ICsgICAgICAgIHJjID0gZ3Vlc3RfcGh5c21hcF9hZGRf cGFnZShkLCBncGZuLCBtZm4sIFBBR0VfT1JERVJfNEspOw0KPiANCj4gICBwdXRfYm90aDoNCj4g ICAgICAvKiBJbiB0aGUgWEVOTUFQU1BBQ0VfZ21mbiwgd2UgdG9vayBhIHJlZiBvZiB0aGUgZ2Zu IGF0IHRoZSB0b3AgKi8NCj4gZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYyBi L3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYw0KPiBpbmRleCBmYjM4NTljZThlLi40YzJlOWU0MGE1 IDEwMDY0NA0KPiAtLS0gYS94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMNCj4gKysrIGIveGVuL2Nv bW1vbi9ncmFudF90YWJsZS5jDQo+IEBAIC0zNjA3LDYgKzM2MDcsNDQgQEAgaW50IG1lbV9zaGFy aW5nX2dyZWZfdG9fZ2ZuKHN0cnVjdCBncmFudF90YWJsZQ0KPiAqZ3QsIGdyYW50X3JlZl90IHJl ZiwNCj4gIH0NCj4gICNlbmRpZg0KPiANCj4gK2ludCBnbnR0YWJfbWFwX2ZyYW1lKHN0cnVjdCBk b21haW4gKmQsIHVuc2lnbmVkIGxvbmcgaWR4LCBnZm5fdCBnZm4sDQo+ICsgICAgICAgICAgICAg ICAgICAgICBtZm5fdCAqbWZuKQ0KPiArew0KPiArICAgIGludCByYyA9IDA7DQo+ICsgICAgc3Ry dWN0IGdyYW50X3RhYmxlICpndCA9IGQtPmdyYW50X3RhYmxlOw0KPiArDQo+ICsgICAgZ3JhbnRf d3JpdGVfbG9jayhndCk7DQo+ICsNCj4gKyAgICBpZiAoIGd0LT5ndF92ZXJzaW9uID09IDAgKQ0K PiArICAgICAgICBndC0+Z3RfdmVyc2lvbiA9IDE7DQo+ICsNCj4gKyAgICBpZiAoIGd0LT5ndF92 ZXJzaW9uID09IDIgJiYNCj4gKyAgICAgICAgIChpZHggJiBYRU5NQVBJRFhfZ3JhbnRfdGFibGVf c3RhdHVzKSApDQo+ICsgICAgew0KPiArICAgICAgICBpZHggJj0gflhFTk1BUElEWF9ncmFudF90 YWJsZV9zdGF0dXM7DQo+ICsgICAgICAgIGlmICggaWR4IDwgbnJfc3RhdHVzX2ZyYW1lcyhndCkg KQ0KPiArICAgICAgICAgICAgKm1mbiA9IF9tZm4odmlydF90b19tZm4oZ3QtPnN0YXR1c1tpZHhd KSk7DQo+ICsgICAgICAgIGVsc2UNCj4gKyAgICAgICAgICAgIHJjID0gLUVJTlZBTDsNCj4gKyAg ICB9DQo+ICsgICAgZWxzZQ0KPiArICAgIHsNCj4gKyAgICAgICAgaWYgKCAoaWR4ID49IG5yX2dy YW50X2ZyYW1lcyhndCkpICYmIChpZHggPCBtYXhfZ3JhbnRfZnJhbWVzKSApDQo+ICsgICAgICAg ICAgICBnbnR0YWJfZ3Jvd190YWJsZShkLCBpZHggKyAxKTsNCj4gKw0KPiArICAgICAgICBpZiAo IGlkeCA8IG5yX2dyYW50X2ZyYW1lcyhndCkgKQ0KPiArICAgICAgICAgICAgKm1mbiA9IF9tZm4o dmlydF90b19tZm4oZ3QtPnNoYXJlZF9yYXdbaWR4XSkpOw0KPiArICAgICAgICBlbHNlDQo+ICsg ICAgICAgICAgICByYyA9IC1FSU5WQUw7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgZ250dGFiX3Nl dF9mcmFtZV9nZm4oZCwgaWR4LCBnZm4pOw0KPiArDQo+ICsgICAgZ3JhbnRfd3JpdGVfdW5sb2Nr KGd0KTsNCj4gKw0KPiArICAgIHJldHVybiByYzsNCj4gK30NCj4gKw0KPiAgc3RhdGljIHZvaWQg Z250dGFiX3VzYWdlX3ByaW50KHN0cnVjdCBkb21haW4gKnJkKQ0KPiAgew0KPiAgICAgIGludCBm aXJzdCA9IDE7DQo+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20tYXJtL2dyYW50X3RhYmxl LmggYi94ZW4vaW5jbHVkZS9hc20tDQo+IGFybS9ncmFudF90YWJsZS5oDQo+IGluZGV4IGJjNGQ2 MWE5NDAuLjBhMjQ4YTc2NWEgMTAwNjQ0DQo+IC0tLSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vZ3Jh bnRfdGFibGUuaA0KPiArKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL2dyYW50X3RhYmxlLmgNCj4g QEAgLTIsNiArMiw3IEBADQo+ICAjZGVmaW5lIF9fQVNNX0dSQU5UX1RBQkxFX0hfXw0KPiANCj4g ICNpbmNsdWRlIDx4ZW4vZ3JhbnRfdGFibGUuaD4NCj4gKyNpbmNsdWRlIDx4ZW4vc2NoZWQuaD4N Cj4gDQo+ICAjZGVmaW5lIElOSVRJQUxfTlJfR1JBTlRfRlJBTUVTIDQNCj4gDQo+IEBAIC0yMSw2 ICsyMiwxMiBAQCBzdGF0aWMgaW5saW5lIGludCByZXBsYWNlX2dyYW50X3N1cHBvcnRlZCh2b2lk KQ0KPiAgICAgIHJldHVybiAxOw0KPiAgfQ0KPiANCj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBnbnR0 YWJfc2V0X2ZyYW1lX2dmbihzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nDQo+IGlkeCwN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZm5fdCBnZm4pDQo+ ICt7DQo+ICsgICAgZC0+YXJjaC5ncmFudF90YWJsZV9nZm5baWR4XSA9IGdmbjsNCj4gK30NCj4g Kw0KPiAgI2RlZmluZSBnbnR0YWJfY3JlYXRlX3NoYXJlZF9wYWdlKGQsIHQsIGkpICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwNCj4gICAgICBkbyB7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICAgICAgICAg IHNoYXJlX3hlbl9wYWdlX3dpdGhfZ3Vlc3QoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXA0KPiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9ncmFudF90YWJs ZS5oIGIveGVuL2luY2x1ZGUvYXNtLQ0KPiB4ODYvZ3JhbnRfdGFibGUuaA0KPiBpbmRleCAzM2Iy Zjg4Yjk2Li5jODY1OTk5YTMzIDEwMDY0NA0KPiAtLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2dy YW50X3RhYmxlLmgNCj4gKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9ncmFudF90YWJsZS5oDQo+ IEBAIC03NSw2ICs3NSwxMSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZ250dGFiX2NsZWFyX2ZsYWco dW5zaWduZWQgaW50IG5yLA0KPiB1aW50MTZfdCAqc3QpDQo+ICAgICAgYXNtIHZvbGF0aWxlICgi bG9jayBidHJ3ICV3MSwlMCIgOiAiPW0iICgqc3QpIDogIklyIiAobnIpLCAibSIgKCpzdCkpOw0K PiAgfQ0KPiANCj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBnbnR0YWJfc2V0X2ZyYW1lX2dmbihzdHJ1 Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nDQo+IGlkeCwNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBnZm5fdCBnZm4pDQo+ICt7DQo+ICt9DQo+ICsNCj4gIC8q IEZvcmVpZ24gbWFwcGluZ3Mgb2YgSEhWTS1ndWVzdCBwYWdlcyBkbyBub3QgbW9kaWZ5IHRoZSB0 eXBlIGNvdW50LiAqLw0KPiAgI2RlZmluZSBnbnR0YWJfaG9zdF9tYXBwaW5nX2dldF9wYWdlX3R5 cGUocm8sIGxkLCByZCkgICBcDQo+ICAgICAgKCEocm8pICYmICgoKGxkKSA9PSAocmQpKSB8fCAh cGFnaW5nX21vZGVfZXh0ZXJuYWwocmQpKSkNCj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hl bi9ncmFudF90YWJsZS5oIGIveGVuL2luY2x1ZGUveGVuL2dyYW50X3RhYmxlLmgNCj4gaW5kZXgg YWYyNjlhMTA4ZC4uNDNlYzZjNGQ4MCAxMDA2NDQNCj4gLS0tIGEveGVuL2luY2x1ZGUveGVuL2dy YW50X3RhYmxlLmgNCj4gKysrIGIveGVuL2luY2x1ZGUveGVuL2dyYW50X3RhYmxlLmgNCj4gQEAg LTEzNiw0ICsxMzYsNyBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBncmFudF90b19zdGF0 dXNfZnJhbWVzKGludA0KPiBncmFudF9mcmFtZXMpDQo+ICBpbnQgbWVtX3NoYXJpbmdfZ3JlZl90 b19nZm4oc3RydWN0IGdyYW50X3RhYmxlICpndCwgZ3JhbnRfcmVmX3QgcmVmLA0KPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGdmbl90ICpnZm4sIHVpbnQxNl90ICpzdGF0dXMpOw0KPiAN Cj4gK2ludCBnbnR0YWJfbWFwX2ZyYW1lKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcg aWR4LCBnZm5fdCBnZm4sDQo+ICsgICAgICAgICAgICAgICAgICAgICBtZm5fdCAqbWZuKTsNCj4g Kw0KPiAgI2VuZGlmIC8qIF9fWEVOX0dSQU5UX1RBQkxFX0hfXyAqLw0KPiAtLQ0KPiAyLjEyLjMN Cj4gDQo+IA0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Xw0KPiBYZW4tZGV2ZWwgbWFpbGluZyBsaXN0DQo+IFhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnDQo+ IGh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwNCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVs QGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=