From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: Re: [PATCH v7 13/16] xen/arm: move arch specific grant table bits into grant_table.c Date: Tue, 19 Sep 2017 10:30:56 +0000 Message-ID: References: <20170919095852.15785-1-jgross@suse.com> <20170919095852.15785-14-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1duFnw-0006EH-8q for xen-devel@lists.xenproject.org; Tue, 19 Sep 2017 10:31:00 +0000 In-Reply-To: <20170919095852.15785-14-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 PiBTdWJqZWN0OiBbWGVuLWRldmVsXSBbUEFUQ0ggdjcgMTMvMTZdIHhlbi9hcm06IG1vdmUgYXJj aCBzcGVjaWZpYyBncmFudA0KPiB0YWJsZSBiaXRzIGludG8gZ3JhbnRfdGFibGUuYw0KPiANCj4g SW5zdGVhZCBvZiBhdHRhY2hpbmcgdGhlIEFSTSBzcGVjaWZpYyBncmFudCB0YWJsZSBkYXRhIHRv IHRoZSBkb21haW4NCj4gc3RydWN0dXJlIGFkZCBpdCB0byBzdHJ1Y3QgZ3JhbnRfdGFibGUuIEFk ZCB0aGUgbmVlZGVkIGFyY2ggZnVuY3Rpb25zDQo+IHRvIHRoZSBhc20tKi9ncmFudF90YWJsZS5o IGluY2x1ZGVzLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1 c2UuY29tPg0KDQpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4 LmNvbT4NCg0KPiAtLS0NCj4gVjc6DQo+IC0gcmUtYWRkICNpbmNsdWRlIDxhc20vZ3JhbnQtdGFi bGUuaD4gaW4gZ3JhbnRfdGFibGUuaCAoSnVsaWVuIEdyYWxsKQ0KPiAtLS0NCj4gIHhlbi9hcmNo L2FybS9kb21haW4uYyAgICAgICAgICAgICB8ICAyIC0tDQo+ICB4ZW4vY29tbW9uL2dyYW50X3Rh YmxlLmMgICAgICAgICAgfCAyNiArKysrKysrKysrKysrKysrKysrLS0tLS0tLQ0KPiAgeGVuL2lu Y2x1ZGUvYXNtLWFybS9kb21haW4uaCAgICAgIHwgIDEgLQ0KPiAgeGVuL2luY2x1ZGUvYXNtLWFy bS9ncmFudF90YWJsZS5oIHwgMjYgKysrKysrKysrKysrKysrKysrKy0tLS0tLS0NCj4gIHhlbi9p bmNsdWRlL2FzbS14ODYvZ3JhbnRfdGFibGUuaCB8IDEyICsrKysrKystLS0tLQ0KPiAgeGVuL2lu Y2x1ZGUveGVuL2dyYW50X3RhYmxlLmggICAgIHwgIDIgKysNCj4gIDYgZmlsZXMgY2hhbmdlZCwg NDcgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEveGVu L2FyY2gvYXJtL2RvbWFpbi5jIGIveGVuL2FyY2gvYXJtL2RvbWFpbi5jDQo+IGluZGV4IDc4NGFl MzkyY2YuLmUzOWE3OTg4NWMgMTAwNjQ0DQo+IC0tLSBhL3hlbi9hcmNoL2FybS9kb21haW4uYw0K PiArKysgYi94ZW4vYXJjaC9hcm0vZG9tYWluLmMNCj4gQEAgLTQ4NiwxMyArNDg2LDExIEBAIHN0 cnVjdCBkb21haW4gKmFsbG9jX2RvbWFpbl9zdHJ1Y3Qodm9pZCkNCj4gICAgICAgICAgcmV0dXJu IE5VTEw7DQo+IA0KPiAgICAgIGNsZWFyX3BhZ2UoZCk7DQo+IC0gICAgZC0+YXJjaC5ncmFudF90 YWJsZV9nZm4gPSB4emFsbG9jX2FycmF5KGdmbl90LCBtYXhfZ3JhbnRfZnJhbWVzKTsNCj4gICAg ICByZXR1cm4gZDsNCj4gIH0NCj4gDQo+ICB2b2lkIGZyZWVfZG9tYWluX3N0cnVjdChzdHJ1Y3Qg ZG9tYWluICpkKQ0KPiAgew0KPiAtICAgIHhmcmVlKGQtPmFyY2guZ3JhbnRfdGFibGVfZ2ZuKTsN Cj4gICAgICBmcmVlX3hlbmhlYXBfcGFnZShkKTsNCj4gIH0NCj4gDQo+IGRpZmYgLS1naXQgYS94 ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMgYi94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMNCj4gaW5k ZXggZjY2OTQwNTUxZS4uMjZmOWEzMjY1NiAxMDA2NDQNCj4gLS0tIGEveGVuL2NvbW1vbi9ncmFu dF90YWJsZS5jDQo+ICsrKyBiL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYw0KPiBAQCAtNzIsNiAr NzIsOCBAQCBzdHJ1Y3QgZ3JhbnRfdGFibGUgew0KPiAgICAgIHN0cnVjdCBhY3RpdmVfZ3JhbnRf ZW50cnkgKiphY3RpdmU7DQo+ICAgICAgLyogTWFwcGluZyB0cmFja2luZyB0YWJsZSBwZXIgdmNw dS4gKi8NCj4gICAgICBzdHJ1Y3QgZ3JhbnRfbWFwcGluZyAqKm1hcHRyYWNrOw0KPiArDQo+ICsg ICAgc3RydWN0IGdyYW50X3RhYmxlX2FyY2ggYXJjaDsNCj4gIH07DQo+IA0KPiAgI2lmbmRlZiBE RUZBVUxUX01BWF9OUl9HUkFOVF9GUkFNRVMgLyogdG8gYWxsb3cgYXJjaCB0byBvdmVycmlkZSAq Lw0KPiBAQCAtMTY1OCw2ICsxNjYwLDggQEAgZ250dGFiX3VucG9wdWxhdGVfc3RhdHVzX2ZyYW1l cyhzdHJ1Y3QgZG9tYWluDQo+ICpkLCBzdHJ1Y3QgZ3JhbnRfdGFibGUgKmd0KQ0KPiAgc3RhdGlj IGludA0KPiAgZ3JhbnRfdGFibGVfaW5pdChzdHJ1Y3QgZ3JhbnRfdGFibGUgKmd0KQ0KPiAgew0K PiArICAgIGludCByZXQgPSAtRU5PTUVNOw0KPiArDQo+ICAgICAgaWYgKCBndC0+YWN0aXZlICkN Cj4gICAgICAgICAgcmV0dXJuIC1FQlVTWTsNCj4gDQo+IEBAIC0xNjY1LDM0ICsxNjY5LDQwIEBA IGdyYW50X3RhYmxlX2luaXQoc3RydWN0IGdyYW50X3RhYmxlICpndCkNCj4gICAgICBndC0+YWN0 aXZlID0geHphbGxvY19hcnJheShzdHJ1Y3QgYWN0aXZlX2dyYW50X2VudHJ5ICosDQo+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4X25yX2FjdGl2ZV9ncmFudF9mcmFtZXMpOw0K PiAgICAgIGlmICggZ3QtPmFjdGl2ZSA9PSBOVUxMICkNCj4gLSAgICAgICAgZ290byBub19tZW07 DQo+ICsgICAgICAgIGdvdG8gb3V0Ow0KPiANCj4gICAgICAvKiBUcmFja2luZyBvZiBtYXBwZWQg Zm9yZWlnbiBmcmFtZXMgdGFibGUgKi8NCj4gICAgICBndC0+bWFwdHJhY2sgPSB2emFsbG9jKG1h eF9tYXB0cmFja19mcmFtZXMgKiBzaXplb2YoKmd0LT5tYXB0cmFjaykpOw0KPiAgICAgIGlmICgg Z3QtPm1hcHRyYWNrID09IE5VTEwgKQ0KPiAtICAgICAgICBnb3RvIG5vX21lbTsNCj4gKyAgICAg ICAgZ290byBvdXQ7DQo+IA0KPiAgICAgIC8qIFNoYXJlZCBncmFudCB0YWJsZS4gKi8NCj4gICAg ICBndC0+c2hhcmVkX3JhdyA9IHh6YWxsb2NfYXJyYXkodm9pZCAqLCBtYXhfZ3JhbnRfZnJhbWVz KTsNCj4gICAgICBpZiAoIGd0LT5zaGFyZWRfcmF3ID09IE5VTEwgKQ0KPiAtICAgICAgICBnb3Rv IG5vX21lbTsNCj4gKyAgICAgICAgZ290byBvdXQ7DQo+IA0KPiAgICAgIC8qIFN0YXR1cyBwYWdl cyBmb3IgZ3JhbnQgdGFibGUgLSBmb3IgdmVyc2lvbiAyICovDQo+ICAgICAgZ3QtPnN0YXR1cyA9 IHh6YWxsb2NfYXJyYXkoZ3JhbnRfc3RhdHVzX3QgKiwNCj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBncmFudF90b19zdGF0dXNfZnJhbWVzKG1heF9ncmFudF9mcmFtZXMpKTsNCj4g ICAgICBpZiAoIGd0LT5zdGF0dXMgPT0gTlVMTCApDQo+IC0gICAgICAgIGdvdG8gbm9fbWVtOw0K PiArICAgICAgICBnb3RvIG91dDsNCj4gKw0KPiArICAgIHJldCA9IGdudHRhYl9pbml0X2FyY2go Z3QpOw0KPiArICAgIGlmICggcmV0ICkNCj4gKyAgICAgICAgZ290byBvdXQ7DQo+IA0KPiAgICAg IHJldHVybiAwOw0KPiANCj4gLSBub19tZW06DQo+ICsgb3V0Og0KPiArICAgIHhmcmVlKGd0LT5z dGF0dXMpOw0KPiArICAgIGd0LT5zdGF0dXMgPSBOVUxMOw0KPiAgICAgIHhmcmVlKGd0LT5zaGFy ZWRfcmF3KTsNCj4gICAgICBndC0+c2hhcmVkX3JhdyA9IE5VTEw7DQo+ICAgICAgdmZyZWUoZ3Qt Pm1hcHRyYWNrKTsNCj4gICAgICBndC0+bWFwdHJhY2sgPSBOVUxMOw0KPiAgICAgIHhmcmVlKGd0 LT5hY3RpdmUpOw0KPiAgICAgIGd0LT5hY3RpdmUgPSBOVUxMOw0KPiAtICAgIHJldHVybiAtRU5P TUVNOw0KPiArICAgIHJldHVybiByZXQ7DQo+ICB9DQo+IA0KPiAgLyoNCj4gQEAgLTM2MDMsNiAr MzYxMyw4IEBAIGdyYW50X3RhYmxlX2Rlc3Ryb3koDQo+ICAgICAgaWYgKCB0ID09IE5VTEwgKQ0K PiAgICAgICAgICByZXR1cm47DQo+IA0KPiArICAgIGdudHRhYl9kZXN0cm95X2FyY2godCk7DQo+ ICsNCj4gICAgICBmb3IgKCBpID0gMDsgaSA8IG5yX2dyYW50X2ZyYW1lcyh0KTsgaSsrICkNCj4g ICAgICAgICAgZnJlZV94ZW5oZWFwX3BhZ2UodC0+c2hhcmVkX3Jhd1tpXSk7DQo+ICAgICAgeGZy ZWUodC0+c2hhcmVkX3Jhdyk7DQo+IEBAIC0zNzI5LDcgKzM3NDEsNyBAQCBpbnQgZ250dGFiX21h cF9mcmFtZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZA0KPiBsb25nIGlkeCwgZ2ZuX3QgZ2Zu LA0KPiAgICAgIH0NCj4gDQo+ICAgICAgaWYgKCAhcmMgKQ0KPiAtICAgICAgICBnbnR0YWJfc2V0 X2ZyYW1lX2dmbihkLCBpZHgsIGdmbik7DQo+ICsgICAgICAgIGdudHRhYl9zZXRfZnJhbWVfZ2Zu KGd0LCBpZHgsIGdmbik7DQo+IA0KPiAgICAgIGdyYW50X3dyaXRlX3VubG9jayhndCk7DQo+IA0K PiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9kb21haW4uaCBiL3hlbi9pbmNsdWRl L2FzbS0NCj4gYXJtL2RvbWFpbi5oDQo+IGluZGV4IGIxNzRjNjUwODAuLmNlOWI2YTQwMzIgMTAw NjQ0DQo+IC0tLSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vZG9tYWluLmgNCj4gKysrIGIveGVuL2lu Y2x1ZGUvYXNtLWFybS9kb21haW4uaA0KPiBAQCAtNTAsNyArNTAsNiBAQCBzdHJ1Y3QgYXJjaF9k b21haW4NCj4gICAgICBzdHJ1Y3QgcDJtX2RvbWFpbiBwMm07DQo+IA0KPiAgICAgIHN0cnVjdCBo dm1fZG9tYWluIGh2bV9kb21haW47DQo+IC0gICAgZ2ZuX3QgKmdyYW50X3RhYmxlX2dmbjsNCj4g DQo+ICAgICAgc3RydWN0IHZtbWlvIHZtbWlvOw0KPiANCj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNs dWRlL2FzbS1hcm0vZ3JhbnRfdGFibGUuaCBiL3hlbi9pbmNsdWRlL2FzbS0NCj4gYXJtL2dyYW50 X3RhYmxlLmgNCj4gaW5kZXggMGEyNDhhNzY1YS4uMDg3MGI1Yjc4MiAxMDA2NDQNCj4gLS0tIGEv eGVuL2luY2x1ZGUvYXNtLWFybS9ncmFudF90YWJsZS5oDQo+ICsrKyBiL3hlbi9pbmNsdWRlL2Fz bS1hcm0vZ3JhbnRfdGFibGUuaA0KPiBAQCAtNiw2ICs2LDEwIEBADQo+IA0KPiAgI2RlZmluZSBJ TklUSUFMX05SX0dSQU5UX0ZSQU1FUyA0DQo+IA0KPiArc3RydWN0IGdyYW50X3RhYmxlX2FyY2gg ew0KPiArICAgIGdmbl90ICpnZm47DQo+ICt9Ow0KPiArDQo+ICB2b2lkIGdudHRhYl9jbGVhcl9m bGFnKHVuc2lnbmVkIGxvbmcgbnIsIHVpbnQxNl90ICphZGRyKTsNCj4gIGludCBjcmVhdGVfZ3Jh bnRfaG9zdF9tYXBwaW5nKHVuc2lnbmVkIGxvbmcgZ3BhZGRyLA0KPiAgICAgICAgICB1bnNpZ25l ZCBsb25nIG1mbiwgdW5zaWduZWQgaW50IGZsYWdzLCB1bnNpZ25lZCBpbnQNCj4gQEAgLTIyLDEx ICsyNiwxOSBAQCBzdGF0aWMgaW5saW5lIGludCByZXBsYWNlX2dyYW50X3N1cHBvcnRlZCh2b2lk KQ0KPiAgICAgIHJldHVybiAxOw0KPiAgfQ0KPiANCj4gLXN0YXRpYyBpbmxpbmUgdm9pZCBnbnR0 YWJfc2V0X2ZyYW1lX2dmbihzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGlkeCwNCj4g LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZm5fdCBnZm4pDQo+IC17 DQo+IC0gICAgZC0+YXJjaC5ncmFudF90YWJsZV9nZm5baWR4XSA9IGdmbjsNCj4gLX0NCj4gKyNk ZWZpbmUgZ250dGFiX2luaXRfYXJjaChndCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcDQo+ICsgICAgKCAoKGd0KS0+YXJjaC5nZm4gPSB4emFsbG9jX2FycmF5 KGdmbl90LCBtYXhfZ3JhbnRfZnJhbWVzKSkgPT0gMCAgICAgXA0KPiArICAgICAgPyAwIDogLUVO T01FTSApDQo+ICsNCj4gKyNkZWZpbmUgZ250dGFiX2Rlc3Ryb3lfYXJjaChndCkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICsgICAgZG8geyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K PiArICAgICAgICB4ZnJlZSgoZ3QpLT5hcmNoLmdmbik7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwNCj4gKyAgICB9IHdoaWxlICggMCApDQo+ICsNCj4gKyNkZWZp bmUgZ250dGFiX3NldF9mcmFtZV9nZm4oZ3QsIGlkeCwgZ2ZuKSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcDQo+ICsgICAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiArICAgICAgICAoZ3QpLT5hcmNo LmdmbltpZHhdID0gZ2ZuOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN Cj4gKyAgICB9IHdoaWxlICggMCApDQo+IA0KPiAgI2RlZmluZSBnbnR0YWJfY3JlYXRlX3NoYXJl ZF9wYWdlKGQsIHQsIGkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gICAgICBk byB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcDQo+IEBAIC0zNiw4ICs0OCw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBnbnR0 YWJfc2V0X2ZyYW1lX2dmbihzdHJ1Y3QgZG9tYWluDQo+ICpkLCB1bnNpZ25lZCBsb25nIGlkeCwN Cj4gICAgICB9IHdoaWxlICggMCApDQo+IA0KPiAgI2RlZmluZSBnbnR0YWJfc2hhcmVkX2dtZm4o ZCwgdCwgaSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gLSAgICAo ICgoaSA+PSBucl9ncmFudF9mcmFtZXMoZC0+Z3JhbnRfdGFibGUpKSAmJiAgICAgICAgICAgICAg ICAgICAgICAgICBcDQo+IC0gICAgIChpIDwgbWF4X2dyYW50X2ZyYW1lcykpID8gMCA6IGdmbl94 KGQtPmFyY2guZ3JhbnRfdGFibGVfZ2ZuW2ldKSkNCj4gKyAgICAoICgoaSA+PSBucl9ncmFudF9m cmFtZXModCkpICYmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICsg ICAgICAgKGkgPCBtYXhfZ3JhbnRfZnJhbWVzKSkgPyAwIDogZ2ZuX3godC0+YXJjaC5nZm5baV0p KQ0KPiANCj4gICNkZWZpbmUgZ250dGFiX25lZWRfaW9tbXVfbWFwcGluZyhkKSAgICAgICAgICAg ICAgICAgICAgXA0KPiAgICAgIChpc19kb21haW5fZGlyZWN0X21hcHBlZChkKSAmJiBuZWVkX2lv bW11KGQpKQ0KPiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9ncmFudF90YWJsZS5o IGIveGVuL2luY2x1ZGUvYXNtLQ0KPiB4ODYvZ3JhbnRfdGFibGUuaA0KPiBpbmRleCBjODY1OTk5 YTMzLi4xYjkzYzU3MjBkIDEwMDY0NA0KPiAtLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2dyYW50 X3RhYmxlLmgNCj4gKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9ncmFudF90YWJsZS5oDQo+IEBA IC0xNCw2ICsxNCw5IEBADQo+IA0KPiAgI2RlZmluZSBJTklUSUFMX05SX0dSQU5UX0ZSQU1FUyA0 DQo+IA0KPiArc3RydWN0IGdyYW50X3RhYmxlX2FyY2ggew0KPiArfTsNCj4gKw0KPiAgLyoNCj4g ICAqIENhbGxlciBtdXN0IG93biBjYWxsZXIncyBCSUdMT0NLLCBpcyByZXNwb25zaWJsZSBmb3Ig Zmx1c2hpbmcgdGhlIFRMQiwgYW5kDQo+ICAgKiBtdXN0IGhvbGQgYSByZWZlcmVuY2UgdG8gdGhl IHBhZ2UuDQo+IEBAIC0zNiw2ICszOSwxMCBAQCBzdGF0aWMgaW5saW5lIGludCByZXBsYWNlX2dy YW50X2hvc3RfbWFwcGluZyh1aW50NjRfdA0KPiBhZGRyLCB1bnNpZ25lZCBsb25nIGZyYW1lLA0K PiAgICAgIHJldHVybiByZXBsYWNlX2dyYW50X3B2X21hcHBpbmcoYWRkciwgZnJhbWUsIG5ld19h ZGRyLCBmbGFncyk7DQo+ICB9DQo+IA0KPiArI2RlZmluZSBnbnR0YWJfaW5pdF9hcmNoKGd0KSAw DQo+ICsjZGVmaW5lIGdudHRhYl9kZXN0cm95X2FyY2goZ3QpIGRvIHt9IHdoaWxlICggMCApDQo+ ICsjZGVmaW5lIGdudHRhYl9zZXRfZnJhbWVfZ2ZuKGd0LCBpZHgsIGdmbikgZG8ge30gd2hpbGUg KCAwICkNCj4gKw0KPiAgI2RlZmluZSBnbnR0YWJfY3JlYXRlX3NoYXJlZF9wYWdlKGQsIHQsIGkp ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gICAgICBkbyB7ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ ICAgICAgICAgIHNoYXJlX3hlbl9wYWdlX3dpdGhfZ3Vlc3QoICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXA0KPiBAQCAtNzUsMTEgKzgyLDYgQEAgc3RhdGljIGlubGluZSB2 b2lkIGdudHRhYl9jbGVhcl9mbGFnKHVuc2lnbmVkIGludCBuciwNCj4gdWludDE2X3QgKnN0KQ0K PiAgICAgIGFzbSB2b2xhdGlsZSAoImxvY2sgYnRydyAldzEsJTAiIDogIj1tIiAoKnN0KSA6ICJJ ciIgKG5yKSwgIm0iICgqc3QpKTsNCj4gIH0NCj4gDQo+IC1zdGF0aWMgaW5saW5lIHZvaWQgZ250 dGFiX3NldF9mcmFtZV9nZm4oc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBpZHgsDQo+ IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2ZuX3QgZ2ZuKQ0KPiAt ew0KPiAtfQ0KPiAtDQo+ICAvKiBGb3JlaWduIG1hcHBpbmdzIG9mIEhIVk0tZ3Vlc3QgcGFnZXMg ZG8gbm90IG1vZGlmeSB0aGUgdHlwZSBjb3VudC4gKi8NCj4gICNkZWZpbmUgZ250dGFiX2hvc3Rf bWFwcGluZ19nZXRfcGFnZV90eXBlKHJvLCBsZCwgcmQpICAgXA0KPiAgICAgICghKHJvKSAmJiAo KChsZCkgPT0gKHJkKSkgfHwgIXBhZ2luZ19tb2RlX2V4dGVybmFsKHJkKSkpDQo+IGRpZmYgLS1n aXQgYS94ZW4vaW5jbHVkZS94ZW4vZ3JhbnRfdGFibGUuaCBiL3hlbi9pbmNsdWRlL3hlbi9ncmFu dF90YWJsZS5oDQo+IGluZGV4IGRmMTFiMzEyNjQuLmQyYmQyNDE2YzQgMTAwNjQ0DQo+IC0tLSBh L3hlbi9pbmNsdWRlL3hlbi9ncmFudF90YWJsZS5oDQo+ICsrKyBiL3hlbi9pbmNsdWRlL3hlbi9n cmFudF90YWJsZS5oDQo+IEBAIC0yOSw2ICsyOSw4IEBADQo+ICAjaW5jbHVkZSA8YXNtL3BhZ2Uu aD4NCj4gICNpbmNsdWRlIDxhc20vZ3JhbnRfdGFibGUuaD4NCj4gDQo+ICtzdHJ1Y3QgZ3JhbnRf dGFibGU7DQo+ICsNCj4gIC8qIFRoZSBtYXhpbXVtIHNpemUgb2YgYSBncmFudCB0YWJsZS4gKi8N Cj4gIGV4dGVybiB1bnNpZ25lZCBpbnQgbWF4X2dyYW50X2ZyYW1lczsNCj4gDQo+IC0tDQo+IDIu MTIuMw0KPiANCj4gDQo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fDQo+IFhlbi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gWGVuLWRldmVsQGxpc3RzLnhlbi5v cmcNCj4gaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbA0KX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4t ZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==