From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wen Congyang Subject: Re: [PATCH v10 16/31] secondary vm suspend/resume/checkpoint code Date: Tue, 1 Mar 2016 18:06:22 +0800 Message-ID: <56D5699E.2060002@cn.fujitsu.com> References: <1456109555-28299-1-git-send-email-wency@cn.fujitsu.com> <1456109555-28299-17-git-send-email-wency@cn.fujitsu.com> <20160225155649.GH4235@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20160225155649.GH4235@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Wei Liu Cc: Lars Kurth , Changlong Xie , Ian Campbell , Andrew Cooper , Jiang Yunhong , Ian Jackson , xen devel , Dong Eddie , Gui Jianfeng , Shriram Rajagopalan , Yang Hongyang List-Id: xen-devel@lists.xenproject.org T24gMDIvMjUvMjAxNiAxMTo1NiBQTSwgV2VpIExpdSB3cm90ZToKPiBPbiBNb24sIEZlYiAyMiwg MjAxNiBhdCAxMDo1MjoyMEFNICswODAwLCBXZW4gQ29uZ3lhbmcgd3JvdGU6Cj4+IFNlY29uZGFy eSB2bSBpcyBydW5uaW5nIGluIGNvbG8gbW9kZS4gU28gd2Ugd2lsbCBkbwo+PiB0aGUgZm9sbG93 aW5nIHRoaW5ncyBhZ2FpbiBhbmQgYWdhaW46Cj4+IDEuIFJlc3VtZSBzZWNvbmRhcnkgdm0KPj4g ICAgYS4gU2VuZCBDSEVDS1BPSU5UX1NWTV9SRUFEWSB0byBtYXN0ZXIuCj4+ICAgIGIuIElmIGl0 IGlzIG5vdCB0aGUgZmlyc3QgcmVzdW1lLCBjYWxsIGxpYnhsX19jaGVja3BvaW50X2RldmljZXNf cHJlcmVzdW1lKCkuCj4+ICAgIGMuIElmIGl0IGlzIHRoZSBmaXJzdCByZXN1bWUocmVzdW1lIHJp Z2h0IGFmdGVyIGxpdmUgbWlncmF0aW9uKSwKPj4gICAgICAgLSBjYWxsIGxpYnhsX194Y19kb21h aW5fcmVzdG9yZV9kb25lKCkgdG8gYnVpbGQgdGhlIHNlY29uZGFyeSB2bS4KPj4gICAgICAgLSBl bmFibGUgc2Vjb25kYXJ5IHZtJ3MgbG9nZGlydHkuCj4+ICAgICAgIC0gY2FsbCBsaWJ4bF9fZG9t YWluX3Jlc3VtZSgpIHRvIHJlc3VtZSBzZWNvbmRhcnkgdm0uCj4+ICAgICAgIC0gY2FsbCBsaWJ4 bF9fY2hlY2twb2ludF9kZXZpY2VzX3NldHVwKCkgdG8gc2V0dXAgY2hlY2twb2ludCBkZXZpY2Vz Lgo+PiAgICBkLiBTZW5kIENIRUNLUE9JTlRfU1ZNX1JFU1VNRUQgdG8gbWFzdGVyLgo+PiAyLiBX YWl0IGEgbmV3IGNoZWNrcG9pbnQKPj4gICAgYS4gQ2FsbCBsaWJ4bF9fY2hlY2twb2ludF9kZXZp Y2VzX2NvbW1pdCgpLgo+PiAgICBiLiBSZWFkIENIRUNLUE9JTlRfTkVXIGZyb20gbWFzdGVyLgo+ PiAzLiBTdXNwZW5kIHNlY29uZGFyeSB2bQo+PiAgICBhLiBTdXNwZW5kIHNlY29uZGFyeSB2bS4K Pj4gICAgYi4gQ2FsbCBsaWJ4bF9fY2hlY2twb2ludF9kZXZpY2VzX3Bvc3RzdXNwZW5kKCkuCj4+ ICAgIGMuIFNlbmQgQ0hFQ0tQT0lOVF9TVk1fU1VTUEVOREVEIHRvIG1hc3Rlci4KPj4KPj4gU2ln bmVkLW9mZi1ieTogV2VuIENvbmd5YW5nIDx3ZW5jeUBjbi5mdWppdHN1LmNvbT4KPj4gU2lnbmVk LW9mZi1ieTogWWFuZyBIb25neWFuZyA8aG9uZ3lhbmcueWFuZ0BlYXN5c3RhY2suY24+Cj4+IC0t LQo+PiAgdG9vbHMvbGlieGMveGNfc3JfY29tbW9uLmggICAgICAgfCAgICAyICsKPj4gIHRvb2xz L2xpYnhjL3hjX3NyX3NhdmUuYyAgICAgICAgIHwgICAgMyArLQo+PiAgdG9vbHMvbGlieGwvTWFr ZWZpbGUgICAgICAgICAgICAgfCAgICAxICsKPj4gIHRvb2xzL2xpYnhsL2xpYnhsX2NvbG8uaCAg ICAgICAgIHwgICAyNCArCj4+ICB0b29scy9saWJ4bC9saWJ4bF9jb2xvX3Jlc3RvcmUuYyB8IDEw MzggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPj4gIHRvb2xzL2xpYnhs L2xpYnhsX2NyZWF0ZS5jICAgICAgIHwgICAzNyArKwo+PiAgdG9vbHMvbGlieGwvbGlieGxfaW50 ZXJuYWwuaCAgICAgfCAgIDE5ICsKPj4gIHRvb2xzL2xpYnhsL2xpYnhsX3NhdmVfY2FsbG91dC5j IHwgICAgNyArLQo+PiAgdG9vbHMvbGlieGwvbGlieGxfc3RyZWFtX3JlYWQuYyAgfCAgIDEyICsK Pj4gIHRvb2xzL2xpYnhsL2xpYnhsX3R5cGVzLmlkbCAgICAgIHwgICAgMSArCj4gCj4gVGhlcmUg aXMgYSBidW5jaCBvZiBUT0RPcyBpbiBsaWJ4bF9jb2xvLmMgYnV0IEkgZG9uJ3QgdGhpbmsgeW91 J3JlIGluIGEKPiBiZXR0ZXIgcG9zaXRpb24gdG8ganVkZ2Ugd2hldGhlciB0aGV5IHNob3VsZCBi ZSBibG9ja2VyIG9yIG5vdC4KPiAKPj4gIDEwIGZpbGVzIGNoYW5nZWQsIDExNDIgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKPj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCB0b29scy9saWJ4bC9s aWJ4bF9jb2xvLmgKPj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCB0b29scy9saWJ4bC9saWJ4bF9jb2xv X3Jlc3RvcmUuYwo+Pgo+PiBkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMveGNfc3JfY29tbW9uLmgg Yi90b29scy9saWJ4Yy94Y19zcl9jb21tb24uaAo+PiBpbmRleCA1ZDlmNDk3Li4yYmZlZDY0IDEw MDY0NAo+PiAtLS0gYS90b29scy9saWJ4Yy94Y19zcl9jb21tb24uaAo+PiArKysgYi90b29scy9s aWJ4Yy94Y19zcl9jb21tb24uaAo+PiBAQCAtMTg0LDEwICsxODQsMTIgQEAgc3RydWN0IHhjX3Ny X2NvbnRleHQKPj4gICAgICAgKiBtaWdyYXRpb24gc3RyZWFtCj4+ICAgICAgICogMDogUGxhaW4g Vk0KPj4gICAgICAgKiAxOiBSZW11cwo+PiArICAgICAqIDI6IENPTE8KPj4gICAgICAgKi8KPj4g ICAgICBlbnVtIHsKPj4gICAgICAgICAgTUlHX1NUUkVBTV9OT05FLCAvKiBwbGFpbiBzdHJlYW0g Ki8KPj4gICAgICAgICAgTUlHX1NUUkVBTV9SRU1VUywKPj4gKyAgICAgICAgTUlHX1NUUkVBTV9D T0xPLAo+PiAgICAgIH0gbWlncmF0aW9uX3N0cmVhbTsKPj4gIAo+PiAgICAgIHVuaW9uIC8qIENv bW1vbiBzYXZlIG9yIHJlc3RvcmUgZGF0YS4gKi8KPj4gZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhj L3hjX3NyX3NhdmUuYyBiL3Rvb2xzL2xpYnhjL3hjX3NyX3NhdmUuYwo+PiBpbmRleCBmZTIxMGNj Li43MzkzMzU1IDEwMDY0NAo+PiAtLS0gYS90b29scy9saWJ4Yy94Y19zcl9zYXZlLmMKPj4gKysr IGIvdG9vbHMvbGlieGMveGNfc3Jfc2F2ZS5jCj4+IEBAIC04NDYsNyArODQ2LDggQEAgaW50IHhj X2RvbWFpbl9zYXZlKHhjX2ludGVyZmFjZSAqeGNoLCBpbnQgaW9fZmQsIHVpbnQzMl90IGRvbSwK Pj4gIAo+PiAgICAgIC8qIElmIGFsdGVyaW5nIG1pZ3JhdGlvbl9zdHJlYW0gdXBkYXRlIHRoaXMg YXNzZXJ0IHRvby4gKi8KPj4gICAgICBhc3NlcnQoY2hlY2twb2ludGVkX3N0cmVhbSA9PSBNSUdf U1RSRUFNX05PTkUgfHwKPj4gLSAgICAgICAgICAgY2hlY2twb2ludGVkX3N0cmVhbSA9PSBNSUdf U1RSRUFNX1JFTVVTKTsKPj4gKyAgICAgICAgICAgY2hlY2twb2ludGVkX3N0cmVhbSA9PSBNSUdf U1RSRUFNX1JFTVVTIHx8Cj4+ICsgICAgICAgICAgIGNoZWNrcG9pbnRlZF9zdHJlYW0gPT0gTUlH X1NUUkVBTV9DT0xPKTsKPj4gIAo+PiAgICAgIC8qCj4+ICAgICAgICogVE9ETzogRmluZCBzb21l IHRpbWUgdG8gYmV0dGVyIHR3ZWFrIHRoZSBsaXZlIG1pZ3JhdGlvbiBhbGdvcml0aG0uCj4gCj4g Wy4uLl0KPiAKPj4gKwo+PiArI2luY2x1ZGUgImxpYnhsX29zZGVwcy5oIiAvKiBtdXN0IGNvbWUg YmVmb3JlIGFueSBvdGhlciBoZWFkZXJzICovCj4+ICsKPj4gKyNpbmNsdWRlICJsaWJ4bF9pbnRl cm5hbC5oIgo+PiArI2luY2x1ZGUgImxpYnhsX2NvbG8uaCIKPj4gKyNpbmNsdWRlICJsaWJ4bF9z cl9zdHJlYW1fZm9ybWF0LmgiCj4+ICsKPj4gK2VudW0gewo+PiArICAgIExJQlhMX0NPTE9fU0VU VVBFRCwKPj4gKyAgICBMSUJYTF9DT0xPX1NVU1BFTkRFRCwKPj4gKyAgICBMSUJYTF9DT0xPX1JF U1VNRUQsCj4+ICt9Owo+PiArCj4+ICt0eXBlZGVmIHN0cnVjdCBsaWJ4bF9fY29sb19yZXN0b3Jl X2NoZWNrcG9pbnRfc3RhdGUgbGlieGxfX2NvbG9fcmVzdG9yZV9jaGVja3BvaW50X3N0YXRlOwo+ PiArc3RydWN0IGxpYnhsX19jb2xvX3Jlc3RvcmVfY2hlY2twb2ludF9zdGF0ZSB7Cj4+ICsgICAg bGlieGxfX2RvbWFpbl9zdXNwZW5kX3N0YXRlIGRzcHM7Cj4+ICsgICAgbGlieGxfX2xvZ2RpcnR5 X3N3aXRjaCBsZHM7Cj4+ICsgICAgbGlieGxfX2NvbG9fcmVzdG9yZV9zdGF0ZSAqY3JzOwo+PiAr ICAgIGxpYnhsX19zdHJlYW1fd3JpdGVfc3RhdGUgc3dzOwo+PiArICAgIGludCBzdGF0dXM7Cj4+ ICsgICAgYm9vbCBwcmVyZXN1bWU7Cj4+ICsgICAgLyogdXNlZCBmb3IgdGVhcmRvd24gKi8KPj4g KyAgICBpbnQgdGVhcmRvd25fZGV2aWNlczsKPj4gKyAgICBpbnQgc2F2ZWRfcmM7Cj4+ICsgICAg Y2hhciAqc3RhdGVfZmlsZTsKPj4gKwo+PiArICAgIHZvaWQgKCpjYWxsYmFjaykobGlieGxfX2Vn YyAqLAo+PiArICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2NvbG9fcmVzdG9yZV9jaGVja3Bv aW50X3N0YXRlICosCj4+ICsgICAgICAgICAgICAgICAgICAgICBpbnQpOwo+PiArfTsKPj4gKwo+ IAo+IFNob3VsZG4ndCB0aGUgZW51bSBhbmQgc3RydWN0IGJlbG9uZyB0byBsaWJ4bF9jb2xvLmgg PwoKSWYgd2UgaW5sdWNkZSBsaWJ4bF9jb2xvLmggaW4gbGlieGxfaW50ZXJuYWwuaCwgd2UgY2Fu bm90IG1vdmUgdGhpcyBpbnRvIGNvbG8uaCwgYmVjYXVzZQp0aGlzIHN0cnVjdHVyZSBuZWVkcyBs aWJ4bF9fZG9tYWluX3N1c3BlbmRfc3RhdGUsIGxpYnhsX19sb2dkaXJ0eV9zd2l0Y2gsIC4uLgpX ZSBjYW5ub3QganVzdCBkZWNsYXJlIGl0LCBiZWNhdXNlIHRoaXMgc3RydWN0dXJlIG5lZWRzIGtu b3cgdGhlcmUgc2l6ZS4KCj4gCj4+ICsKPj4gK3N0YXRpYyB2b2lkIGxpYnhsX19jb2xvX3Jlc3Rv cmVfZG9tYWluX3Jlc3VtZV9jYWxsYmFjayh2b2lkICpkYXRhKTsKPj4gK3N0YXRpYyB2b2lkIGxp YnhsX19jb2xvX3Jlc3RvcmVfZG9tYWluX2NoZWNrcG9pbnRfY2FsbGJhY2sodm9pZCAqZGF0YSk7 Cj4+ICtzdGF0aWMgdm9pZCBsaWJ4bF9fY29sb19yZXN0b3JlX2RvbWFpbl93YWl0X2NoZWNrcG9p bnRfY2FsbGJhY2sodm9pZCAqZGF0YSk7Cj4+ICtzdGF0aWMgdm9pZCBsaWJ4bF9fY29sb19yZXN0 b3JlX2RvbWFpbl9zdXNwZW5kX2NhbGxiYWNrKHZvaWQgKmRhdGEpOwo+PiArCj4+ICtzdGF0aWMg Y29uc3QgbGlieGxfX2NoZWNrcG9pbnRfZGV2aWNlX2luc3RhbmNlX29wcyAqY29sb19yZXN0b3Jl X29wc1tdID0gewo+PiArICAgIE5VTEwsCj4+ICt9Owo+PiArCj4gCj4gSXQgd291bGQgYmUgaGVs cGZ1bCB0byBsaXN0IHRoZSBjYWxsYmFja3MgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgdGltZQo+ IGluIHRoZSBvcmRlciB0aGV5IGFyZSBzdXBwb3NlZCB0byBvY2N1ci4KPiAKPiBTZWUgbGlieGxf Y3JlYXRlLmMgZm9yIGV4YW1wbGUuIFNlYXJjaCBmb3IgIkV2ZW50IGNhbGxiYWNrcywgaW4gdGhp cwo+IG9yZGVyIi4KPiAKPiBJJ3ZlIHRyaWVkIHRvIG1hcCB0aGUgYWxnb3JpdGhtIHlvdSBkZXNj cmliZWQgaW4gY29tbWl0IG1lc3NhZ2UgdG8gYWxsCj4gdGhlIGNhbGxiYWNrcywgYnV0IHdpdGhv dXQgc29tZSByZWZlcmVuY2VzIGl0IGlzIGp1c3QgdG9vIHRpbWUgY29uc3VtaW5nCj4gZnJvbSBt eSBlbmQuCj4gCj4gSSB0aGluayB3aGF0IEknbSBnb2luZyB0byBkbyBpcyB0byBtYWtlIHN1cmUg dGhlIG5vcm1hbCBwYXRoIHRoYXQKPiBkb2Vzbid0IHVzZSBDT0xPIGlzIG5vdCBicm9rZW4gYW5k IGxlYXZlIHRoZSBpbnRlcm5hbCB0byB5b3UgYW5kIElhbiAoaWYKPiBoZSBmYW5jaWVzIHRvIGRp ZyBpbnRvIGRldGFpbHMpLgo+IAo+IFsuLi5dCj4+ICsKPj4gK3ZvaWQgbGlieGxfX2NvbG9fcmVz dG9yZV9zZXR1cChsaWJ4bF9fZWdjICplZ2MsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGlieGxfX2NvbG9fcmVzdG9yZV9zdGF0ZSAqY3JzKQo+PiArewo+PiArICAgIGxpYnhs X19kb21haW5fY3JlYXRlX3N0YXRlICpkY3MgPSBDT05UQUlORVJfT0YoY3JzLCAqZGNzLCBjcnMp Owo+PiArICAgIGxpYnhsX19jb2xvX3Jlc3RvcmVfY2hlY2twb2ludF9zdGF0ZSAqY3JjczsKPj4g KyAgICBpbnQgcmMgPSBFUlJPUl9GQUlMOwo+PiArCj4+ICsgICAgLyogQ29udmVuaWVuY2UgYWxp YXNlcyAqLwo+PiArICAgIGxpYnhsX19zcm1fcmVzdG9yZV9hdXRvZ2VuX2NhbGxiYWNrcyAqY29u c3QgY2FsbGJhY2tzID0KPj4gKyAgICAgICAgJmRjcy0+c3JzLnNocy5jYWxsYmFja3MucmVzdG9y ZS5hOwo+PiArICAgIGNvbnN0IGludCBkb21pZCA9IGNycy0+ZG9taWQ7Cj4+ICsKPj4gKyAgICBT VEFURV9BT19HQyhjcnMtPmFvKTsKPj4gKwo+PiArICAgIEdDTkVXKGNyY3MpOwo+PiArICAgIGNy cy0+Y3JjcyA9IGNyY3M7Cj4+ICsgICAgY3Jjcy0+Y3JzID0gY3JzOwo+PiArCj4+ICsgICAgLyog c2V0dXAgZHNwcyAqLwo+PiArICAgIGNyY3MtPmRzcHMuYW8gPSBhbzsKPj4gKyAgICBjcmNzLT5k c3BzLmRvbWlkID0gZG9taWQ7Cj4+ICsgICAgaWYgKGluaXRfZHNwcygmY3Jjcy0+ZHNwcykpCj4+ ICsgICAgICAgIGdvdG8gZXJyOwo+PiArCj4+ICsgICAgY2FsbGJhY2tzLT5zdXNwZW5kID0gbGli eGxfX2NvbG9fcmVzdG9yZV9kb21haW5fc3VzcGVuZF9jYWxsYmFjazsKPj4gKyAgICBjYWxsYmFj a3MtPnBvc3Rjb3B5ID0gbGlieGxfX2NvbG9fcmVzdG9yZV9kb21haW5fcmVzdW1lX2NhbGxiYWNr Owo+PiArICAgIGNhbGxiYWNrcy0+Y2hlY2twb2ludCA9IGxpYnhsX19jb2xvX3Jlc3RvcmVfZG9t YWluX2NoZWNrcG9pbnRfY2FsbGJhY2s7Cj4+ICsgICAgY2FsbGJhY2tzLT53YWl0X2NoZWNrcG9p bnQgPSBsaWJ4bF9fY29sb19yZXN0b3JlX2RvbWFpbl93YWl0X2NoZWNrcG9pbnRfY2FsbGJhY2s7 Cj4+ICsKPj4gKyAgICAvKgo+PiArICAgICAqIFNlY29uZGFyeSB2bSBpcyBydW5uaW5nIGluIGNv bG8gbW9kZSwgc28gd2UgbmVlZCB0byBjYWxsCj4+ICsgICAgICogbGlieGxfX3hjX2RvbWFpbl9y ZXN0b3JlX2RvbmUoKSB0byBjcmVhdGUgc2Vjb25kYXJ5IHZtLgo+PiArICAgICAqIEJ1dCB3ZSB3 aWxsIGV4aXQgaW4gZG9tYWluX2NyZWF0ZV9jYigpLiBTbyByZXBsYWNlIHRoZQo+PiArICAgICAq IGNhbGxiYWNrIGhlcmUuCj4+ICsgICAgICovCj4+ICsgICAgY3JzLT5zYXZlZF9jYiA9IGRjcy0+ Y2FsbGJhY2s7Cj4+ICsgICAgZGNzLT5jYWxsYmFjayA9IGxpYnhsX19jb2xvX2RvbWFpbl9jcmVh dGVfY2I7Cj4+ICsgICAgY3Jjcy0+c3RhdGVfZmlsZSA9IEdDU1BSSU5URihMSUJYTF9ERVZJQ0Vf TU9ERUxfUkVTVE9SRV9GSUxFIi4lZCIsIGRvbWlkKTsKPiAKPiBDYW4geW91IHVzZSBhIGRpZmZl cmVudCBuYW1lIHNwYWNlIGZyb20gdGhlIG5vcm1hbCBvbmU/Cj4gCj4gRm9yIGV4YW1wbGUsIHlv dSBjYW4gcHV0Cj4gCj4gICNkZWZpbmUgTElCWExfQ09MT19ERVZJQ0VfTU9ERUxfUkVTVE9SRV9G SUxFICAgIFhYWFgKPiAKPiBpbiBsaWJ4bF9jb2xvLmggYW5kIHVzZSBpdCBpbiBhbGwgQ09MTyBj b2RlLgo+IAo+IAo+PiArICAgIGNyY3MtPnN0YXR1cyA9IExJQlhMX0NPTE9fU0VUVVBFRDsKPj4g Kwo+PiArICAgIGxpYnhsX19sb2dkaXJ0eV9pbml0KCZjcmNzLT5sZHMpOwo+PiArICAgIGNyY3Mt Pmxkcy5hbyA9IGFvOwo+PiArCj4+ICsgICAgY3Jjcy0+c3dzLmZkID0gY3JzLT5zZW5kX2JhY2tf ZmQ7Cj4+ICsgICAgY3Jjcy0+c3dzLmFvID0gYW87Cj4+ICsgICAgY3Jjcy0+c3dzLmJhY2tfY2hh bm5lbCA9IHRydWU7Cj4+ICsKPj4gKyAgICBkY3MtPmNkcy5jb25jcmV0ZV9kYXRhID0gY3JzOwo+ PiArCj4+ICsgICAgbGlieGxfX3N0cmVhbV93cml0ZV9zdGFydChlZ2MsICZjcmNzLT5zd3MpOwo+ PiArCj4+ICsgICAgcmMgPSAwOwo+PiArCj4+ICtvdXQ6Cj4+ICsgICAgY3JzLT5jYWxsYmFjayhl Z2MsIGNycywgcmMpOwo+PiArICAgIHJldHVybjsKPj4gKwo+PiArZXJyOgo+PiArICAgIGdvdG8g b3V0Owo+PiArfQo+PiArCj4+ICtzdGF0aWMgdm9pZCBsaWJ4bF9fY29sb19kb21haW5fY3JlYXRl X2NiKGxpYnhsX19lZ2MgKmVnYywKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGlieGxfX2RvbWFpbl9jcmVhdGVfc3RhdGUgKmRjcywKPj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJjLCB1aW50MzJfdCBkb21pZCkKPj4g K3sKPj4gKyAgICBsaWJ4bF9fY29sb19yZXN0b3JlX2NoZWNrcG9pbnRfc3RhdGUgKmNyY3MgPSBk Y3MtPmNycy5jcmNzOwo+PiArCj4+ICsgICAgY3Jjcy0+Y2FsbGJhY2soZWdjLCBjcmNzLCByYyk7 Cj4+ICt9Cj4+ICsKPj4gKwo+IFsuLi5dCj4+ICsKPj4gK3N0YXRpYyB2b2lkIGNvbG9fZGlzYWJs ZV9sb2dkaXJ0eV9kb25lKGxpYnhsX19lZ2MgKmVnYywKPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxpYnhsX19sb2dkaXJ0eV9zd2l0Y2ggKmxkcywKPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByYykKPj4gK3sKPj4gKyAgICBs aWJ4bF9fY29sb19yZXN0b3JlX2NoZWNrcG9pbnRfc3RhdGUgKmNyY3MgPSBDT05UQUlORVJfT0Yo bGRzLCAqY3JjcywgbGRzKTsKPj4gKwo+PiArICAgIEVHQ19HQzsKPj4gKwo+PiArICAgIGlmIChy YykKPj4gKyAgICAgICAgTE9HKFdBUk4sICJjYW5ub3QgZGlzYWJsZSBsb2dkaXJ0eSIpOwo+PiAr Cj4+ICsgICAgaWYgKGNyY3MtPnN0YXR1cyA9PSBMSUJYTF9DT0xPX1NVU1BFTkRFRCkgewo+PiAr ICAgICAgICAvKgo+PiArICAgICAgICAgKiBmYWlsb3ZlciB3aGVuIHJlYWRpbmcgc3RhdGUgZnJv bSBtYXN0ZXIsIHNvIG5vIG5lZWQgdG8KPj4gKyAgICAgICAgICogY2FsbCBsaWJ4bF9fZG9tYWlu X3Jlc3RvcmUoKS4KPiAKPiBZb3UgbmVlZCB0byB1cGRhdGUgdGhpcyBjb21tZW50IHRvIHRoZSBy aWdodCBmdW5jdGlvbiBuYW1lLgo+IAo+PiArICAgICAgICAgKi8KPj4gKyAgICAgICAgY29sb19y ZXN1bWVfdm0oZWdjLCBjcmNzLCAwKTsKPj4gKyAgICAgICAgcmV0dXJuOwo+PiArICAgIH0KPj4g Kwo+PiArICAgIC8qIElmIHdlIGNhbm5vdCBkaXNhYmxlIGxvZ2RpcnR5LCB3ZSBzdGlsbCBjYW4g ZG8gZmFpbG92ZXIgKi8KPj4gKyAgICBjcmNzLT5jYWxsYmFjayhlZ2MsIGNyY3MsIDApOwo+PiAr fQo+PiArCj4gWy4uLl0KPj4gIAo+PiArLyogY29sbyByZWxhdGVkIHN0cnVjdHVyZSAqLwo+PiAr dHlwZWRlZiBzdHJ1Y3QgbGlieGxfX2NvbG9fcmVzdG9yZV9zdGF0ZSBsaWJ4bF9fY29sb19yZXN0 b3JlX3N0YXRlOwo+PiArdHlwZWRlZiB2b2lkIGxpYnhsX19jb2xvX2NhbGxiYWNrKGxpYnhsX19l Z2MgKiwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fY29sb19y ZXN0b3JlX3N0YXRlICosIGludCByYyk7Cj4+ICtzdHJ1Y3QgbGlieGxfX2NvbG9fcmVzdG9yZV9z dGF0ZSB7Cj4+ICsgICAgLyogbXVzdCBzZXQgYnkgY2FsbGVyIG9mIGxpYnhsX19jb2xvXyhzZXR1 cHx0ZWFyZG93bikgKi8KPj4gKyAgICBsaWJ4bF9fYW8gKmFvOwo+PiArICAgIHVpbnQzMl90IGRv bWlkOwo+PiArICAgIGludCBzZW5kX2JhY2tfZmQ7Cj4+ICsgICAgaW50IHJlY3ZfZmQ7Cj4+ICsg ICAgaW50IGh2bTsKPj4gKyAgICBsaWJ4bF9fY29sb19jYWxsYmFjayAqY2FsbGJhY2s7Cj4+ICsK Pj4gKyAgICAvKiBwcml2YXRlLCBjb2xvIHJlc3RvcmUgY2hlY2twb2ludCBzdGF0ZSAqLwo+PiAr ICAgIGxpYnhsX19kb21haW5fY3JlYXRlX2NiICpzYXZlZF9jYjsKPj4gKyAgICB2b2lkICpjcmNz Owo+PiArfTsKPj4gIAo+IAo+IEFuZCB0aGlzIHNob3VsZCBnbyB0byBsaWJ4bF9jb2xvLmgsIHRv bz8gQW5kIGxpYnhsX2ludGVybmFsLmggaW5jbHVkZXMKPiBsaWJ4bF9jb2xvLmg/CgpJZiB3ZSBk byBzbywgd2Ugc2hvdWxkIGRlY2xhcmUgbGlieGxfX2FvLCBsaWJ4bF9fZG9tYWluX2NyZWF0ZV9j YiBpbiBsaWJ4bF9jb2xvLmgKClRoYW5rcwpXZW4gQ29uZ3lhbmcKCj4gCj4gSSBqdXN0IGRvbid0 IHdhbnQgdG8gY29sbyBzdHJ1Y3R1cmVzIGFuZCBmdW5jdGlvbnMgc2NhdHRlciBpbgo+IGRpZmZl cmVudCBwbGFjZXMuCj4gCj4+ICBzdHJ1Y3QgbGlieGxfX2RvbWFpbl9jcmVhdGVfc3RhdGUgewo+ PiAgICAgIC8qIGZpbGxlZCBpbiBieSB1c2VyICovCj4+IEBAIC0zNDg2LDYgKzM1MDMsOCBAQCBz dHJ1Y3QgbGlieGxfX2RvbWFpbl9jcmVhdGVfc3RhdGUgewo+PiAgICAgIC8qIHByaXZhdGUgdG8g ZG9tYWluX2NyZWF0ZSAqLwo+PiAgICAgIGludCBndWVzdF9kb21pZDsKPj4gICAgICBsaWJ4bF9f ZG9tYWluX2J1aWxkX3N0YXRlIGJ1aWxkX3N0YXRlOwo+PiArICAgIGxpYnhsX19jb2xvX3Jlc3Rv cmVfc3RhdGUgY3JzOwo+PiArICAgIGxpYnhsX19jaGVja3BvaW50X2RldmljZXNfc3RhdGUgY2Rz Owo+PiAgICAgIGxpYnhsX19ib290bG9hZGVyX3N0YXRlIGJsOwo+PiAgICAgIGxpYnhsX19zdHVi X2RtX3NwYXduX3N0YXRlIGRtc3M7Cj4+ICAgICAgICAgIC8qIElmIHdlJ3JlIG5vdCBkb2luZyBz dHViZG9tLCB3ZSB1c2Ugb25seSBkbXNzLmRtLAo+PiBkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwv bGlieGxfc2F2ZV9jYWxsb3V0LmMgYi90b29scy9saWJ4bC9saWJ4bF9zYXZlX2NhbGxvdXQuYwo+ PiBpbmRleCAwZDY5NDlhLi5iMTgxMGIyIDEwMDY0NAo+PiAtLS0gYS90b29scy9saWJ4bC9saWJ4 bF9zYXZlX2NhbGxvdXQuYwo+PiArKysgYi90b29scy9saWJ4bC9saWJ4bF9zYXZlX2NhbGxvdXQu Ywo+PiBAQCAtMTUsNiArMTUsNyBAQAo+PiAgI2luY2x1ZGUgImxpYnhsX29zZGVwcy5oIgo+PiAg Cj4+ICAjaW5jbHVkZSAibGlieGxfaW50ZXJuYWwuaCIKPj4gKyNpbmNsdWRlICJsaWJ4bF9jb2xv LmgiCj4+ICAKPj4gIC8qIHN0cmVhbV9mZCBpcyBhcyBmcm9tIHRoZSBjYWxsZXIgKGV2ZW50dWFs bHksIHRoZSBhcHBsaWNhdGlvbikuCj4+ICAgKiBJdCBtYXkgYmUgMCwgMSBvciAyLCBpbiB3aGlj aCBjYXNlIHdlIG5lZWQgdG8gZHVwIGl0IGVsc2V3aGVyZS4KPj4gQEAgLTY4LDcgKzY5LDExIEBA IHZvaWQgbGlieGxfX3hjX2RvbWFpbl9yZXN0b3JlKGxpYnhsX19lZ2MgKmVnYywgbGlieGxfX2Rv bWFpbl9jcmVhdGVfc3RhdGUgKmRjcywKPj4gICAgICBzaHMtPmFvID0gYW87Cj4+ICAgICAgc2hz LT5kb21pZCA9IGRvbWlkOwo+PiAgICAgIHNocy0+cmVjdl9jYWxsYmFjayA9IGxpYnhsX19zcm1f Y2FsbG91dF9yZWNlaXZlZF9yZXN0b3JlOwo+PiAtICAgIHNocy0+Y29tcGxldGlvbl9jYWxsYmFj ayA9IGxpYnhsX194Y19kb21haW5fcmVzdG9yZV9kb25lOwo+PiArICAgIGlmIChkY3MtPnJlc3Rv cmVfcGFyYW1zLmNoZWNrcG9pbnRlZF9zdHJlYW0gPT0KPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQlhMX0NIRUNLUE9JTlRFRF9TVFJFQU1fQ09M TykKPiAKPiBUaGlzIGlzIHZlcnkgc3RyYW5nZSBsaW5lIHdyYXAuCj4gCj4+ICsgICAgICAgIHNo cy0+Y29tcGxldGlvbl9jYWxsYmFjayA9IGxpYnhsX19jb2xvX3Jlc3RvcmVfdGVhcmRvd247Cj4+ ICsgICAgZWxzZQo+PiArICAgICAgICBzaHMtPmNvbXBsZXRpb25fY2FsbGJhY2sgPSBsaWJ4bF9f eGNfZG9tYWluX3Jlc3RvcmVfZG9uZTsKPj4gICAgICBzaHMtPmNhbGxlcl9zdGF0ZSA9IGRjczsK Pj4gICAgICBzaHMtPm5lZWRfcmVzdWx0cyA9IDE7Cj4+ICAKPj4gZGlmZiAtLWdpdCBhL3Rvb2xz L2xpYnhsL2xpYnhsX3N0cmVhbV9yZWFkLmMgYi90b29scy9saWJ4bC9saWJ4bF9zdHJlYW1fcmVh ZC5jCj4+IGluZGV4IDVkOTgwZDkuLmQ2YmQyZmUgMTAwNjQ0Cj4+IC0tLSBhL3Rvb2xzL2xpYnhs L2xpYnhsX3N0cmVhbV9yZWFkLmMKPj4gKysrIGIvdG9vbHMvbGlieGwvbGlieGxfc3RyZWFtX3Jl YWQuYwo+PiBAQCAtODQ2LDYgKzg0NiwxOCBAQCB2b2lkIGxpYnhsX194Y19kb21haW5fcmVzdG9y ZV9kb25lKGxpYnhsX19lZ2MgKmVnYywgdm9pZCAqZGNzX3ZvaWQsCj4+ICAgICAgICovCj4+ICAg ICAgaWYgKGxpYnhsX19zdHJlYW1fcmVhZF9pbnVzZShzdHJlYW0pKSB7Cj4+ICAgICAgICAgIHN3 aXRjaCAoY2hlY2twb2ludGVkX3N0cmVhbSkgewo+PiArICAgICAgICBjYXNlIExJQlhMX0NIRUNL UE9JTlRFRF9TVFJFQU1fQ09MTzoKPj4gKyAgICAgICAgICAgIGlmIChzdHJlYW0tPmNvbXBsZXRp b25fY2FsbGJhY2spIHsKPj4gKyAgICAgICAgICAgICAgICAvKgo+PiArICAgICAgICAgICAgICAg ICAqIHJlc3RvcmUsIGp1c3QgYnVpbGQgdGhlIHNlY29uZGFyeSB2bSwgZG9uJ3QgY2xvc2UKPj4g KyAgICAgICAgICAgICAgICAgKiB0aGUgc3RyZWFtCj4+ICsgICAgICAgICAgICAgICAgICovCj4+ ICsgICAgICAgICAgICAgICAgc3RyZWFtLT5jb21wbGV0aW9uX2NhbGxiYWNrKGVnYywgc3RyZWFt LCAwKTsKPj4gKyAgICAgICAgICAgIH0gZWxzZSB7Cj4+ICsgICAgICAgICAgICAgICAgLyogZmFp bG92ZXIsIGp1c3QgY2xvc2UgdGhlIHN0cmVhbSAqLwo+PiArICAgICAgICAgICAgICAgIHN0cmVh bV9jb21wbGV0ZShlZ2MsIHN0cmVhbSwgMCk7Cj4+ICsgICAgICAgICAgICB9Cj4+ICsgICAgICAg ICAgICBicmVhazsKPj4gICAgICAgICAgY2FzZSBMSUJYTF9DSEVDS1BPSU5URURfU1RSRUFNX1JF TVVTOgo+PiAgICAgICAgICAgICAgLyoKPj4gICAgICAgICAgICAgICAqIEZhaWxvdmVyIGZyb20g cHJpbWFyeS4gRG9tYWluIHN0YXRlIGlzIGN1cnJlbnRseSBhdCBhCj4+IGRpZmYgLS1naXQgYS90 b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwgYi90b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwK Pj4gaW5kZXggNjMyYzAwOS4uMzNmNGE5MCAxMDA2NDQKPj4gLS0tIGEvdG9vbHMvbGlieGwvbGli eGxfdHlwZXMuaWRsCj4+ICsrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3R5cGVzLmlkbAo+PiBAQCAt MjMyLDYgKzIzMiw3IEBAIGxpYnhsX2hkdHlwZSA9IEVudW1lcmF0aW9uKCJoZHR5cGUiLCBbCj4+ ICBsaWJ4bF9jaGVja3BvaW50ZWRfc3RyZWFtID0gRW51bWVyYXRpb24oImNoZWNrcG9pbnRlZF9z dHJlYW0iLCBbCj4+ICAgICAgKDAsICJOT05FIiksCj4+ICAgICAgKDEsICJSRU1VUyIpLAo+PiAr ICAgICgyLCAiQ09MTyIpLAo+PiAgICAgIF0pCj4+ICAKPj4gICMKPj4gLS0gCj4+IDIuNS4wCj4+ Cj4+Cj4+Cj4+Cj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCj4+IFhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKPj4gWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcK Pj4gaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCj4gCj4gCj4gLgo+IAoKCgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxp bmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4t ZGV2ZWwK