From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrii Anisov Subject: Re: [PATCH v2 2/2] xen: implement VCPUOP_register_runstate_phys_memory_area Date: Mon, 13 May 2019 15:30:21 +0300 Message-ID: <959c8975-ec44-a788-25b3-84ee17520abc@gmail.com> References: <1556007026-31057-1-git-send-email-andrii.anisov@gmail.com> <1556007026-31057-3-git-send-email-andrii.anisov@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hQA67-0006fT-Ou for xen-devel@lists.xenproject.org; Mon, 13 May 2019 12:30:27 +0000 Received: by mail-lj1-x241.google.com with SMTP id r76so10734357lja.12 for ; Mon, 13 May 2019 05:30:25 -0700 (PDT) In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Julien Grall , xen-devel@lists.xen.org Cc: Stefano Stabellini , Andrii Anisov , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Jan Beulich , xen-devel@lists.xenproject.org, Wei Liu , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= List-Id: xen-devel@lists.xenproject.org CgpPbiAwOC4wNS4xOSAxODo0MCwgSnVsaWVuIEdyYWxsIHdyb3RlOgo+IFRoaXMgcGF0Y2ggaXMg cXVpdGUgaGFyZCB0byByZWFkIGJlY2F1c2UgeW91IGFyZSByZXdvcmtpbmcgdGhlIGNvZGUgYW5k IGF0IHRoZSBzYW1lIHRpbWUgaW1wbGVtZW50aW5nIHRoZSBuZXcgVkNQVU9QLiBIb3cgYWJvdXQg bW92aW5nIHRoZSByZXdvcmsgaW4gYSBzZXBhcmF0ZSBwYXRjaD8gVGhlIGltcGxlbWVudGF0aW9u IGNhbiB0aGVuIGJlIGZvbGQgaW4gdGhlIHByZXZpb3VzIHBhdGNoIGFzIHN1Z2dlc3RlZCBieSBH ZW9yZ2UuCgpPSy4KCj4gCj4+Cj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZG9tYWluLmMg Yi94ZW4vYXJjaC9hcm0vZG9tYWluLmMKPj4gaW5kZXggNmRjNjMzZS4uOGUyNGU2MyAxMDA2NDQK Pj4gLS0tIGEveGVuL2FyY2gvYXJtL2RvbWFpbi5jCj4+ICsrKyBiL3hlbi9hcmNoL2FybS9kb21h aW4uYwo+PiBAQCAtMjc1LDMyICsyNzUsNTUgQEAgc3RhdGljIHZvaWQgY3R4dF9zd2l0Y2hfdG8o c3RydWN0IHZjcHUgKm4pCj4+IMKgIH0KPj4gwqAgLyogVXBkYXRlIHBlci1WQ1BVIGd1ZXN0IHJ1 bnN0YXRlIHNoYXJlZCBtZW1vcnkgYXJlYSAoaWYgcmVnaXN0ZXJlZCkuICovCj4+IC1zdGF0aWMg dm9pZCB1cGRhdGVfcnVuc3RhdGVfYXJlYShzdHJ1Y3QgdmNwdSAqdikKPj4gK3ZvaWQgdXBkYXRl X3J1bnN0YXRlX2FyZWEoc3RydWN0IHZjcHUgKnYpCj4gCj4gV2h5IGRvIHlvdSBleHBvcnQgdXBk YXRlX3J1bnN0YXRlX2FyZWE/IFRoZSBmdW5jdGlvbiBkb2VzIG5vdCBzZWVtIHRvIGJlIGNhbGxl ZCBvdXRzaWRlLgoKT3VjaCwgdGhpcyBsZWZ0IGZyb20gb25lIG9mIHRoZSBwcmV2aW91cyB2ZXJz aW9ucy4KCj4gCj4+IMKgIHsKPj4gLcKgwqDCoCB2b2lkIF9fdXNlciAqZ3Vlc3RfaGFuZGxlID0g TlVMTDsKPj4gK8KgwqDCoCBpZiAoICFndWVzdF9oYW5kbGVfaXNfbnVsbChydW5zdGF0ZV9ndWVz dCh2KSkgKQo+PiArwqDCoMKgIHsKPj4gK8KgwqDCoMKgwqDCoMKgIHZvaWQgX191c2VyICpndWVz dF9oYW5kbGUgPSBOVUxMOwo+PiArwqDCoMKgwqDCoMKgwqAgaWYgKCBWTV9BU1NJU1Qodi0+ZG9t YWluLCBydW5zdGF0ZV91cGRhdGVfZmxhZykgKQo+PiArwqDCoMKgwqDCoMKgwqAgewo+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBndWVzdF9oYW5kbGUgPSAmdi0+cnVuc3RhdGVfZ3Vlc3QucC0+ c3RhdGVfZW50cnlfdGltZSArIDE7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGd1ZXN0X2hh bmRsZS0tOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB2LT5ydW5zdGF0ZS5zdGF0ZV9lbnRy eV90aW1lIHw9IFhFTl9SVU5TVEFURV9VUERBVEU7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IF9fcmF3X2NvcHlfdG9fZ3Vlc3QoZ3Vlc3RfaGFuZGxlLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKHZvaWQgKikoJnYt PnJ1bnN0YXRlLnN0YXRlX2VudHJ5X3RpbWUgKyAxKSAtIDEsCj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAxKTsKPj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqAgc21wX3dtYigpOwo+PiArwqDCoMKgwqDCoMKgwqAgfQo+PiAt wqDCoMKgIGlmICggZ3Vlc3RfaGFuZGxlX2lzX251bGwocnVuc3RhdGVfZ3Vlc3QodikpICkKPj4g LcKgwqDCoMKgwqDCoMKgIHJldHVybjsKPj4gK8KgwqDCoMKgwqDCoMKgIF9fY29weV90b19ndWVz dChydW5zdGF0ZV9ndWVzdCh2KSwgJnYtPnJ1bnN0YXRlLCAxKTsKPj4gLcKgwqDCoCBpZiAoIFZN X0FTU0lTVCh2LT5kb21haW4sIHJ1bnN0YXRlX3VwZGF0ZV9mbGFnKSApCj4+IC3CoMKgwqAgewo+ PiAtwqDCoMKgwqDCoMKgwqAgZ3Vlc3RfaGFuZGxlID0gJnYtPnJ1bnN0YXRlX2d1ZXN0LnAtPnN0 YXRlX2VudHJ5X3RpbWUgKyAxOwo+PiAtwqDCoMKgwqDCoMKgwqAgZ3Vlc3RfaGFuZGxlLS07Cj4+ IC3CoMKgwqDCoMKgwqDCoCB2LT5ydW5zdGF0ZS5zdGF0ZV9lbnRyeV90aW1lIHw9IFhFTl9SVU5T VEFURV9VUERBVEU7Cj4+IC3CoMKgwqDCoMKgwqDCoCBfX3Jhd19jb3B5X3RvX2d1ZXN0KGd1ZXN0 X2hhbmRsZSwKPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAodm9pZCAqKSgmdi0+cnVuc3RhdGUuc3RhdGVfZW50cnlfdGltZSArIDEpIC0g MSwgMSk7Cj4+IC3CoMKgwqDCoMKgwqDCoCBzbXBfd21iKCk7Cj4+ICvCoMKgwqDCoMKgwqDCoCBp ZiAoIGd1ZXN0X2hhbmRsZSApCj4+ICvCoMKgwqDCoMKgwqDCoCB7Cj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHYtPnJ1bnN0YXRlLnN0YXRlX2VudHJ5X3RpbWUgJj0gflhFTl9SVU5TVEFURV9V UERBVEU7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNtcF93bWIoKTsKPj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqAgX19yYXdfY29weV90b19ndWVzdChndWVzdF9oYW5kbGUsCj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAodm9pZCAqKSgmdi0+cnVuc3RhdGUuc3RhdGVfZW50cnlfdGltZSArIDEpIC0gMSwKPj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIDEpOwo+PiArwqDCoMKgwqDCoMKgwqAgfQo+PiDCoMKgwqDCoMKgIH0KPj4gLcKgwqDCoCBf X2NvcHlfdG9fZ3Vlc3QocnVuc3RhdGVfZ3Vlc3QodiksICZ2LT5ydW5zdGF0ZSwgMSk7Cj4+IC0K Pj4gLcKgwqDCoCBpZiAoIGd1ZXN0X2hhbmRsZSApCj4+ICvCoMKgwqAgc3Bpbl9sb2NrKCZ2LT5t YXBwZWRfcnVuc3RhdGVfbG9jayk7Cj4+ICvCoMKgwqAgaWYgKCB2LT5tYXBwZWRfcnVuc3RhdGUg KQo+IAo+IFRoZSBjb2RlIGxvb2tzIGEgYml0IG9kZCB0byBtZSwgeW91IHNlZW0gdG8gYWxsb3cg YSBndWVzdCB0byBwcm92aWRlIDIgcnVuc3RhdGUgYXJlYXM6IG9uZSB1c2luZyBndWVzdCB2aXJ0 dWFsIGFkZHJlc3MgdGhlIG90aGVyIHVzaW5nIGd1ZXN0IHBoeXNpY2FsIGFkZHJlc3MuCj4gCj4g SXQgd291bGQgYmUgYmVzdCBpZiB3ZSBwcmV2ZW50IGEgZ3Vlc3QgdG8gbWl4IG1hdGNoIHRoZW0u IAoKRmlyc3RseSBJIHR1cm5lZCB0byBpbXBsZW1lbnRpbmcgaW4gdGhhdCB3YXksIGJ1dCB0aGUg bG9ja2luZyBhbmQgZGVjaXNzaW9ucyBjb2RlIGJlY29tZSByZWFsbHkgdWdseSBhbmQgY29tcGxl eCB3aGlsZSB0cnlpbmcgdG8gY292ZXIgJ2d1ZXN0J3MgbWlzYmVoYXZpb3InIHNjZW5hcmlvcy4K Cj4gSU9XLCBpZiB0aGUgZ3Vlc3QgcHJvdmlkZSBhIHBoeXNpY2FsIGFkZHJlc3MgZmlyc3QsIHRo ZW4gKmFsbCogdGhlIGNhbGwgc2hvdWxkIGJlIHBoeXNpY2FsIGFkZHJlc3MuIEFsdGVybmF0aXZl bHkgdGhpcyBjb3VsZCBiZSBhIHBlciB2Q1BVIGRlY2lzaW9uLgoKSSBndWVzcyB3ZSBzaG91bGQg YWdyZWUgd2hhdCB0byBpbXBsZW1lbnQgZmlyc3QuCgo+IAo+PiDCoMKgwqDCoMKgIHsKPj4gLcKg wqDCoMKgwqDCoMKgIHYtPnJ1bnN0YXRlLnN0YXRlX2VudHJ5X3RpbWUgJj0gflhFTl9SVU5TVEFU RV9VUERBVEU7Cj4+IC3CoMKgwqDCoMKgwqDCoCBzbXBfd21iKCk7Cj4+IC3CoMKgwqDCoMKgwqDC oCBfX3Jhd19jb3B5X3RvX2d1ZXN0KGd1ZXN0X2hhbmRsZSwKPj4gLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAodm9pZCAqKSgmdi0+cnVuc3Rh dGUuc3RhdGVfZW50cnlfdGltZSArIDEpIC0gMSwgMSk7Cj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAo IFZNX0FTU0lTVCh2LT5kb21haW4sIHJ1bnN0YXRlX3VwZGF0ZV9mbGFnKSApCj4+ICvCoMKgwqDC oMKgwqDCoCB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHYtPm1hcHBlZF9ydW5zdGF0ZS0+ c3RhdGVfZW50cnlfdGltZSB8PSBYRU5fUlVOU1RBVEVfVVBEQVRFOwo+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBzbXBfd21iKCk7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHYtPnJ1bnN0 YXRlLnN0YXRlX2VudHJ5X3RpbWUgfD0gWEVOX1JVTlNUQVRFX1VQREFURTsKPj4gK8KgwqDCoMKg wqDCoMKgIH0KPj4gKwo+PiArwqDCoMKgwqDCoMKgwqAgbWVtY3B5KHYtPm1hcHBlZF9ydW5zdGF0 ZSwgJnYtPnJ1bnN0YXRlLCBzaXplb2Yodi0+cnVuc3RhdGUpKTsKPj4gKwo+PiArwqDCoMKgwqDC oMKgwqAgaWYgKCBWTV9BU1NJU1Qodi0+ZG9tYWluLCBydW5zdGF0ZV91cGRhdGVfZmxhZykgKQo+ PiArwqDCoMKgwqDCoMKgwqAgewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB2LT5tYXBwZWRf cnVuc3RhdGUtPnN0YXRlX2VudHJ5X3RpbWUgJj0gflhFTl9SVU5TVEFURV9VUERBVEU7Cj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNtcF93bWIoKTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqAgdi0+cnVuc3RhdGUuc3RhdGVfZW50cnlfdGltZSAmPSB+WEVOX1JVTlNUQVRFX1VQREFURTsK Pj4gK8KgwqDCoMKgwqDCoMKgIH0KPj4gwqDCoMKgwqDCoCB9Cj4+ICvCoMKgwqAgc3Bpbl91bmxv Y2soJnYtPm1hcHBlZF9ydW5zdGF0ZV9sb2NrKTsKPj4gKwo+IAo+IE5JVDogVGhlIG5ld2xpbmUg aXMgbm90IG5lY2Vzc2FyeSBoZXJlLgoKT0suCgo+IAo+PiDCoCB9Cj4+IMKgIHN0YXRpYyB2b2lk IHNjaGVkdWxlX3RhaWwoc3RydWN0IHZjcHUgKnByZXYpCj4+IEBAIC05OTgsNiArMTAyMSw3IEBA IGxvbmcgZG9fYXJtX3ZjcHVfb3AoaW50IGNtZCwgdW5zaWduZWQgaW50IHZjcHVpZCwgWEVOX0dV RVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBhCj4+IMKgwqDCoMKgwqAgewo+PiDCoMKgwqDCoMKgwqDC oMKgwqAgY2FzZSBWQ1BVT1BfcmVnaXN0ZXJfdmNwdV9pbmZvOgo+PiDCoMKgwqDCoMKgwqDCoMKg wqAgY2FzZSBWQ1BVT1BfcmVnaXN0ZXJfcnVuc3RhdGVfbWVtb3J5X2FyZWE6Cj4+ICvCoMKgwqDC oMKgwqDCoCBjYXNlIFZDUFVPUF9yZWdpc3Rlcl9ydW5zdGF0ZV9waHlzX21lbW9yeV9hcmVhOgo+ PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gZG9fdmNwdV9vcChjbWQsIHZjcHVp ZCwgYXJnKTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGRlZmF1bHQ6Cj4+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHJldHVybiAtRUlOVkFMOwo+IAo+IAo+IFsuLi5dCj4gCj4+IGRpZmYgLS1n aXQgYS94ZW4vY29tbW9uL2RvbWFpbi5jIGIveGVuL2NvbW1vbi9kb21haW4uYwo+PiBpbmRleCBh ZTIyMDQ5Li42ZGY3NmM2IDEwMDY0NAo+PiAtLS0gYS94ZW4vY29tbW9uL2RvbWFpbi5jCj4+ICsr KyBiL3hlbi9jb21tb24vZG9tYWluLmMKPj4gQEAgLTE0OSw2ICsxNDksNyBAQCBzdHJ1Y3QgdmNw dSAqdmNwdV9jcmVhdGUoCj4+IMKgwqDCoMKgwqAgdi0+ZGlydHlfY3B1ID0gVkNQVV9DUFVfQ0xF QU47Cj4+IMKgwqDCoMKgwqAgc3Bpbl9sb2NrX2luaXQoJnYtPnZpcnFfbG9jayk7Cj4+ICvCoMKg wqAgc3Bpbl9sb2NrX2luaXQoJnYtPm1hcHBlZF9ydW5zdGF0ZV9sb2NrKTsKPj4gwqDCoMKgwqDC oCB0YXNrbGV0X2luaXQoJnYtPmNvbnRpbnVlX2h5cGVyY2FsbF90YXNrbGV0LCBOVUxMLCAwKTsK Pj4gQEAgLTY5OSw2ICs3MDAsNjkgQEAgaW50IHJjdV9sb2NrX2xpdmVfcmVtb3RlX2RvbWFpbl9i eV9pZChkb21pZF90IGRvbSwgc3RydWN0IGRvbWFpbiAqKmQpCj4+IMKgwqDCoMKgwqAgcmV0dXJu IDA7Cj4+IMKgIH0KPj4gK3N0YXRpYyB2b2lkIF91bm1hcF9ydW5zdGF0ZV9hcmVhKHN0cnVjdCB2 Y3B1ICp2KQo+IEEgYmV0dGVyIG5hbWUgd291bGQgYmUgdW5hbWVwX3J1bnN0YXRlX2FyZWFfbG9j a2VkKCkgc28geW91IGF2b2lkIHRoZSByZXNlcnZlZCBuYW1lIGFuZCBtYWtlIGNsZWFyIG9mIHRo ZSB1c2UuCgpPSy4KCj4gCj4+ICt7Cj4+ICvCoMKgwqAgbWZuX3QgbWZuOwo+PiArCj4+ICvCoMKg wqAgaWYgKCAhdi0+bWFwcGVkX3J1bnN0YXRlICkKPj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybjsK Pj4gKwo+PiArwqDCoMKgIG1mbiA9IF9tZm4odmlydF90b19tZm4ocnVuc3RhdGVfZ3Vlc3Qodiku cCkpOwo+IAo+IEFzIHBvaW50ZWQgb3V0IGJ5IEphbiBpbiB0aGUgcHJldmlvdXMgdmVyc2lvbjoK PiAKPiBUaGUgcG9pbnRlciBpcyB0aGUgcmVzdWx0IG9mIF9fbWFwX2RvbWFpbl9wYWdlX2dsb2Jh bCgpLiBTbyBJIGRvbid0IHRoaW5rIHlvdQo+IGRvbid0IHRoaW5rIHlvdSBjYW4gbGVnaXRpbWF0 ZWx5IHVzZSB2aXJ0X3RvX21mbigpIG9uIGl0LCBhdAo+IGxlYXN0IG5vdCBvbiB4ODY7IGRvbWFp bl9wYWdlX21hcF90b19tZm4oKSBpcyB3aGF0IHlvdQo+IHdhbnQgdG8gdXNlIGhlcmUuCgpZZXAu Cgo+IAo+PiArCj4+ICvCoMKgwqAgdW5tYXBfZG9tYWluX3BhZ2VfZ2xvYmFsKCh2b2lkICopCj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAoKHVuc2lnbmVkIGxvbmcpdi0+bWFwcGVkX3J1bnN0YXRlICYKPj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgUEFHRV9NQVNLKSk7 Cj4+ICsKPj4gK8KgwqDCoCB2LT5tYXBwZWRfcnVuc3RhdGUgPSBOVUxMOwo+PiArwqDCoMKgIHB1 dF9wYWdlX2FuZF90eXBlKG1mbl90b19wYWdlKG1mbikpOwo+PiArfQo+IAo+IFdlIHNlZW0gdG8g aGF2ZSB0aGlzIHBhdHRlcm4gaW4gYSBmZXcgcGxhY2VzIG5vdyAoc2VlIHVubWFwX2d1ZXN0X3Bh Z2UpLiBJdCB3b3VsZCBiZSBnb29kIHRvIGludHJvZHVjZSBoZWxwZXJzIHRoYXQgY2FuIGJlIHVz ZWQgZXZlcnl3aGVyZSAocHJvYmFibHkgbGlmdGVkIGZyb20gY29tbW9uL2V2ZW50X2ZpZm8uYy4K CkknbGwgY2hlY2suCgo+IAo+PiArCj4+ICtzdGF0aWMgaW50IG1hcF9ydW5zdGF0ZV9hcmVhKHN0 cnVjdCB2Y3B1ICp2LAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHN0cnVjdCB2Y3B1X3JlZ2lzdGVyX3J1bnN0YXRlX21lbW9yeV9hcmVhICphcmVhKQo+PiAr ewo+PiArwqDCoMKgIHVuc2lnbmVkIGxvbmcgb2Zmc2V0ID0gYXJlYS0+YWRkci5wICYgflBBR0Vf TUFTSzsKPj4gK8KgwqDCoCBnZm5fdCBnZm4gPSBnYWRkcl90b19nZm4oYXJlYS0+YWRkci5wKTsK Pj4gK8KgwqDCoCBzdHJ1Y3QgZG9tYWluICpkID0gdi0+ZG9tYWluOwo+PiArwqDCoMKgIHZvaWQg Km1hcHBpbmc7Cj4+ICvCoMKgwqAgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZTsKPj4gK8KgwqDCoCBz aXplX3Qgc2l6ZSA9IHNpemVvZiAoc3RydWN0IHZjcHVfcnVuc3RhdGVfaW5mbyApOwo+IAo+IHNw YWNlIGlzIG5vdCBuZWNlc3NhcnkgYmVmb3JlICkuCj4gCj4gQnV0IGlzIHRoZSB2YXJpYWJsZSBy ZWFsbHkgbmVjZXNzYXJ5PwoKV2VsbCwgSSB0aGluayBpdCBjb3VsZCBiZSBkcm9wcGVkLgo+IAo+ PiArCj4+ICvCoMKgwqAgaWYgKCBvZmZzZXQgPiAoUEFHRV9TSVpFIC0gc2l6ZSkgKQo+PiArwqDC oMKgwqDCoMKgwqAgcmV0dXJuIC1FSU5WQUw7Cj4+ICsKPj4gK8KgwqDCoCBwYWdlID0gZ2V0X3Bh Z2VfZnJvbV9nZm4oZCwgZ2ZuX3goZ2ZuKSwgTlVMTCwgUDJNX0FMTE9DKTsKPj4gK8KgwqDCoCBp ZiAoICFwYWdlICkKPj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiAtRUlOVkFMOwo+PiArCj4+ICvC oMKgwqAgaWYgKCAhZ2V0X3BhZ2VfdHlwZShwYWdlLCBQR1Rfd3JpdGFibGVfcGFnZSkgKQo+PiAr wqDCoMKgIHsKPj4gK8KgwqDCoMKgwqDCoMKgIHB1dF9wYWdlKHBhZ2UpOwo+PiArwqDCoMKgwqDC oMKgwqAgcmV0dXJuIC1FSU5WQUw7Cj4+ICvCoMKgwqAgfQo+PiArCj4+ICvCoMKgwqAgbWFwcGlu ZyA9IF9fbWFwX2RvbWFpbl9wYWdlX2dsb2JhbChwYWdlKTsKPj4gKwo+PiArwqDCoMKgIGlmICgg bWFwcGluZyA9PSBOVUxMICkKPj4gK8KgwqDCoCB7Cj4+ICvCoMKgwqDCoMKgwqDCoCBwdXRfcGFn ZV9hbmRfdHlwZShwYWdlKTsKPj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiAtRU5PTUVNOwo+PiAr wqDCoMKgIH0KPj4gKwo+PiArwqDCoMKgIHNwaW5fbG9jaygmdi0+bWFwcGVkX3J1bnN0YXRlX2xv Y2spOwo+PiArwqDCoMKgIF91bm1hcF9ydW5zdGF0ZV9hcmVhKHYpOwo+PiArwqDCoMKgIHYtPm1h cHBlZF9ydW5zdGF0ZSA9IG1hcHBpbmcgKyBvZmZzZXQ7Cj4+ICvCoMKgwqAgc3Bpbl91bmxvY2so JnYtPm1hcHBlZF9ydW5zdGF0ZV9sb2NrKTsKPj4gKwo+PiArwqDCoMKgIHJldHVybiAwOwo+PiAr fQo+PiArCj4+ICtzdGF0aWMgdm9pZCB1bm1hcF9ydW5zdGF0ZV9hcmVhKHN0cnVjdCB2Y3B1ICp2 KQo+PiArewo+PiArwqDCoMKgIHNwaW5fbG9jaygmdi0+bWFwcGVkX3J1bnN0YXRlX2xvY2spOwo+ PiArwqDCoMKgIF91bm1hcF9ydW5zdGF0ZV9hcmVhKHYpOwo+PiArwqDCoMKgIHNwaW5fdW5sb2Nr KCZ2LT5tYXBwZWRfcnVuc3RhdGVfbG9jayk7Cj4+ICt9Cj4+ICsKPj4gwqAgaW50IGRvbWFpbl9r aWxsKHN0cnVjdCBkb21haW4gKmQpCj4+IMKgIHsKPj4gwqDCoMKgwqDCoCBpbnQgcmMgPSAwOwo+ PiBAQCAtNzM3LDcgKzgwMSwxMSBAQCBpbnQgZG9tYWluX2tpbGwoc3RydWN0IGRvbWFpbiAqZCkK Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIGlmICggY3B1cG9vbF9tb3ZlX2RvbWFpbihkLCBjcHVwb29s MCkgKQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gLUVSRVNUQVJUOwo+PiDC oMKgwqDCoMKgwqDCoMKgwqAgZm9yX2VhY2hfdmNwdSAoIGQsIHYgKQo+PiArwqDCoMKgwqDCoMKg wqAgewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzZXRfeGVuX2d1ZXN0X2hhbmRsZShydW5z dGF0ZV9ndWVzdCh2KSwgTlVMTCk7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVubWFwX3J1 bnN0YXRlX2FyZWEodik7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVubWFwX3ZjcHVf aW5mbyh2KTsKPj4gK8KgwqDCoMKgwqDCoMKgIH0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGQtPmlz X2R5aW5nID0gRE9NRFlJTkdfZGVhZDsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC8qIE1lbSBldmVu dCBjbGVhbnVwIGhhcyB0byBnbyBoZXJlIGJlY2F1c2UgdGhlIHJpbmdzCj4+IMKgwqDCoMKgwqDC oMKgwqDCoMKgICogaGF2ZSB0byBiZSBwdXQgYmVmb3JlIHdlIGNhbGwgcHV0X2RvbWFpbi4gKi8K Pj4gQEAgLTExOTIsNiArMTI2MCw3IEBAIGludCBkb21haW5fc29mdF9yZXNldChzdHJ1Y3QgZG9t YWluICpkKQo+PiDCoMKgwqDCoMKgIGZvcl9lYWNoX3ZjcHUgKCBkLCB2ICkKPj4gwqDCoMKgwqDC oCB7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBzZXRfeGVuX2d1ZXN0X2hhbmRsZShydW5zdGF0ZV9n dWVzdCh2KSwgTlVMTCk7Cj4+ICvCoMKgwqDCoMKgwqDCoCB1bm1hcF9ydW5zdGF0ZV9hcmVhKHYp Owo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgdW5tYXBfdmNwdV9pbmZvKHYpOwo+PiDCoMKgwqDCoMKg IH0KPj4gQEAgLTE1MzYsOCArMTYwNSwxNyBAQCBsb25nIGRvX3ZjcHVfb3AoaW50IGNtZCwgdW5z aWduZWQgaW50IHZjcHVpZCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcpCj4+IMKg wqDCoMKgwqAgfQo+PiDCoMKgwqDCoMKgIGNhc2UgVkNQVU9QX3JlZ2lzdGVyX3J1bnN0YXRlX3Bo eXNfbWVtb3J5X2FyZWE6Cj4+IC3CoMKgwqDCoMKgwqDCoCByYyA9IC1FT1BOT1RTVVBQOwo+PiAr wqDCoMKgIHsKPj4gK8KgwqDCoMKgwqDCoMKgIHN0cnVjdCB2Y3B1X3JlZ2lzdGVyX3J1bnN0YXRl X21lbW9yeV9hcmVhIGFyZWE7Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoMKgIHJjID0gLUVGQVVMVDsK Pj4gK8KgwqDCoMKgwqDCoMKgIGlmICggY29weV9mcm9tX2d1ZXN0KCZhcmVhLCBhcmcsIDEpICkK Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYnJlYWs7Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoMKg IHJjID0gbWFwX3J1bnN0YXRlX2FyZWEodiwgJmFyZWEpOwo+PiArCj4+IMKgwqDCoMKgwqDCoMKg wqDCoCBicmVhazsKPj4gK8KgwqDCoCB9Cj4+IMKgICNpZmRlZiBWQ1BVX1RSQVBfTk1JCj4+IMKg wqDCoMKgwqAgY2FzZSBWQ1BVT1Bfc2VuZF9ubWk6Cj4+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVk ZS9hc20tYXJtL2RvbWFpbi5oIGIveGVuL2luY2x1ZGUvYXNtLWFybS9kb21haW4uaAo+PiBpbmRl eCAzMTJmZWM4Li4zZmI2ZWEyIDEwMDY0NAo+PiAtLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL2Rv bWFpbi5oCj4+ICsrKyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vZG9tYWluLmgKPj4gQEAgLTIxNyw2 ICsyMTcsOCBAQCB2b2lkIHZjcHVfc2hvd19leGVjdXRpb25fc3RhdGUoc3RydWN0IHZjcHUgKik7 Cj4+IMKgIHZvaWQgdmNwdV9zaG93X3JlZ2lzdGVycyhjb25zdCBzdHJ1Y3QgdmNwdSAqKTsKPj4g wqAgdm9pZCB2Y3B1X3N3aXRjaF90b19hYXJjaDY0X21vZGUoc3RydWN0IHZjcHUgKik7Cj4+ICt2 b2lkIHVwZGF0ZV9ydW5zdGF0ZV9hcmVhKHN0cnVjdCB2Y3B1ICopOwo+PiArCj4+IMKgIC8qCj4+ IMKgwqAgKiBEdWUgdG8gdGhlIHJlc3RyaWN0aW9uIG9mIEdJQ3YzLCB0aGUgbnVtYmVyIG9mIHZD UFVzIGluIEFGRjAgaXMKPj4gwqDCoCAqIGxpbWl0ZWQgdG8gMTYsIHRodXMgb25seSB0aGUgZmly c3QgNCBiaXRzIG9mIEFGRjAgYXJlIGxlZ2FsLiBXZSB3aWxsCj4+IGRpZmYgLS1naXQgYS94ZW4v aW5jbHVkZS94ZW4vZG9tYWluLmggYi94ZW4vaW5jbHVkZS94ZW4vZG9tYWluLmgKPj4gaW5kZXgg ZDFiZmM4Mi4uZWNkZGNmZSAxMDA2NDQKPj4gLS0tIGEveGVuL2luY2x1ZGUveGVuL2RvbWFpbi5o Cj4+ICsrKyBiL3hlbi9pbmNsdWRlL3hlbi9kb21haW4uaAo+PiBAQCAtMTE4LDQgKzExOCw2IEBA IHN0cnVjdCB2bnVtYV9pbmZvIHsKPj4gwqAgdm9pZCB2bnVtYV9kZXN0cm95KHN0cnVjdCB2bnVt YV9pbmZvICp2bnVtYSk7Cj4+ICtzdHJ1Y3QgdmNwdV9yZWdpc3Rlcl9ydW5zdGF0ZV9tZW1vcnlf YXJlYTsKPj4gKwo+PiDCoCAjZW5kaWYgLyogX19YRU5fRE9NQUlOX0hfXyAqLwo+PiBkaWZmIC0t Z2l0IGEveGVuL2luY2x1ZGUveGVuL3NjaGVkLmggYi94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaAo+ PiBpbmRleCA3NDhiYjBmLi4yYWZlMzFjIDEwMDY0NAo+PiAtLS0gYS94ZW4vaW5jbHVkZS94ZW4v c2NoZWQuaAo+PiArKysgYi94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaAo+PiBAQCAtMTYzLDE1ICsx NjMsMjMgQEAgc3RydWN0IHZjcHUKPj4gwqDCoMKgwqDCoCB2b2lkwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAqc2NoZWRfcHJpdjvCoMKgwqAgLyogc2NoZWR1bGVyLXNwZWNpZmljIGRhdGEgKi8KPj4g wqDCoMKgwqDCoCBzdHJ1Y3QgdmNwdV9ydW5zdGF0ZV9pbmZvIHJ1bnN0YXRlOwo+PiArCj4+ICvC oMKgwqAgc3BpbmxvY2tfdMKgwqDCoMKgwqAgbWFwcGVkX3J1bnN0YXRlX2xvY2s7Cj4+ICsKPj4g wqAgI2lmbmRlZiBDT05GSUdfQ09NUEFUCj4+IMKgICMgZGVmaW5lIHJ1bnN0YXRlX2d1ZXN0KHYp ICgodiktPnJ1bnN0YXRlX2d1ZXN0KQo+PiDCoMKgwqDCoMKgIFhFTl9HVUVTVF9IQU5ETEUodmNw dV9ydW5zdGF0ZV9pbmZvX3QpIHJ1bnN0YXRlX2d1ZXN0OyAvKiBndWVzdCBhZGRyZXNzICovCj4+ ICvCoMKgwqAgdmNwdV9ydW5zdGF0ZV9pbmZvX3QgKm1hcHBlZF9ydW5zdGF0ZTsKPj4gwqAgI2Vs c2UKPj4gwqAgIyBkZWZpbmUgcnVuc3RhdGVfZ3Vlc3QodikgKCh2KS0+cnVuc3RhdGVfZ3Vlc3Qu bmF0aXZlKQo+PiDCoMKgwqDCoMKgIHVuaW9uIHsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIFhFTl9H VUVTVF9IQU5ETEUodmNwdV9ydW5zdGF0ZV9pbmZvX3QpIG5hdGl2ZTsKPj4gwqDCoMKgwqDCoMKg wqDCoMKgIFhFTl9HVUVTVF9IQU5ETEUodmNwdV9ydW5zdGF0ZV9pbmZvX2NvbXBhdF90KSBjb21w YXQ7Cj4+IMKgwqDCoMKgwqAgfSBydW5zdGF0ZV9ndWVzdDsgLyogZ3Vlc3QgYWRkcmVzcyAqLwo+ PiArwqDCoMKgIHVuaW9uIHsKPj4gK8KgwqDCoMKgwqDCoMKgIHZjcHVfcnVuc3RhdGVfaW5mb190 KiBuYXRpdmU7Cj4+ICvCoMKgwqDCoMKgwqDCoCB2Y3B1X3J1bnN0YXRlX2luZm9fY29tcGF0X3Qq IGNvbXBhdDsKPj4gK8KgwqDCoCB9IG1hcHBlZF9ydW5zdGF0ZTsgLyogZ3Vlc3QgYWRkcmVzcyAq Lwo+ID4gVGhlIGNvbWJpbmF0aW9uIG9mIG1hcHBlZF9ydW5zdGF0ZSBhbmQgcnVuc3RhdGVfZ3Vl c3QgaXMgYSBiaXQgY29uZnVzaW5nLiBJIHRoaW5rIHlvdSB3YW50IHRvIHJld29yayB0aGUgaW50 ZXJmYWNlIHRvIHNob3cgdGhhdCBvbmx5IG9uZSBpcyBwb3NzaWJsZSBhdCB0aGUgdGltZSBhbmQg bWFrZSBjbGVhciB3aGljaCBvbmUgaXMgdXNlZCBieSB3aG8uIE1heWJlOgoKQXMgSSBzYWlkIGJl Zm9yZSwgSU1PIGNvdXBsaW5nIHRob3NlIGludGVyZmFjZXMgbWFrZXMgdGhlIGNvZGUgY29tcGxp Y2F0ZWQgYW5kIHVnbHkuCgo+IAo+IHVuaW9uCj4gewo+ICDCoMKgIC8qIExlZ2FjeSBpbnRlcmZh Y2UgdG8gYmUgdXNlZCB3aGVuIHRoZSBndWVzdCBwcm92aWRlcyBhIHZpcnR1YWwgYWRkcmVzcyAq Lwo+ICDCoMKgIHVuaW9uIHsKPiAgwqDCoMKgwqDCoCBYRU5fR1VFU1RfSEFORExFKHZjcHVfcnVu c3RhdGVfaW5mb190KSBuYXRpdmU7Cj4gIMKgwqDCoMKgwqAgLi4uCj4gIMKgwqAgfSB2aXJ0Owo+ IAo+ICDCoMKgIC8qIEludGVyZmFjZSB1c2VkIHdoZW4gdGhlIGd1ZXN0IHByb3ZpZGVzIGEgcGh5 c2ljYWwgYWRkcmVzcyAqLwo+ICDCoMKgIHVuaW9uIHsKPiAgwqDCoCB9IHBoeXM7Cj4gfSBydW5z dGF0ZV9ndWVzdC4+IAo+IHJ1bnN0YXRlX2d1ZXN0X3R5cGUgLyogY291bGQgYmUgYSBib29sIG9y IGVudW0gKi8KPiAKPiBKYW4gd2hhdCBkbyB5b3UgdGhpbms/Cj4gCj4gQ2hlZXJzLAo+IAoKLS0g ClNpbmNlcmVseSwKQW5kcmlpIEFuaXNvdi4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3Rz LnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0 aW5mby94ZW4tZGV2ZWw= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.8 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DDE3CC04AB1 for ; Mon, 13 May 2019 12:30:50 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A22AE20879 for ; Mon, 13 May 2019 12:30:50 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="mIvuyEXf" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A22AE20879 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hQA69-0006gW-95; Mon, 13 May 2019 12:30:29 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hQA67-0006fT-Ou for xen-devel@lists.xenproject.org; Mon, 13 May 2019 12:30:27 +0000 X-Inumbo-ID: e1af5ba8-757a-11e9-8980-bc764e045a96 Received: from mail-lj1-x241.google.com (unknown [2a00:1450:4864:20::241]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id e1af5ba8-757a-11e9-8980-bc764e045a96; Mon, 13 May 2019 12:30:25 +0000 (UTC) Received: by mail-lj1-x241.google.com with SMTP id r76so10734357lja.12 for ; Mon, 13 May 2019 05:30:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=zE7tPWbmQfReBazBdGAOz6+LfIHlVYBU6hOyFf+BKOM=; b=mIvuyEXfS3zgOVfMSFzW7LBMmi8rzNRu/BThZQyLY5f6cPIp/gzizKfif5364EBleF 9GaKJR7bC3Sla2MMXDJnUDOyoRLkZ13jkYGp94Axn6eVoJXZmvjla4zAFOkSEInuMvvm /phVlwHIx4vryVwJo80eWBDHxQwOGvQ4WBSVuAddWek0yIMBRMXrQJSAj22X2NH3W48H VBd2aDenCT1fAP3cgfM6FJqx8T+KcngRzxSShriznq7UpTMA2DUrywuNSyCWQ7ACBAM3 gk4aOaxe4W/i9X6cHzjkKvn3LwxaP7Us3adNYIjGBIBDhYuHzTTk/4+sZEt4wUBbMOc/ i7AA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=zE7tPWbmQfReBazBdGAOz6+LfIHlVYBU6hOyFf+BKOM=; b=BB94Aby3XWveu6vEa37WsqtFlly42ngAm0AjnF4lzsDqv/qAf4M/uplQqaUls2kC8Y JHcsBMY8dO3wz4flmnnXBxxGpk1Px/IvcuElmTcBFAp+mNPl4jpjHXAdkGviuTFagej3 U8I7rVP73YCfxXwLXYBOG/Sxil7q7BEMAwliRa8S7alXV3rly3/6nEq9tkk6GnPr4634 F+VvnU8iUeo/R+bS4M7pGYVyDWazyVfiqeJ+9lmdRHR/fnRSwukR4+zwpEJBmLdPWF4S gYczkOAwS7CGcueAcnjTNc2h3BQRiu73+/O0DoVLi01Cqrx1cL2wlDyADO1gqtkoZzRU ebIg== X-Gm-Message-State: APjAAAWtdxQ0ik3omMVehoemtNWOstPpxwQnG2C7sqH6NsOhV2q4bT7e EnQnqjQAYbcs8hCm/OOaEiZ0A75UDV9Bhg== X-Google-Smtp-Source: APXvYqypA3TbTPUAkbsKrM4LVDw/nsjtLKG+9EnTBbOEyb8Ovyb2lKmdSVEdzywSY4RO/I8zWqcadA== X-Received: by 2002:a2e:9cd5:: with SMTP id g21mr8590694ljj.39.1557750623311; Mon, 13 May 2019 05:30:23 -0700 (PDT) Received: from [10.17.180.71] (ll-74.141.223.85.sovam.net.ua. [85.223.141.74]) by smtp.gmail.com with ESMTPSA id j14sm2515840lfb.76.2019.05.13.05.30.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 13 May 2019 05:30:22 -0700 (PDT) To: Julien Grall , xen-devel@lists.xen.org References: <1556007026-31057-1-git-send-email-andrii.anisov@gmail.com> <1556007026-31057-3-git-send-email-andrii.anisov@gmail.com> From: Andrii Anisov Message-ID: <959c8975-ec44-a788-25b3-84ee17520abc@gmail.com> Date: Mon, 13 May 2019 15:30:21 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US Subject: Re: [Xen-devel] [PATCH v2 2/2] xen: implement VCPUOP_register_runstate_phys_memory_area X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Stefano Stabellini , Andrii Anisov , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Jan Beulich , xen-devel@lists.xenproject.org, Wei Liu , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="UTF-8"; format="flowed" Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Message-ID: <20190513123021.geGoeabiAGukc2LYVAIsr12D8ukZ-qQjx7BxYXlEX0Y@z> CgpPbiAwOC4wNS4xOSAxODo0MCwgSnVsaWVuIEdyYWxsIHdyb3RlOgo+IFRoaXMgcGF0Y2ggaXMg cXVpdGUgaGFyZCB0byByZWFkIGJlY2F1c2UgeW91IGFyZSByZXdvcmtpbmcgdGhlIGNvZGUgYW5k IGF0IHRoZSBzYW1lIHRpbWUgaW1wbGVtZW50aW5nIHRoZSBuZXcgVkNQVU9QLiBIb3cgYWJvdXQg bW92aW5nIHRoZSByZXdvcmsgaW4gYSBzZXBhcmF0ZSBwYXRjaD8gVGhlIGltcGxlbWVudGF0aW9u IGNhbiB0aGVuIGJlIGZvbGQgaW4gdGhlIHByZXZpb3VzIHBhdGNoIGFzIHN1Z2dlc3RlZCBieSBH ZW9yZ2UuCgpPSy4KCj4gCj4+Cj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZG9tYWluLmMg Yi94ZW4vYXJjaC9hcm0vZG9tYWluLmMKPj4gaW5kZXggNmRjNjMzZS4uOGUyNGU2MyAxMDA2NDQK Pj4gLS0tIGEveGVuL2FyY2gvYXJtL2RvbWFpbi5jCj4+ICsrKyBiL3hlbi9hcmNoL2FybS9kb21h aW4uYwo+PiBAQCAtMjc1LDMyICsyNzUsNTUgQEAgc3RhdGljIHZvaWQgY3R4dF9zd2l0Y2hfdG8o c3RydWN0IHZjcHUgKm4pCj4+IMKgIH0KPj4gwqAgLyogVXBkYXRlIHBlci1WQ1BVIGd1ZXN0IHJ1 bnN0YXRlIHNoYXJlZCBtZW1vcnkgYXJlYSAoaWYgcmVnaXN0ZXJlZCkuICovCj4+IC1zdGF0aWMg dm9pZCB1cGRhdGVfcnVuc3RhdGVfYXJlYShzdHJ1Y3QgdmNwdSAqdikKPj4gK3ZvaWQgdXBkYXRl X3J1bnN0YXRlX2FyZWEoc3RydWN0IHZjcHUgKnYpCj4gCj4gV2h5IGRvIHlvdSBleHBvcnQgdXBk YXRlX3J1bnN0YXRlX2FyZWE/IFRoZSBmdW5jdGlvbiBkb2VzIG5vdCBzZWVtIHRvIGJlIGNhbGxl ZCBvdXRzaWRlLgoKT3VjaCwgdGhpcyBsZWZ0IGZyb20gb25lIG9mIHRoZSBwcmV2aW91cyB2ZXJz aW9ucy4KCj4gCj4+IMKgIHsKPj4gLcKgwqDCoCB2b2lkIF9fdXNlciAqZ3Vlc3RfaGFuZGxlID0g TlVMTDsKPj4gK8KgwqDCoCBpZiAoICFndWVzdF9oYW5kbGVfaXNfbnVsbChydW5zdGF0ZV9ndWVz dCh2KSkgKQo+PiArwqDCoMKgIHsKPj4gK8KgwqDCoMKgwqDCoMKgIHZvaWQgX191c2VyICpndWVz dF9oYW5kbGUgPSBOVUxMOwo+PiArwqDCoMKgwqDCoMKgwqAgaWYgKCBWTV9BU1NJU1Qodi0+ZG9t YWluLCBydW5zdGF0ZV91cGRhdGVfZmxhZykgKQo+PiArwqDCoMKgwqDCoMKgwqAgewo+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBndWVzdF9oYW5kbGUgPSAmdi0+cnVuc3RhdGVfZ3Vlc3QucC0+ c3RhdGVfZW50cnlfdGltZSArIDE7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGd1ZXN0X2hh bmRsZS0tOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB2LT5ydW5zdGF0ZS5zdGF0ZV9lbnRy eV90aW1lIHw9IFhFTl9SVU5TVEFURV9VUERBVEU7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IF9fcmF3X2NvcHlfdG9fZ3Vlc3QoZ3Vlc3RfaGFuZGxlLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKHZvaWQgKikoJnYt PnJ1bnN0YXRlLnN0YXRlX2VudHJ5X3RpbWUgKyAxKSAtIDEsCj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAxKTsKPj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqAgc21wX3dtYigpOwo+PiArwqDCoMKgwqDCoMKgwqAgfQo+PiAt wqDCoMKgIGlmICggZ3Vlc3RfaGFuZGxlX2lzX251bGwocnVuc3RhdGVfZ3Vlc3QodikpICkKPj4g LcKgwqDCoMKgwqDCoMKgIHJldHVybjsKPj4gK8KgwqDCoMKgwqDCoMKgIF9fY29weV90b19ndWVz dChydW5zdGF0ZV9ndWVzdCh2KSwgJnYtPnJ1bnN0YXRlLCAxKTsKPj4gLcKgwqDCoCBpZiAoIFZN X0FTU0lTVCh2LT5kb21haW4sIHJ1bnN0YXRlX3VwZGF0ZV9mbGFnKSApCj4+IC3CoMKgwqAgewo+ PiAtwqDCoMKgwqDCoMKgwqAgZ3Vlc3RfaGFuZGxlID0gJnYtPnJ1bnN0YXRlX2d1ZXN0LnAtPnN0 YXRlX2VudHJ5X3RpbWUgKyAxOwo+PiAtwqDCoMKgwqDCoMKgwqAgZ3Vlc3RfaGFuZGxlLS07Cj4+ IC3CoMKgwqDCoMKgwqDCoCB2LT5ydW5zdGF0ZS5zdGF0ZV9lbnRyeV90aW1lIHw9IFhFTl9SVU5T VEFURV9VUERBVEU7Cj4+IC3CoMKgwqDCoMKgwqDCoCBfX3Jhd19jb3B5X3RvX2d1ZXN0KGd1ZXN0 X2hhbmRsZSwKPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAodm9pZCAqKSgmdi0+cnVuc3RhdGUuc3RhdGVfZW50cnlfdGltZSArIDEpIC0g MSwgMSk7Cj4+IC3CoMKgwqDCoMKgwqDCoCBzbXBfd21iKCk7Cj4+ICvCoMKgwqDCoMKgwqDCoCBp ZiAoIGd1ZXN0X2hhbmRsZSApCj4+ICvCoMKgwqDCoMKgwqDCoCB7Cj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHYtPnJ1bnN0YXRlLnN0YXRlX2VudHJ5X3RpbWUgJj0gflhFTl9SVU5TVEFURV9V UERBVEU7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNtcF93bWIoKTsKPj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqAgX19yYXdfY29weV90b19ndWVzdChndWVzdF9oYW5kbGUsCj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAodm9pZCAqKSgmdi0+cnVuc3RhdGUuc3RhdGVfZW50cnlfdGltZSArIDEpIC0gMSwKPj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIDEpOwo+PiArwqDCoMKgwqDCoMKgwqAgfQo+PiDCoMKgwqDCoMKgIH0KPj4gLcKgwqDCoCBf X2NvcHlfdG9fZ3Vlc3QocnVuc3RhdGVfZ3Vlc3QodiksICZ2LT5ydW5zdGF0ZSwgMSk7Cj4+IC0K Pj4gLcKgwqDCoCBpZiAoIGd1ZXN0X2hhbmRsZSApCj4+ICvCoMKgwqAgc3Bpbl9sb2NrKCZ2LT5t YXBwZWRfcnVuc3RhdGVfbG9jayk7Cj4+ICvCoMKgwqAgaWYgKCB2LT5tYXBwZWRfcnVuc3RhdGUg KQo+IAo+IFRoZSBjb2RlIGxvb2tzIGEgYml0IG9kZCB0byBtZSwgeW91IHNlZW0gdG8gYWxsb3cg YSBndWVzdCB0byBwcm92aWRlIDIgcnVuc3RhdGUgYXJlYXM6IG9uZSB1c2luZyBndWVzdCB2aXJ0 dWFsIGFkZHJlc3MgdGhlIG90aGVyIHVzaW5nIGd1ZXN0IHBoeXNpY2FsIGFkZHJlc3MuCj4gCj4g SXQgd291bGQgYmUgYmVzdCBpZiB3ZSBwcmV2ZW50IGEgZ3Vlc3QgdG8gbWl4IG1hdGNoIHRoZW0u IAoKRmlyc3RseSBJIHR1cm5lZCB0byBpbXBsZW1lbnRpbmcgaW4gdGhhdCB3YXksIGJ1dCB0aGUg bG9ja2luZyBhbmQgZGVjaXNzaW9ucyBjb2RlIGJlY29tZSByZWFsbHkgdWdseSBhbmQgY29tcGxl eCB3aGlsZSB0cnlpbmcgdG8gY292ZXIgJ2d1ZXN0J3MgbWlzYmVoYXZpb3InIHNjZW5hcmlvcy4K Cj4gSU9XLCBpZiB0aGUgZ3Vlc3QgcHJvdmlkZSBhIHBoeXNpY2FsIGFkZHJlc3MgZmlyc3QsIHRo ZW4gKmFsbCogdGhlIGNhbGwgc2hvdWxkIGJlIHBoeXNpY2FsIGFkZHJlc3MuIEFsdGVybmF0aXZl bHkgdGhpcyBjb3VsZCBiZSBhIHBlciB2Q1BVIGRlY2lzaW9uLgoKSSBndWVzcyB3ZSBzaG91bGQg YWdyZWUgd2hhdCB0byBpbXBsZW1lbnQgZmlyc3QuCgo+IAo+PiDCoMKgwqDCoMKgIHsKPj4gLcKg wqDCoMKgwqDCoMKgIHYtPnJ1bnN0YXRlLnN0YXRlX2VudHJ5X3RpbWUgJj0gflhFTl9SVU5TVEFU RV9VUERBVEU7Cj4+IC3CoMKgwqDCoMKgwqDCoCBzbXBfd21iKCk7Cj4+IC3CoMKgwqDCoMKgwqDC oCBfX3Jhd19jb3B5X3RvX2d1ZXN0KGd1ZXN0X2hhbmRsZSwKPj4gLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAodm9pZCAqKSgmdi0+cnVuc3Rh dGUuc3RhdGVfZW50cnlfdGltZSArIDEpIC0gMSwgMSk7Cj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAo IFZNX0FTU0lTVCh2LT5kb21haW4sIHJ1bnN0YXRlX3VwZGF0ZV9mbGFnKSApCj4+ICvCoMKgwqDC oMKgwqDCoCB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHYtPm1hcHBlZF9ydW5zdGF0ZS0+ c3RhdGVfZW50cnlfdGltZSB8PSBYRU5fUlVOU1RBVEVfVVBEQVRFOwo+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBzbXBfd21iKCk7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHYtPnJ1bnN0 YXRlLnN0YXRlX2VudHJ5X3RpbWUgfD0gWEVOX1JVTlNUQVRFX1VQREFURTsKPj4gK8KgwqDCoMKg wqDCoMKgIH0KPj4gKwo+PiArwqDCoMKgwqDCoMKgwqAgbWVtY3B5KHYtPm1hcHBlZF9ydW5zdGF0 ZSwgJnYtPnJ1bnN0YXRlLCBzaXplb2Yodi0+cnVuc3RhdGUpKTsKPj4gKwo+PiArwqDCoMKgwqDC oMKgwqAgaWYgKCBWTV9BU1NJU1Qodi0+ZG9tYWluLCBydW5zdGF0ZV91cGRhdGVfZmxhZykgKQo+ PiArwqDCoMKgwqDCoMKgwqAgewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB2LT5tYXBwZWRf cnVuc3RhdGUtPnN0YXRlX2VudHJ5X3RpbWUgJj0gflhFTl9SVU5TVEFURV9VUERBVEU7Cj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNtcF93bWIoKTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqAgdi0+cnVuc3RhdGUuc3RhdGVfZW50cnlfdGltZSAmPSB+WEVOX1JVTlNUQVRFX1VQREFURTsK Pj4gK8KgwqDCoMKgwqDCoMKgIH0KPj4gwqDCoMKgwqDCoCB9Cj4+ICvCoMKgwqAgc3Bpbl91bmxv Y2soJnYtPm1hcHBlZF9ydW5zdGF0ZV9sb2NrKTsKPj4gKwo+IAo+IE5JVDogVGhlIG5ld2xpbmUg aXMgbm90IG5lY2Vzc2FyeSBoZXJlLgoKT0suCgo+IAo+PiDCoCB9Cj4+IMKgIHN0YXRpYyB2b2lk IHNjaGVkdWxlX3RhaWwoc3RydWN0IHZjcHUgKnByZXYpCj4+IEBAIC05OTgsNiArMTAyMSw3IEBA IGxvbmcgZG9fYXJtX3ZjcHVfb3AoaW50IGNtZCwgdW5zaWduZWQgaW50IHZjcHVpZCwgWEVOX0dV RVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBhCj4+IMKgwqDCoMKgwqAgewo+PiDCoMKgwqDCoMKgwqDC oMKgwqAgY2FzZSBWQ1BVT1BfcmVnaXN0ZXJfdmNwdV9pbmZvOgo+PiDCoMKgwqDCoMKgwqDCoMKg wqAgY2FzZSBWQ1BVT1BfcmVnaXN0ZXJfcnVuc3RhdGVfbWVtb3J5X2FyZWE6Cj4+ICvCoMKgwqDC oMKgwqDCoCBjYXNlIFZDUFVPUF9yZWdpc3Rlcl9ydW5zdGF0ZV9waHlzX21lbW9yeV9hcmVhOgo+ PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gZG9fdmNwdV9vcChjbWQsIHZjcHVp ZCwgYXJnKTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGRlZmF1bHQ6Cj4+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHJldHVybiAtRUlOVkFMOwo+IAo+IAo+IFsuLi5dCj4gCj4+IGRpZmYgLS1n aXQgYS94ZW4vY29tbW9uL2RvbWFpbi5jIGIveGVuL2NvbW1vbi9kb21haW4uYwo+PiBpbmRleCBh ZTIyMDQ5Li42ZGY3NmM2IDEwMDY0NAo+PiAtLS0gYS94ZW4vY29tbW9uL2RvbWFpbi5jCj4+ICsr KyBiL3hlbi9jb21tb24vZG9tYWluLmMKPj4gQEAgLTE0OSw2ICsxNDksNyBAQCBzdHJ1Y3QgdmNw dSAqdmNwdV9jcmVhdGUoCj4+IMKgwqDCoMKgwqAgdi0+ZGlydHlfY3B1ID0gVkNQVV9DUFVfQ0xF QU47Cj4+IMKgwqDCoMKgwqAgc3Bpbl9sb2NrX2luaXQoJnYtPnZpcnFfbG9jayk7Cj4+ICvCoMKg wqAgc3Bpbl9sb2NrX2luaXQoJnYtPm1hcHBlZF9ydW5zdGF0ZV9sb2NrKTsKPj4gwqDCoMKgwqDC oCB0YXNrbGV0X2luaXQoJnYtPmNvbnRpbnVlX2h5cGVyY2FsbF90YXNrbGV0LCBOVUxMLCAwKTsK Pj4gQEAgLTY5OSw2ICs3MDAsNjkgQEAgaW50IHJjdV9sb2NrX2xpdmVfcmVtb3RlX2RvbWFpbl9i eV9pZChkb21pZF90IGRvbSwgc3RydWN0IGRvbWFpbiAqKmQpCj4+IMKgwqDCoMKgwqAgcmV0dXJu IDA7Cj4+IMKgIH0KPj4gK3N0YXRpYyB2b2lkIF91bm1hcF9ydW5zdGF0ZV9hcmVhKHN0cnVjdCB2 Y3B1ICp2KQo+IEEgYmV0dGVyIG5hbWUgd291bGQgYmUgdW5hbWVwX3J1bnN0YXRlX2FyZWFfbG9j a2VkKCkgc28geW91IGF2b2lkIHRoZSByZXNlcnZlZCBuYW1lIGFuZCBtYWtlIGNsZWFyIG9mIHRo ZSB1c2UuCgpPSy4KCj4gCj4+ICt7Cj4+ICvCoMKgwqAgbWZuX3QgbWZuOwo+PiArCj4+ICvCoMKg wqAgaWYgKCAhdi0+bWFwcGVkX3J1bnN0YXRlICkKPj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybjsK Pj4gKwo+PiArwqDCoMKgIG1mbiA9IF9tZm4odmlydF90b19tZm4ocnVuc3RhdGVfZ3Vlc3Qodiku cCkpOwo+IAo+IEFzIHBvaW50ZWQgb3V0IGJ5IEphbiBpbiB0aGUgcHJldmlvdXMgdmVyc2lvbjoK PiAKPiBUaGUgcG9pbnRlciBpcyB0aGUgcmVzdWx0IG9mIF9fbWFwX2RvbWFpbl9wYWdlX2dsb2Jh bCgpLiBTbyBJIGRvbid0IHRoaW5rIHlvdQo+IGRvbid0IHRoaW5rIHlvdSBjYW4gbGVnaXRpbWF0 ZWx5IHVzZSB2aXJ0X3RvX21mbigpIG9uIGl0LCBhdAo+IGxlYXN0IG5vdCBvbiB4ODY7IGRvbWFp bl9wYWdlX21hcF90b19tZm4oKSBpcyB3aGF0IHlvdQo+IHdhbnQgdG8gdXNlIGhlcmUuCgpZZXAu Cgo+IAo+PiArCj4+ICvCoMKgwqAgdW5tYXBfZG9tYWluX3BhZ2VfZ2xvYmFsKCh2b2lkICopCj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAoKHVuc2lnbmVkIGxvbmcpdi0+bWFwcGVkX3J1bnN0YXRlICYKPj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgUEFHRV9NQVNLKSk7 Cj4+ICsKPj4gK8KgwqDCoCB2LT5tYXBwZWRfcnVuc3RhdGUgPSBOVUxMOwo+PiArwqDCoMKgIHB1 dF9wYWdlX2FuZF90eXBlKG1mbl90b19wYWdlKG1mbikpOwo+PiArfQo+IAo+IFdlIHNlZW0gdG8g aGF2ZSB0aGlzIHBhdHRlcm4gaW4gYSBmZXcgcGxhY2VzIG5vdyAoc2VlIHVubWFwX2d1ZXN0X3Bh Z2UpLiBJdCB3b3VsZCBiZSBnb29kIHRvIGludHJvZHVjZSBoZWxwZXJzIHRoYXQgY2FuIGJlIHVz ZWQgZXZlcnl3aGVyZSAocHJvYmFibHkgbGlmdGVkIGZyb20gY29tbW9uL2V2ZW50X2ZpZm8uYy4K CkknbGwgY2hlY2suCgo+IAo+PiArCj4+ICtzdGF0aWMgaW50IG1hcF9ydW5zdGF0ZV9hcmVhKHN0 cnVjdCB2Y3B1ICp2LAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHN0cnVjdCB2Y3B1X3JlZ2lzdGVyX3J1bnN0YXRlX21lbW9yeV9hcmVhICphcmVhKQo+PiAr ewo+PiArwqDCoMKgIHVuc2lnbmVkIGxvbmcgb2Zmc2V0ID0gYXJlYS0+YWRkci5wICYgflBBR0Vf TUFTSzsKPj4gK8KgwqDCoCBnZm5fdCBnZm4gPSBnYWRkcl90b19nZm4oYXJlYS0+YWRkci5wKTsK Pj4gK8KgwqDCoCBzdHJ1Y3QgZG9tYWluICpkID0gdi0+ZG9tYWluOwo+PiArwqDCoMKgIHZvaWQg Km1hcHBpbmc7Cj4+ICvCoMKgwqAgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZTsKPj4gK8KgwqDCoCBz aXplX3Qgc2l6ZSA9IHNpemVvZiAoc3RydWN0IHZjcHVfcnVuc3RhdGVfaW5mbyApOwo+IAo+IHNw YWNlIGlzIG5vdCBuZWNlc3NhcnkgYmVmb3JlICkuCj4gCj4gQnV0IGlzIHRoZSB2YXJpYWJsZSBy ZWFsbHkgbmVjZXNzYXJ5PwoKV2VsbCwgSSB0aGluayBpdCBjb3VsZCBiZSBkcm9wcGVkLgo+IAo+ PiArCj4+ICvCoMKgwqAgaWYgKCBvZmZzZXQgPiAoUEFHRV9TSVpFIC0gc2l6ZSkgKQo+PiArwqDC oMKgwqDCoMKgwqAgcmV0dXJuIC1FSU5WQUw7Cj4+ICsKPj4gK8KgwqDCoCBwYWdlID0gZ2V0X3Bh Z2VfZnJvbV9nZm4oZCwgZ2ZuX3goZ2ZuKSwgTlVMTCwgUDJNX0FMTE9DKTsKPj4gK8KgwqDCoCBp ZiAoICFwYWdlICkKPj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiAtRUlOVkFMOwo+PiArCj4+ICvC oMKgwqAgaWYgKCAhZ2V0X3BhZ2VfdHlwZShwYWdlLCBQR1Rfd3JpdGFibGVfcGFnZSkgKQo+PiAr wqDCoMKgIHsKPj4gK8KgwqDCoMKgwqDCoMKgIHB1dF9wYWdlKHBhZ2UpOwo+PiArwqDCoMKgwqDC oMKgwqAgcmV0dXJuIC1FSU5WQUw7Cj4+ICvCoMKgwqAgfQo+PiArCj4+ICvCoMKgwqAgbWFwcGlu ZyA9IF9fbWFwX2RvbWFpbl9wYWdlX2dsb2JhbChwYWdlKTsKPj4gKwo+PiArwqDCoMKgIGlmICgg bWFwcGluZyA9PSBOVUxMICkKPj4gK8KgwqDCoCB7Cj4+ICvCoMKgwqDCoMKgwqDCoCBwdXRfcGFn ZV9hbmRfdHlwZShwYWdlKTsKPj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiAtRU5PTUVNOwo+PiAr wqDCoMKgIH0KPj4gKwo+PiArwqDCoMKgIHNwaW5fbG9jaygmdi0+bWFwcGVkX3J1bnN0YXRlX2xv Y2spOwo+PiArwqDCoMKgIF91bm1hcF9ydW5zdGF0ZV9hcmVhKHYpOwo+PiArwqDCoMKgIHYtPm1h cHBlZF9ydW5zdGF0ZSA9IG1hcHBpbmcgKyBvZmZzZXQ7Cj4+ICvCoMKgwqAgc3Bpbl91bmxvY2so JnYtPm1hcHBlZF9ydW5zdGF0ZV9sb2NrKTsKPj4gKwo+PiArwqDCoMKgIHJldHVybiAwOwo+PiAr fQo+PiArCj4+ICtzdGF0aWMgdm9pZCB1bm1hcF9ydW5zdGF0ZV9hcmVhKHN0cnVjdCB2Y3B1ICp2 KQo+PiArewo+PiArwqDCoMKgIHNwaW5fbG9jaygmdi0+bWFwcGVkX3J1bnN0YXRlX2xvY2spOwo+ PiArwqDCoMKgIF91bm1hcF9ydW5zdGF0ZV9hcmVhKHYpOwo+PiArwqDCoMKgIHNwaW5fdW5sb2Nr KCZ2LT5tYXBwZWRfcnVuc3RhdGVfbG9jayk7Cj4+ICt9Cj4+ICsKPj4gwqAgaW50IGRvbWFpbl9r aWxsKHN0cnVjdCBkb21haW4gKmQpCj4+IMKgIHsKPj4gwqDCoMKgwqDCoCBpbnQgcmMgPSAwOwo+ PiBAQCAtNzM3LDcgKzgwMSwxMSBAQCBpbnQgZG9tYWluX2tpbGwoc3RydWN0IGRvbWFpbiAqZCkK Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIGlmICggY3B1cG9vbF9tb3ZlX2RvbWFpbihkLCBjcHVwb29s MCkgKQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gLUVSRVNUQVJUOwo+PiDC oMKgwqDCoMKgwqDCoMKgwqAgZm9yX2VhY2hfdmNwdSAoIGQsIHYgKQo+PiArwqDCoMKgwqDCoMKg wqAgewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzZXRfeGVuX2d1ZXN0X2hhbmRsZShydW5z dGF0ZV9ndWVzdCh2KSwgTlVMTCk7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVubWFwX3J1 bnN0YXRlX2FyZWEodik7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVubWFwX3ZjcHVf aW5mbyh2KTsKPj4gK8KgwqDCoMKgwqDCoMKgIH0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGQtPmlz X2R5aW5nID0gRE9NRFlJTkdfZGVhZDsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC8qIE1lbSBldmVu dCBjbGVhbnVwIGhhcyB0byBnbyBoZXJlIGJlY2F1c2UgdGhlIHJpbmdzCj4+IMKgwqDCoMKgwqDC oMKgwqDCoMKgICogaGF2ZSB0byBiZSBwdXQgYmVmb3JlIHdlIGNhbGwgcHV0X2RvbWFpbi4gKi8K Pj4gQEAgLTExOTIsNiArMTI2MCw3IEBAIGludCBkb21haW5fc29mdF9yZXNldChzdHJ1Y3QgZG9t YWluICpkKQo+PiDCoMKgwqDCoMKgIGZvcl9lYWNoX3ZjcHUgKCBkLCB2ICkKPj4gwqDCoMKgwqDC oCB7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBzZXRfeGVuX2d1ZXN0X2hhbmRsZShydW5zdGF0ZV9n dWVzdCh2KSwgTlVMTCk7Cj4+ICvCoMKgwqDCoMKgwqDCoCB1bm1hcF9ydW5zdGF0ZV9hcmVhKHYp Owo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgdW5tYXBfdmNwdV9pbmZvKHYpOwo+PiDCoMKgwqDCoMKg IH0KPj4gQEAgLTE1MzYsOCArMTYwNSwxNyBAQCBsb25nIGRvX3ZjcHVfb3AoaW50IGNtZCwgdW5z aWduZWQgaW50IHZjcHVpZCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcpCj4+IMKg wqDCoMKgwqAgfQo+PiDCoMKgwqDCoMKgIGNhc2UgVkNQVU9QX3JlZ2lzdGVyX3J1bnN0YXRlX3Bo eXNfbWVtb3J5X2FyZWE6Cj4+IC3CoMKgwqDCoMKgwqDCoCByYyA9IC1FT1BOT1RTVVBQOwo+PiAr wqDCoMKgIHsKPj4gK8KgwqDCoMKgwqDCoMKgIHN0cnVjdCB2Y3B1X3JlZ2lzdGVyX3J1bnN0YXRl X21lbW9yeV9hcmVhIGFyZWE7Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoMKgIHJjID0gLUVGQVVMVDsK Pj4gK8KgwqDCoMKgwqDCoMKgIGlmICggY29weV9mcm9tX2d1ZXN0KCZhcmVhLCBhcmcsIDEpICkK Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYnJlYWs7Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoMKg IHJjID0gbWFwX3J1bnN0YXRlX2FyZWEodiwgJmFyZWEpOwo+PiArCj4+IMKgwqDCoMKgwqDCoMKg wqDCoCBicmVhazsKPj4gK8KgwqDCoCB9Cj4+IMKgICNpZmRlZiBWQ1BVX1RSQVBfTk1JCj4+IMKg wqDCoMKgwqAgY2FzZSBWQ1BVT1Bfc2VuZF9ubWk6Cj4+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVk ZS9hc20tYXJtL2RvbWFpbi5oIGIveGVuL2luY2x1ZGUvYXNtLWFybS9kb21haW4uaAo+PiBpbmRl eCAzMTJmZWM4Li4zZmI2ZWEyIDEwMDY0NAo+PiAtLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL2Rv bWFpbi5oCj4+ICsrKyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vZG9tYWluLmgKPj4gQEAgLTIxNyw2 ICsyMTcsOCBAQCB2b2lkIHZjcHVfc2hvd19leGVjdXRpb25fc3RhdGUoc3RydWN0IHZjcHUgKik7 Cj4+IMKgIHZvaWQgdmNwdV9zaG93X3JlZ2lzdGVycyhjb25zdCBzdHJ1Y3QgdmNwdSAqKTsKPj4g wqAgdm9pZCB2Y3B1X3N3aXRjaF90b19hYXJjaDY0X21vZGUoc3RydWN0IHZjcHUgKik7Cj4+ICt2 b2lkIHVwZGF0ZV9ydW5zdGF0ZV9hcmVhKHN0cnVjdCB2Y3B1ICopOwo+PiArCj4+IMKgIC8qCj4+ IMKgwqAgKiBEdWUgdG8gdGhlIHJlc3RyaWN0aW9uIG9mIEdJQ3YzLCB0aGUgbnVtYmVyIG9mIHZD UFVzIGluIEFGRjAgaXMKPj4gwqDCoCAqIGxpbWl0ZWQgdG8gMTYsIHRodXMgb25seSB0aGUgZmly c3QgNCBiaXRzIG9mIEFGRjAgYXJlIGxlZ2FsLiBXZSB3aWxsCj4+IGRpZmYgLS1naXQgYS94ZW4v aW5jbHVkZS94ZW4vZG9tYWluLmggYi94ZW4vaW5jbHVkZS94ZW4vZG9tYWluLmgKPj4gaW5kZXgg ZDFiZmM4Mi4uZWNkZGNmZSAxMDA2NDQKPj4gLS0tIGEveGVuL2luY2x1ZGUveGVuL2RvbWFpbi5o Cj4+ICsrKyBiL3hlbi9pbmNsdWRlL3hlbi9kb21haW4uaAo+PiBAQCAtMTE4LDQgKzExOCw2IEBA IHN0cnVjdCB2bnVtYV9pbmZvIHsKPj4gwqAgdm9pZCB2bnVtYV9kZXN0cm95KHN0cnVjdCB2bnVt YV9pbmZvICp2bnVtYSk7Cj4+ICtzdHJ1Y3QgdmNwdV9yZWdpc3Rlcl9ydW5zdGF0ZV9tZW1vcnlf YXJlYTsKPj4gKwo+PiDCoCAjZW5kaWYgLyogX19YRU5fRE9NQUlOX0hfXyAqLwo+PiBkaWZmIC0t Z2l0IGEveGVuL2luY2x1ZGUveGVuL3NjaGVkLmggYi94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaAo+ PiBpbmRleCA3NDhiYjBmLi4yYWZlMzFjIDEwMDY0NAo+PiAtLS0gYS94ZW4vaW5jbHVkZS94ZW4v c2NoZWQuaAo+PiArKysgYi94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaAo+PiBAQCAtMTYzLDE1ICsx NjMsMjMgQEAgc3RydWN0IHZjcHUKPj4gwqDCoMKgwqDCoCB2b2lkwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAqc2NoZWRfcHJpdjvCoMKgwqAgLyogc2NoZWR1bGVyLXNwZWNpZmljIGRhdGEgKi8KPj4g wqDCoMKgwqDCoCBzdHJ1Y3QgdmNwdV9ydW5zdGF0ZV9pbmZvIHJ1bnN0YXRlOwo+PiArCj4+ICvC oMKgwqAgc3BpbmxvY2tfdMKgwqDCoMKgwqAgbWFwcGVkX3J1bnN0YXRlX2xvY2s7Cj4+ICsKPj4g wqAgI2lmbmRlZiBDT05GSUdfQ09NUEFUCj4+IMKgICMgZGVmaW5lIHJ1bnN0YXRlX2d1ZXN0KHYp ICgodiktPnJ1bnN0YXRlX2d1ZXN0KQo+PiDCoMKgwqDCoMKgIFhFTl9HVUVTVF9IQU5ETEUodmNw dV9ydW5zdGF0ZV9pbmZvX3QpIHJ1bnN0YXRlX2d1ZXN0OyAvKiBndWVzdCBhZGRyZXNzICovCj4+ ICvCoMKgwqAgdmNwdV9ydW5zdGF0ZV9pbmZvX3QgKm1hcHBlZF9ydW5zdGF0ZTsKPj4gwqAgI2Vs c2UKPj4gwqAgIyBkZWZpbmUgcnVuc3RhdGVfZ3Vlc3QodikgKCh2KS0+cnVuc3RhdGVfZ3Vlc3Qu bmF0aXZlKQo+PiDCoMKgwqDCoMKgIHVuaW9uIHsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIFhFTl9H VUVTVF9IQU5ETEUodmNwdV9ydW5zdGF0ZV9pbmZvX3QpIG5hdGl2ZTsKPj4gwqDCoMKgwqDCoMKg wqDCoMKgIFhFTl9HVUVTVF9IQU5ETEUodmNwdV9ydW5zdGF0ZV9pbmZvX2NvbXBhdF90KSBjb21w YXQ7Cj4+IMKgwqDCoMKgwqAgfSBydW5zdGF0ZV9ndWVzdDsgLyogZ3Vlc3QgYWRkcmVzcyAqLwo+ PiArwqDCoMKgIHVuaW9uIHsKPj4gK8KgwqDCoMKgwqDCoMKgIHZjcHVfcnVuc3RhdGVfaW5mb190 KiBuYXRpdmU7Cj4+ICvCoMKgwqDCoMKgwqDCoCB2Y3B1X3J1bnN0YXRlX2luZm9fY29tcGF0X3Qq IGNvbXBhdDsKPj4gK8KgwqDCoCB9IG1hcHBlZF9ydW5zdGF0ZTsgLyogZ3Vlc3QgYWRkcmVzcyAq Lwo+ID4gVGhlIGNvbWJpbmF0aW9uIG9mIG1hcHBlZF9ydW5zdGF0ZSBhbmQgcnVuc3RhdGVfZ3Vl c3QgaXMgYSBiaXQgY29uZnVzaW5nLiBJIHRoaW5rIHlvdSB3YW50IHRvIHJld29yayB0aGUgaW50 ZXJmYWNlIHRvIHNob3cgdGhhdCBvbmx5IG9uZSBpcyBwb3NzaWJsZSBhdCB0aGUgdGltZSBhbmQg bWFrZSBjbGVhciB3aGljaCBvbmUgaXMgdXNlZCBieSB3aG8uIE1heWJlOgoKQXMgSSBzYWlkIGJl Zm9yZSwgSU1PIGNvdXBsaW5nIHRob3NlIGludGVyZmFjZXMgbWFrZXMgdGhlIGNvZGUgY29tcGxp Y2F0ZWQgYW5kIHVnbHkuCgo+IAo+IHVuaW9uCj4gewo+ICDCoMKgIC8qIExlZ2FjeSBpbnRlcmZh Y2UgdG8gYmUgdXNlZCB3aGVuIHRoZSBndWVzdCBwcm92aWRlcyBhIHZpcnR1YWwgYWRkcmVzcyAq Lwo+ICDCoMKgIHVuaW9uIHsKPiAgwqDCoMKgwqDCoCBYRU5fR1VFU1RfSEFORExFKHZjcHVfcnVu c3RhdGVfaW5mb190KSBuYXRpdmU7Cj4gIMKgwqDCoMKgwqAgLi4uCj4gIMKgwqAgfSB2aXJ0Owo+ IAo+ICDCoMKgIC8qIEludGVyZmFjZSB1c2VkIHdoZW4gdGhlIGd1ZXN0IHByb3ZpZGVzIGEgcGh5 c2ljYWwgYWRkcmVzcyAqLwo+ICDCoMKgIHVuaW9uIHsKPiAgwqDCoCB9IHBoeXM7Cj4gfSBydW5z dGF0ZV9ndWVzdC4+IAo+IHJ1bnN0YXRlX2d1ZXN0X3R5cGUgLyogY291bGQgYmUgYSBib29sIG9y IGVudW0gKi8KPiAKPiBKYW4gd2hhdCBkbyB5b3UgdGhpbms/Cj4gCj4gQ2hlZXJzLAo+IAoKLS0g ClNpbmNlcmVseSwKQW5kcmlpIEFuaXNvdi4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3Rz LnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0 aW5mby94ZW4tZGV2ZWw=