From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: Re: [PATCH v7 02/16] xen: move XENMAPSPACE_grant_table code into grant_table.c Date: Tue, 19 Sep 2017 10:08:42 +0000 Message-ID: References: <20170919095852.15785-1-jgross@suse.com> <20170919095852.15785-3-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1duFSQ-00038w-GP for xen-devel@lists.xenproject.org; Tue, 19 Sep 2017 10:08:46 +0000 In-Reply-To: <20170919095852.15785-3-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.xenproject.org" Cc: "sstabellini@kernel.org" , Wei Liu , Andrew Cooper , "Tim (Xen.org)" , George Dunlap , "julien.grall@arm.com" , "jbeulich@suse.com" , Ian Jackson , "dgdegra@tycho.nsa.gov" List-Id: xen-devel@lists.xenproject.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBYZW4tZGV2ZWwgW21haWx0bzp4 ZW4tZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW4ub3JnXSBPbiBCZWhhbGYgT2YNCj4gSnVlcmdlbiBH cm9zcw0KPiBTZW50OiAxOSBTZXB0ZW1iZXIgMjAxNyAxMDo1OQ0KPiBUbzogeGVuLWRldmVsQGxp c3RzLnhlbnByb2plY3Qub3JnDQo+IENjOiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+ OyBzc3RhYmVsbGluaUBrZXJuZWwub3JnOyBXZWkgTGl1DQo+IDx3ZWkubGl1MkBjaXRyaXguY29t PjsgR2VvcmdlIER1bmxhcCA8R2VvcmdlLkR1bmxhcEBjaXRyaXguY29tPjsNCj4gQW5kcmV3IENv b3BlciA8QW5kcmV3LkNvb3BlcjNAY2l0cml4LmNvbT47IElhbiBKYWNrc29uDQo+IDxJYW4uSmFj a3NvbkBjaXRyaXguY29tPjsgVGltIChYZW4ub3JnKSA8dGltQHhlbi5vcmc+Ow0KPiBqdWxpZW4u Z3JhbGxAYXJtLmNvbTsgamJldWxpY2hAc3VzZS5jb207IGRnZGVncmFAdHljaG8ubnNhLmdvdg0K PiBTdWJqZWN0OiBbWGVuLWRldmVsXSBbUEFUQ0ggdjcgMDIvMTZdIHhlbjogbW92ZQ0KPiBYRU5N QVBTUEFDRV9ncmFudF90YWJsZSBjb2RlIGludG8gZ3JhbnRfdGFibGUuYw0KPiANCj4gVGhlIHg4 NiBhbmQgYXJtIHZlcnNpb25zIG9mIFhFTk1BUFNQQUNFX2dyYW50X3RhYmxlIGhhbmRsaW5nIGFy ZSBuZWFybHkNCj4gaWRlbnRpY2FsLiBNb3ZlIHRoZSBjb2RlIGludG8gYSBmdW5jdGlvbiBpbiBn cmFudF90YWJsZS5jIGFuZCBhZGQgYW4NCj4gYXJjaGl0ZWN0dXJlIGRlcGVuZGFudCBob29rIHRv IGhhbmRsZSB0aGUgZGlmZmVyZW5jZXMuDQo+IA0KPiBTd2l0Y2ggdG8gbWZuX3QgaW4gb3JkZXIg dG8gYmUgbW9yZSB0eXBlIHNhZmUuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBKdWVyZ2VuIEdyb3Nz IDxqZ3Jvc3NAc3VzZS5jb20+DQoNClJldmlld2VkLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVy cmFudEBjaXRyaXguY29tPg0KDQo+IC0tLQ0KPiBWNzoNCj4gLSBvbmx5IGNhbGwgZ250dGFiX3Nl dF9mcmFtZV9nZm4oKSBpZiBubyBlcnJvciAoSnVsaWVuIEdyYWxsKQ0KPiANCj4gVjY6DQo+IC0g dGVzdCByYyBvZiBnbnR0YWJfbWFwX2ZyYW1lKCkgKEphbiBCZXVsaWNoKQ0KPiANCj4gVjM6DQo+ IC0gdXBkYXRlIGNvbW1pdCBtZXNzYWdlDQo+IA0KPiBWMjoNCj4gLSByZWJhc2VkIHRvIHN0YWdp bmcNCj4gLS0tDQo+ICB4ZW4vYXJjaC9hcm0vbW0uYyAgICAgICAgICAgICAgICAgfCAzNiArKysr LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAgeGVuL2FyY2gveDg2L21tLmMgICAgICAg ICAgICAgICAgIHwgNDMgKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ ICB4ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMgICAgICAgICAgfCAzOQ0KPiArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKw0KPiAgeGVuL2luY2x1ZGUvYXNtLWFybS9ncmFudF90YWJs ZS5oIHwgIDcgKysrKysrKw0KPiAgeGVuL2luY2x1ZGUvYXNtLXg4Ni9ncmFudF90YWJsZS5oIHwg IDUgKysrKysNCj4gIHhlbi9pbmNsdWRlL3hlbi9ncmFudF90YWJsZS5oICAgICB8ICAzICsrKw0K PiAgNiBmaWxlcyBjaGFuZ2VkLCA3MCBpbnNlcnRpb25zKCspLCA2MyBkZWxldGlvbnMoLSkNCj4g DQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vbW0uYyBiL3hlbi9hcmNoL2FybS9tbS5jDQo+ IGluZGV4IDk2NWQwNTczYTQuLjk0MGRkYmVlZGQgMTAwNjQ0DQo+IC0tLSBhL3hlbi9hcmNoL2Fy bS9tbS5jDQo+ICsrKyBiL3hlbi9hcmNoL2FybS9tbS5jDQo+IEBAIC0xMjMxLDM5ICsxMjMxLDEx IEBAIGludCB4ZW5tZW1fYWRkX3RvX3BoeXNtYXBfb25lKA0KPiAgICAgIHN3aXRjaCAoIHNwYWNl ICkNCj4gICAgICB7DQo+ICAgICAgY2FzZSBYRU5NQVBTUEFDRV9ncmFudF90YWJsZToNCj4gLSAg ICAgICAgZ3JhbnRfd3JpdGVfbG9jayhkLT5ncmFudF90YWJsZSk7DQo+IC0NCj4gLSAgICAgICAg aWYgKCBkLT5ncmFudF90YWJsZS0+Z3RfdmVyc2lvbiA9PSAwICkNCj4gLSAgICAgICAgICAgIGQt PmdyYW50X3RhYmxlLT5ndF92ZXJzaW9uID0gMTsNCj4gLQ0KPiAtICAgICAgICBpZiAoIGQtPmdy YW50X3RhYmxlLT5ndF92ZXJzaW9uID09IDIgJiYNCj4gLSAgICAgICAgICAgICAgICAoaWR4ICYg WEVOTUFQSURYX2dyYW50X3RhYmxlX3N0YXR1cykgKQ0KPiAtICAgICAgICB7DQo+IC0gICAgICAg ICAgICBpZHggJj0gflhFTk1BUElEWF9ncmFudF90YWJsZV9zdGF0dXM7DQo+IC0gICAgICAgICAg ICBpZiAoIGlkeCA8IG5yX3N0YXR1c19mcmFtZXMoZC0+Z3JhbnRfdGFibGUpICkNCj4gLSAgICAg ICAgICAgICAgICBtZm4gPSB2aXJ0X3RvX21mbihkLT5ncmFudF90YWJsZS0+c3RhdHVzW2lkeF0p Ow0KPiAtICAgICAgICB9DQo+IC0gICAgICAgIGVsc2UNCj4gLSAgICAgICAgew0KPiAtICAgICAg ICAgICAgaWYgKCAoaWR4ID49IG5yX2dyYW50X2ZyYW1lcyhkLT5ncmFudF90YWJsZSkpICYmDQo+ IC0gICAgICAgICAgICAgICAgIChpZHggPCBtYXhfZ3JhbnRfZnJhbWVzKSApDQo+IC0gICAgICAg ICAgICAgICAgZ250dGFiX2dyb3dfdGFibGUoZCwgaWR4ICsgMSk7DQo+IC0NCj4gLSAgICAgICAg ICAgIGlmICggaWR4IDwgbnJfZ3JhbnRfZnJhbWVzKGQtPmdyYW50X3RhYmxlKSApDQo+IC0gICAg ICAgICAgICAgICAgbWZuID0gdmlydF90b19tZm4oZC0+Z3JhbnRfdGFibGUtPnNoYXJlZF9yYXdb aWR4XSk7DQo+IC0gICAgICAgIH0NCj4gLQ0KPiAtICAgICAgICBpZiAoICFtZm5fZXEobWZuLCBJ TlZBTElEX01GTikgKQ0KPiAtICAgICAgICB7DQo+IC0gICAgICAgICAgICBkLT5hcmNoLmdyYW50 X3RhYmxlX2dmbltpZHhdID0gZ2ZuOw0KPiAtDQo+IC0gICAgICAgICAgICB0ID0gcDJtX3JhbV9y dzsNCj4gLSAgICAgICAgfQ0KPiAtDQo+IC0gICAgICAgIGdyYW50X3dyaXRlX3VubG9jayhkLT5n cmFudF90YWJsZSk7DQo+ICsgICAgICAgIHJjID0gZ250dGFiX21hcF9mcmFtZShkLCBpZHgsIGdm biwgJm1mbik7DQo+ICsgICAgICAgIGlmICggcmMgKQ0KPiArICAgICAgICAgICAgcmV0dXJuIHJj Ow0KPiANCj4gLSAgICAgICAgaWYgKCBtZm5fZXEobWZuLCBJTlZBTElEX01GTikgKQ0KPiAtICAg ICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+ICsgICAgICAgIHQgPSBwMm1fcmFtX3J3Ow0KPiAN Cj4gICAgICAgICAgYnJlYWs7DQo+ICAgICAgY2FzZSBYRU5NQVBTUEFDRV9zaGFyZWRfaW5mbzoN Cj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS5jIGIveGVuL2FyY2gveDg2L21tLmMNCj4g aW5kZXggMmFiZWM2N2Y2YS4uNjdmNTgzZTNhNyAxMDA2NDQNCj4gLS0tIGEveGVuL2FyY2gveDg2 L21tLmMNCj4gKysrIGIveGVuL2FyY2gveDg2L21tLmMNCj4gQEAgLTQ1NDksNDAgKzQ1NDksMjEg QEAgaW50IHhlbm1lbV9hZGRfdG9fcGh5c21hcF9vbmUoDQo+ICB7DQo+ICAgICAgc3RydWN0IHBh Z2VfaW5mbyAqcGFnZSA9IE5VTEw7DQo+ICAgICAgdW5zaWduZWQgbG9uZyBnZm4gPSAwOyAvKiBn Y2MgLi4uICovDQo+IC0gICAgdW5zaWduZWQgbG9uZyBwcmV2X21mbiwgbWZuID0gMCwgb2xkX2dw Zm47DQo+ICsgICAgdW5zaWduZWQgbG9uZyBwcmV2X21mbiwgb2xkX2dwZm47DQo+ICAgICAgaW50 IHJjID0gMDsNCj4gKyAgICBtZm5fdCBtZm4gPSBJTlZBTElEX01GTjsNCj4gICAgICBwMm1fdHlw ZV90IHAybXQ7DQo+IA0KPiAgICAgIHN3aXRjaCAoIHNwYWNlICkNCj4gICAgICB7DQo+ICAgICAg ICAgIGNhc2UgWEVOTUFQU1BBQ0Vfc2hhcmVkX2luZm86DQo+ICAgICAgICAgICAgICBpZiAoIGlk eCA9PSAwICkNCj4gLSAgICAgICAgICAgICAgICBtZm4gPSB2aXJ0X3RvX21mbihkLT5zaGFyZWRf aW5mbyk7DQo+ICsgICAgICAgICAgICAgICAgbWZuID0gX21mbih2aXJ0X3RvX21mbihkLT5zaGFy ZWRfaW5mbykpOw0KPiAgICAgICAgICAgICAgYnJlYWs7DQo+ICAgICAgICAgIGNhc2UgWEVOTUFQ U1BBQ0VfZ3JhbnRfdGFibGU6DQo+IC0gICAgICAgICAgICBncmFudF93cml0ZV9sb2NrKGQtPmdy YW50X3RhYmxlKTsNCj4gLQ0KPiAtICAgICAgICAgICAgaWYgKCBkLT5ncmFudF90YWJsZS0+Z3Rf dmVyc2lvbiA9PSAwICkNCj4gLSAgICAgICAgICAgICAgICBkLT5ncmFudF90YWJsZS0+Z3RfdmVy c2lvbiA9IDE7DQo+IC0NCj4gLSAgICAgICAgICAgIGlmICggZC0+Z3JhbnRfdGFibGUtPmd0X3Zl cnNpb24gPT0gMiAmJg0KPiAtICAgICAgICAgICAgICAgICAoaWR4ICYgWEVOTUFQSURYX2dyYW50 X3RhYmxlX3N0YXR1cykgKQ0KPiAtICAgICAgICAgICAgew0KPiAtICAgICAgICAgICAgICAgIGlk eCAmPSB+WEVOTUFQSURYX2dyYW50X3RhYmxlX3N0YXR1czsNCj4gLSAgICAgICAgICAgICAgICBp ZiAoIGlkeCA8IG5yX3N0YXR1c19mcmFtZXMoZC0+Z3JhbnRfdGFibGUpICkNCj4gLSAgICAgICAg ICAgICAgICAgICAgbWZuID0gdmlydF90b19tZm4oZC0+Z3JhbnRfdGFibGUtPnN0YXR1c1tpZHhd KTsNCj4gLSAgICAgICAgICAgIH0NCj4gLSAgICAgICAgICAgIGVsc2UNCj4gLSAgICAgICAgICAg IHsNCj4gLSAgICAgICAgICAgICAgICBpZiAoIChpZHggPj0gbnJfZ3JhbnRfZnJhbWVzKGQtPmdy YW50X3RhYmxlKSkgJiYNCj4gLSAgICAgICAgICAgICAgICAgICAgIChpZHggPCBtYXhfZ3JhbnRf ZnJhbWVzKSApDQo+IC0gICAgICAgICAgICAgICAgICAgIGdudHRhYl9ncm93X3RhYmxlKGQsIGlk eCArIDEpOw0KPiAtDQo+IC0gICAgICAgICAgICAgICAgaWYgKCBpZHggPCBucl9ncmFudF9mcmFt ZXMoZC0+Z3JhbnRfdGFibGUpICkNCj4gLSAgICAgICAgICAgICAgICAgICAgbWZuID0gdmlydF90 b19tZm4oZC0+Z3JhbnRfdGFibGUtPnNoYXJlZF9yYXdbaWR4XSk7DQo+IC0gICAgICAgICAgICB9 DQo+IC0NCj4gLSAgICAgICAgICAgIGdyYW50X3dyaXRlX3VubG9jayhkLT5ncmFudF90YWJsZSk7 DQo+ICsgICAgICAgICAgICByYyA9IGdudHRhYl9tYXBfZnJhbWUoZCwgaWR4LCBncGZuLCAmbWZu KTsNCj4gKyAgICAgICAgICAgIGlmICggcmMgKQ0KPiArICAgICAgICAgICAgICAgIHJldHVybiBy YzsNCj4gICAgICAgICAgICAgIGJyZWFrOw0KPiAgICAgICAgICBjYXNlIFhFTk1BUFNQQUNFX2dt Zm5fcmFuZ2U6DQo+ICAgICAgICAgIGNhc2UgWEVOTUFQU1BBQ0VfZ21mbjoNCj4gQEAgLTQ1OTks OCArNDU4MCw4IEBAIGludCB4ZW5tZW1fYWRkX3RvX3BoeXNtYXBfb25lKA0KPiAgICAgICAgICAg ICAgfQ0KPiAgICAgICAgICAgICAgaWYgKCAhZ2V0X3BhZ2VfZnJvbV9tZm4oX21mbihpZHgpLCBk KSApDQo+ICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+IC0gICAgICAgICAgICBtZm4gPSBpZHg7 DQo+IC0gICAgICAgICAgICBwYWdlID0gbWZuX3RvX3BhZ2UoX21mbihtZm4pKTsNCj4gKyAgICAg ICAgICAgIG1mbiA9IF9tZm4oaWR4KTsNCj4gKyAgICAgICAgICAgIHBhZ2UgPSBtZm5fdG9fcGFn ZShtZm4pOw0KPiAgICAgICAgICAgICAgYnJlYWs7DQo+ICAgICAgICAgIH0NCj4gICAgICAgICAg Y2FzZSBYRU5NQVBTUEFDRV9nbWZuX2ZvcmVpZ246DQo+IEBAIC00NjA5LDcgKzQ1OTAsNyBAQCBp bnQgeGVubWVtX2FkZF90b19waHlzbWFwX29uZSgNCj4gICAgICAgICAgICAgIGJyZWFrOw0KPiAg ICAgIH0NCj4gDQo+IC0gICAgaWYgKCAhcGFnaW5nX21vZGVfdHJhbnNsYXRlKGQpIHx8IChtZm4g PT0gMCkgKQ0KPiArICAgIGlmICggIXBhZ2luZ19tb2RlX3RyYW5zbGF0ZShkKSB8fCBtZm5fZXEo bWZuLCBJTlZBTElEX01GTikgKQ0KPiAgICAgIHsNCj4gICAgICAgICAgcmMgPSAtRUlOVkFMOw0K PiAgICAgICAgICBnb3RvIHB1dF9ib3RoOw0KPiBAQCAtNDYzMywxNiArNDYxNCwxNiBAQCBpbnQg eGVubWVtX2FkZF90b19waHlzbWFwX29uZSgNCj4gICAgICAgICAgZ290byBwdXRfYm90aDsNCj4g DQo+ICAgICAgLyogVW5tYXAgZnJvbSBvbGQgbG9jYXRpb24sIGlmIGFueS4gKi8NCj4gLSAgICBv bGRfZ3BmbiA9IGdldF9ncGZuX2Zyb21fbWZuKG1mbik7DQo+ICsgICAgb2xkX2dwZm4gPSBnZXRf Z3Bmbl9mcm9tX21mbihtZm5feChtZm4pKTsNCj4gICAgICBBU1NFUlQoIG9sZF9ncGZuICE9IFNI QVJFRF9NMlBfRU5UUlkgKTsNCj4gICAgICBpZiAoIHNwYWNlID09IFhFTk1BUFNQQUNFX2dtZm4g fHwgc3BhY2UgPT0NCj4gWEVOTUFQU1BBQ0VfZ21mbl9yYW5nZSApDQo+ICAgICAgICAgIEFTU0VS VCggb2xkX2dwZm4gPT0gZ2ZuICk7DQo+ICAgICAgaWYgKCBvbGRfZ3BmbiAhPSBJTlZBTElEX00y UF9FTlRSWSApDQo+IC0gICAgICAgIHJjID0gZ3Vlc3RfcGh5c21hcF9yZW1vdmVfcGFnZShkLCBf Z2ZuKG9sZF9ncGZuKSwgX21mbihtZm4pLA0KPiBQQUdFX09SREVSXzRLKTsNCj4gKyAgICAgICAg cmMgPSBndWVzdF9waHlzbWFwX3JlbW92ZV9wYWdlKGQsIF9nZm4ob2xkX2dwZm4pLCBtZm4sDQo+ IFBBR0VfT1JERVJfNEspOw0KPiANCj4gICAgICAvKiBNYXAgYXQgbmV3IGxvY2F0aW9uLiAqLw0K PiAgICAgIGlmICggIXJjICkNCj4gLSAgICAgICAgcmMgPSBndWVzdF9waHlzbWFwX2FkZF9wYWdl KGQsIGdwZm4sIF9tZm4obWZuKSwgUEFHRV9PUkRFUl80Syk7DQo+ICsgICAgICAgIHJjID0gZ3Vl c3RfcGh5c21hcF9hZGRfcGFnZShkLCBncGZuLCBtZm4sIFBBR0VfT1JERVJfNEspOw0KPiANCj4g ICBwdXRfYm90aDoNCj4gICAgICAvKiBJbiB0aGUgWEVOTUFQU1BBQ0VfZ21mbiwgd2UgdG9vayBh IHJlZiBvZiB0aGUgZ2ZuIGF0IHRoZSB0b3AgKi8NCj4gZGlmZiAtLWdpdCBhL3hlbi9jb21tb24v Z3JhbnRfdGFibGUuYyBiL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYw0KPiBpbmRleCAwMGZmMDc1 YmQ5Li5iMGUyZTRjMjJjIDEwMDY0NA0KPiAtLS0gYS94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMN Cj4gKysrIGIveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jDQo+IEBAIC0zNjA4LDYgKzM2MDgsNDUg QEAgaW50IG1lbV9zaGFyaW5nX2dyZWZfdG9fZ2ZuKHN0cnVjdCBncmFudF90YWJsZQ0KPiAqZ3Qs IGdyYW50X3JlZl90IHJlZiwNCj4gIH0NCj4gICNlbmRpZg0KPiANCj4gK2ludCBnbnR0YWJfbWFw X2ZyYW1lKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgaWR4LCBnZm5fdCBnZm4sDQo+ ICsgICAgICAgICAgICAgICAgICAgICBtZm5fdCAqbWZuKQ0KPiArew0KPiArICAgIGludCByYyA9 IDA7DQo+ICsgICAgc3RydWN0IGdyYW50X3RhYmxlICpndCA9IGQtPmdyYW50X3RhYmxlOw0KPiAr DQo+ICsgICAgZ3JhbnRfd3JpdGVfbG9jayhndCk7DQo+ICsNCj4gKyAgICBpZiAoIGd0LT5ndF92 ZXJzaW9uID09IDAgKQ0KPiArICAgICAgICBndC0+Z3RfdmVyc2lvbiA9IDE7DQo+ICsNCj4gKyAg ICBpZiAoIGd0LT5ndF92ZXJzaW9uID09IDIgJiYNCj4gKyAgICAgICAgIChpZHggJiBYRU5NQVBJ RFhfZ3JhbnRfdGFibGVfc3RhdHVzKSApDQo+ICsgICAgew0KPiArICAgICAgICBpZHggJj0gflhF Tk1BUElEWF9ncmFudF90YWJsZV9zdGF0dXM7DQo+ICsgICAgICAgIGlmICggaWR4IDwgbnJfc3Rh dHVzX2ZyYW1lcyhndCkgKQ0KPiArICAgICAgICAgICAgKm1mbiA9IF9tZm4odmlydF90b19tZm4o Z3QtPnN0YXR1c1tpZHhdKSk7DQo+ICsgICAgICAgIGVsc2UNCj4gKyAgICAgICAgICAgIHJjID0g LUVJTlZBTDsNCj4gKyAgICB9DQo+ICsgICAgZWxzZQ0KPiArICAgIHsNCj4gKyAgICAgICAgaWYg KCAoaWR4ID49IG5yX2dyYW50X2ZyYW1lcyhndCkpICYmIChpZHggPCBtYXhfZ3JhbnRfZnJhbWVz KSApDQo+ICsgICAgICAgICAgICBnbnR0YWJfZ3Jvd190YWJsZShkLCBpZHggKyAxKTsNCj4gKw0K PiArICAgICAgICBpZiAoIGlkeCA8IG5yX2dyYW50X2ZyYW1lcyhndCkgKQ0KPiArICAgICAgICAg ICAgKm1mbiA9IF9tZm4odmlydF90b19tZm4oZ3QtPnNoYXJlZF9yYXdbaWR4XSkpOw0KPiArICAg ICAgICBlbHNlDQo+ICsgICAgICAgICAgICByYyA9IC1FSU5WQUw7DQo+ICsgICAgfQ0KPiArDQo+ ICsgICAgaWYgKCAhcmMgKQ0KPiArICAgICAgICBnbnR0YWJfc2V0X2ZyYW1lX2dmbihkLCBpZHgs IGdmbik7DQo+ICsNCj4gKyAgICBncmFudF93cml0ZV91bmxvY2soZ3QpOw0KPiArDQo+ICsgICAg cmV0dXJuIHJjOw0KPiArfQ0KPiArDQo+ICBzdGF0aWMgdm9pZCBnbnR0YWJfdXNhZ2VfcHJpbnQo c3RydWN0IGRvbWFpbiAqcmQpDQo+ICB7DQo+ICAgICAgaW50IGZpcnN0ID0gMTsNCj4gZGlmZiAt LWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vZ3JhbnRfdGFibGUuaCBiL3hlbi9pbmNsdWRlL2Fz bS0NCj4gYXJtL2dyYW50X3RhYmxlLmgNCj4gaW5kZXggYmM0ZDYxYTk0MC4uMGEyNDhhNzY1YSAx MDA2NDQNCj4gLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS9ncmFudF90YWJsZS5oDQo+ICsrKyBi L3hlbi9pbmNsdWRlL2FzbS1hcm0vZ3JhbnRfdGFibGUuaA0KPiBAQCAtMiw2ICsyLDcgQEANCj4g ICNkZWZpbmUgX19BU01fR1JBTlRfVEFCTEVfSF9fDQo+IA0KPiAgI2luY2x1ZGUgPHhlbi9ncmFu dF90YWJsZS5oPg0KPiArI2luY2x1ZGUgPHhlbi9zY2hlZC5oPg0KPiANCj4gICNkZWZpbmUgSU5J VElBTF9OUl9HUkFOVF9GUkFNRVMgNA0KPiANCj4gQEAgLTIxLDYgKzIyLDEyIEBAIHN0YXRpYyBp bmxpbmUgaW50IHJlcGxhY2VfZ3JhbnRfc3VwcG9ydGVkKHZvaWQpDQo+ICAgICAgcmV0dXJuIDE7 DQo+ICB9DQo+IA0KPiArc3RhdGljIGlubGluZSB2b2lkIGdudHRhYl9zZXRfZnJhbWVfZ2ZuKHN0 cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcNCj4gaWR4LA0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGdmbl90IGdmbikNCj4gK3sNCj4gKyAgICBkLT5hcmNo LmdyYW50X3RhYmxlX2dmbltpZHhdID0gZ2ZuOw0KPiArfQ0KPiArDQo+ICAjZGVmaW5lIGdudHRh Yl9jcmVhdGVfc2hhcmVkX3BhZ2UoZCwgdCwgaSkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXA0KPiAgICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gICAgICAgICAgc2hhcmVfeGVuX3BhZ2Vfd2l0 aF9ndWVzdCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+IGRpZmYg LS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2dyYW50X3RhYmxlLmggYi94ZW4vaW5jbHVkZS9h c20tDQo+IHg4Ni9ncmFudF90YWJsZS5oDQo+IGluZGV4IDMzYjJmODhiOTYuLmM4NjU5OTlhMzMg MTAwNjQ0DQo+IC0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvZ3JhbnRfdGFibGUuaA0KPiArKysg Yi94ZW4vaW5jbHVkZS9hc20teDg2L2dyYW50X3RhYmxlLmgNCj4gQEAgLTc1LDYgKzc1LDExIEBA IHN0YXRpYyBpbmxpbmUgdm9pZCBnbnR0YWJfY2xlYXJfZmxhZyh1bnNpZ25lZCBpbnQgbnIsDQo+ IHVpbnQxNl90ICpzdCkNCj4gICAgICBhc20gdm9sYXRpbGUgKCJsb2NrIGJ0cncgJXcxLCUwIiA6 ICI9bSIgKCpzdCkgOiAiSXIiIChuciksICJtIiAoKnN0KSk7DQo+ICB9DQo+IA0KPiArc3RhdGlj IGlubGluZSB2b2lkIGdudHRhYl9zZXRfZnJhbWVfZ2ZuKHN0cnVjdCBkb21haW4gKmQsIHVuc2ln bmVkIGxvbmcNCj4gaWR4LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGdmbl90IGdmbikNCj4gK3sNCj4gK30NCj4gKw0KPiAgLyogRm9yZWlnbiBtYXBwaW5ncyBv ZiBISFZNLWd1ZXN0IHBhZ2VzIGRvIG5vdCBtb2RpZnkgdGhlIHR5cGUgY291bnQuICovDQo+ICAj ZGVmaW5lIGdudHRhYl9ob3N0X21hcHBpbmdfZ2V0X3BhZ2VfdHlwZShybywgbGQsIHJkKSAgIFwN Cj4gICAgICAoIShybykgJiYgKCgobGQpID09IChyZCkpIHx8ICFwYWdpbmdfbW9kZV9leHRlcm5h bChyZCkpKQ0KPiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL2dyYW50X3RhYmxlLmggYi94 ZW4vaW5jbHVkZS94ZW4vZ3JhbnRfdGFibGUuaA0KPiBpbmRleCBhZjI2OWExMDhkLi40M2VjNmM0 ZDgwIDEwMDY0NA0KPiAtLS0gYS94ZW4vaW5jbHVkZS94ZW4vZ3JhbnRfdGFibGUuaA0KPiArKysg Yi94ZW4vaW5jbHVkZS94ZW4vZ3JhbnRfdGFibGUuaA0KPiBAQCAtMTM2LDQgKzEzNiw3IEBAIHN0 YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGdyYW50X3RvX3N0YXR1c19mcmFtZXMoaW50DQo+IGdy YW50X2ZyYW1lcykNCj4gIGludCBtZW1fc2hhcmluZ19ncmVmX3RvX2dmbihzdHJ1Y3QgZ3JhbnRf dGFibGUgKmd0LCBncmFudF9yZWZfdCByZWYsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZ2ZuX3QgKmdmbiwgdWludDE2X3QgKnN0YXR1cyk7DQo+IA0KPiAraW50IGdudHRhYl9tYXBf ZnJhbWUoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBpZHgsIGdmbl90IGdmbiwNCj4g KyAgICAgICAgICAgICAgICAgICAgIG1mbl90ICptZm4pOw0KPiArDQo+ICAjZW5kaWYgLyogX19Y RU5fR1JBTlRfVEFCTEVfSF9fICovDQo+IC0tDQo+IDIuMTIuMw0KPiANCj4gDQo+IF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+IFhlbi1kZXZlbCBtYWls aW5nIGxpc3QNCj4gWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcNCj4gaHR0cHM6Ly9saXN0cy54ZW4u b3JnL3hlbi1kZXZlbA0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRw czovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==