From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: Re: [PATCH 3/6] xen/sched: Improvements to the {alloc, free}_domdata() interfaces Date: Mon, 5 Mar 2018 18:20:45 +0000 Message-ID: References: <1519827268-18199-1-git-send-email-andrew.cooper3@citrix.com> <1519827268-18199-4-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1519827268-18199-4-git-send-email-andrew.cooper3@citrix.com> Content-Language: en-GB List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Josh Whitehead , Robert VanVossen List-Id: xen-devel@lists.xenproject.org UGluZyBEb3JuZXJ3b3Jrcy4KCkFueSBjb21tZW50IChvbiB0aGlzIGFuZCB0aGUgbmV4dCBwYXRj aCksIG9yIGFyZSB5b3UgaGFwcHkgZm9yIHRoZXNlCnRyaXZpYWwgY2hhbmdlcyB0byBmYWxsIHVu ZGVyIGdlbmVyYWwgc2NoZWR1bGVyIG1haW50YWluZXJzaGlwPwoKfkFuZHJldwoKT24gMjgvMDIv MTggMTQ6MTQsIEFuZHJldyBDb29wZXIgd3JvdGU6Cj4gVGhlIG1haW4gcHVycG9zZSBvZiB0aGlz IGNoYW5nZSBpcyBmb3IgdGhlIHN1YnNlcXVlbnQgY2xlYW51cCBpdCBlbmFibGVzLCBidXQKPiBp dCBzdGFuZHMgb24gaXRzIG93biBtZXJpdHMuCj4KPiBJbiBwcmluY2lwbGUsIHRoZXNlIGhvb2tz IGFyZSBvcHRpb25hbCwgYnV0IHRoZSBTQ0hFRF9PUCgpIGRlZmF1bHQgYWxpYXNlcyBhCj4gbWVt b3J5IGFsbG9jYXRpb24gZmFpbHVyZSwgd2hpY2ggY2F1c2VzIGFyaW5jNjUzIHRvIHBsYXkgdGhl IGRhbmdlcm91cyBnYW1lIG9mCj4gcGFzc2luZyBpdHMgcHJpdiBwb2ludGVyIGJhY2ssIGFuZCBy ZW1lbWJlcmluZyBub3QgdG8gYWN0dWFsbHkgZnJlZSBpdC4KPgo+IFJlZGVmaW5lIGFsbG9jX2Rv bWRhdGEgdG8gdXNlIEVSUl9QVFIoKSBmb3IgZXJyb3JzLCBOVUxMIGZvciBub3RoaW5nLCBhbmQK PiBub24tTlVMTCBmb3IgYSByZWFsIGFsbG9jYXRpb24sIHdoaWNoIGFsbG93cyB0aGUgaG9vayB0 byBiZWNvbWUgcHJvcGVybHkKPiBvcHRpb25hbC4gIFJlZGVmaW5lIGZyZWVfZG9tZGF0YSB0byBi ZSBpZGVtcG90ZW50Lgo+Cj4gRm9yIGFyaW5jNjUzLCB0aGlzIG1lYW5zIHRoZSBkdW1teSBob29r cyBjYW4gYmUgZHJvcHBlZCBlbnRpcmVseS4gIEZvciB0aGUKPiBvdGhlciBzY2hlZHVsZXJzLCB0 aGlzIG1lYW5zIHJldHVybmluZyBFUlJfUFRSKC1FTk9NRU0pIGluc3RlYWQgb2YgTlVMTCBmb3IK PiBtZW1vcnkgYWxsb2NhdGlvbiBmYWlsdXJlcywgYW5kIG1vZGlmeWluZyB0aGUgZnJlZSBob29r cyB0byBjb3BlIHdpdGggYSBOVUxMCj4gcG9pbnRlci4gIFdoaWxlIG1ha2luZyB0aGUgYWx0ZXJh dGlvbnMsIGRyb3Agc29tZSBzcHVyaW91cyBjYXN0cyB0byB2b2lkICouCj4KPiBJbnRyb2R1Y2Ug YW5kIHVzZSBwcm9wZXIgd3JhcHBlcnMgZm9yIHNjaGVkX3thbGxvYyxmcmVlfV9kb21kYXRhKCku ICBUaGVzZSBhcmUKPiBzdHJpY3RseSBiZXR0ZXIgdGhhbiBTQ0hFRF9PUCgpLCBhcyB0aGUgc291 cmNlIGNvZGUgaXMgdmlzaWJsZSB0bwo+IGdyZXAvY3Njb3BlL3RhZ3MsIHRoZSBnZW5lcmF0ZWQg Y29kZSBpcyBiZXR0ZXIsIGFuZCB0aGVyZSBjYW4gYmUgcHJvcGVyCj4gcGVyLWhvb2sgZGVmYXVs dHMgYW5kIGNoZWNrcy4KPgo+IENhbGxlcnMgb2YgdGhlIGFsbG9jIGhvb2tzIGFyZSBzd2l0Y2hl ZCB0byB1c2luZyBJU19FUlIoKSwgcmF0aGVyIHRoYW4KPiBjaGVja2luZyBmb3IgTlVMTC4KPgo+ IFNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ Cj4gLS0tCj4gQ0M6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAZXUuY2l0cml4LmNvbT4K PiBDQzogRGFyaW8gRmFnZ2lvbGkgPGRmYWdnaW9saUBzdXNlLmNvbT4KPiBDQzogTWVuZyBYdSA8 bWVuZ3h1QGNpcy51cGVubi5lZHU+Cj4gQ0M6IEpvc2ggV2hpdGVoZWFkIDxqb3NoLndoaXRlaGVh ZEBkb3JuZXJ3b3Jrcy5jb20+Cj4gQ0M6IFJvYmVydCBWYW5Wb3NzZW4gPHJvYmVydC52YW52b3Nz ZW5AZG9ybmVyd29ya3MuY29tPgo+IC0tLQo+ICB4ZW4vY29tbW9uL3NjaGVkX2FyaW5jNjUzLmMg fCAzMSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIHhlbi9jb21tb24vc2NoZWRf Y3JlZGl0LmMgICB8ICA4ICsrKystLS0tCj4gIHhlbi9jb21tb24vc2NoZWRfY3JlZGl0Mi5jICB8 IDI0ICsrKysrKysrKysrKystLS0tLS0tLS0tLQo+ICB4ZW4vY29tbW9uL3NjaGVkX251bGwuYyAg ICAgfCAyMiArKysrKysrKysrKysrLS0tLS0tLS0tCj4gIHhlbi9jb21tb24vc2NoZWRfcnQuYyAg ICAgICB8IDIxICsrKysrKysrKysrKystLS0tLS0tLQo+ICB4ZW4vY29tbW9uL3NjaGVkdWxlLmMg ICAgICAgfCAxMiArKysrKystLS0tLS0KPiAgeGVuL2luY2x1ZGUveGVuL3NjaGVkLWlmLmggIHwg MjcgKysrKysrKysrKysrKysrKysrKysrKysrKystCj4gIDcgZmlsZXMgY2hhbmdlZCwgNzUgaW5z ZXJ0aW9ucygrKSwgNzAgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9z Y2hlZF9hcmluYzY1My5jIGIveGVuL2NvbW1vbi9zY2hlZF9hcmluYzY1My5jCj4gaW5kZXggOTgy ODQ1Yi4uMTdlNzY1ZCAxMDA2NDQKPiAtLS0gYS94ZW4vY29tbW9uL3NjaGVkX2FyaW5jNjUzLmMK PiArKysgYi94ZW4vY29tbW9uL3NjaGVkX2FyaW5jNjUzLmMKPiBAQCAtNDU1LDM0ICs0NTUsNiBA QCBhNjUzc2NoZWRfZnJlZV92ZGF0YShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHZvaWQg KnByaXYpCj4gIH0KPiAgCj4gIC8qKgo+IC0gKiBUaGlzIGZ1bmN0aW9uIGFsbG9jYXRlcyBzY2hl ZHVsZXItc3BlY2lmaWMgZGF0YSBmb3IgYSBkb21haW4KPiAtICoKPiAtICogV2UgZG8gbm90IGFj dHVhbGx5IG1ha2UgdXNlIG9mIGFueSBwZXItZG9tYWluIGRhdGEgYnV0IHRoZSBoeXBlcnZpc29y Cj4gLSAqIGV4cGVjdHMgYSBub24tTlVMTCByZXR1cm4gdmFsdWUKPiAtICoKPiAtICogQHBhcmFt IG9wcyAgICAgICBQb2ludGVyIHRvIHRoaXMgaW5zdGFuY2Ugb2YgdGhlIHNjaGVkdWxlciBzdHJ1 Y3R1cmUKPiAtICoKPiAtICogQHJldHVybiAgICAgICAgICBQb2ludGVyIHRvIHRoZSBhbGxvY2F0 ZWQgZGF0YQo+IC0gKi8KPiAtc3RhdGljIHZvaWQgKgo+IC1hNjUzc2NoZWRfYWxsb2NfZG9tZGF0 YShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBkb21haW4gKmRvbSkKPiAtewo+ IC0gICAgLyogcmV0dXJuIGEgbm9uLU5VTEwgdmFsdWUgdG8ga2VlcCBzY2hlZHVsZS5jIGhhcHB5 ICovCj4gLSAgICByZXR1cm4gU0NIRURfUFJJVihvcHMpOwo+IC19Cj4gLQo+IC0vKioKPiAtICog VGhpcyBmdW5jdGlvbiBmcmVlcyBzY2hlZHVsZXItc3BlY2lmaWMgZGF0YSBmb3IgYSBkb21haW4K PiAtICoKPiAtICogQHBhcmFtIG9wcyAgICAgICBQb2ludGVyIHRvIHRoaXMgaW5zdGFuY2Ugb2Yg dGhlIHNjaGVkdWxlciBzdHJ1Y3R1cmUKPiAtICovCj4gLXN0YXRpYyB2b2lkCj4gLWE2NTNzY2hl ZF9mcmVlX2RvbWRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCB2b2lkICpkYXRhKQo+ IC17Cj4gLSAgICAvKiBub3AgKi8KPiAtfQo+IC0KPiAtLyoqCj4gICAqIFhlbiBzY2hlZHVsZXIg Y2FsbGJhY2sgZnVuY3Rpb24gdG8gc2xlZXAgYSBWQ1BVCj4gICAqCj4gICAqIEBwYXJhbSBvcHMg ICAgICAgUG9pbnRlciB0byB0aGlzIGluc3RhbmNlIG9mIHRoZSBzY2hlZHVsZXIgc3RydWN0dXJl Cj4gQEAgLTc0MCw5ICs3MTIsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNjaGVkdWxlciBzY2hl ZF9hcmluYzY1M19kZWYgPSB7Cj4gICAgICAuZnJlZV92ZGF0YSAgICAgPSBhNjUzc2NoZWRfZnJl ZV92ZGF0YSwKPiAgICAgIC5hbGxvY192ZGF0YSAgICA9IGE2NTNzY2hlZF9hbGxvY192ZGF0YSwK PiAgCj4gLSAgICAuZnJlZV9kb21kYXRhICAgPSBhNjUzc2NoZWRfZnJlZV9kb21kYXRhLAo+IC0g ICAgLmFsbG9jX2RvbWRhdGEgID0gYTY1M3NjaGVkX2FsbG9jX2RvbWRhdGEsCj4gLQo+ICAgICAg LmluaXRfZG9tYWluICAgID0gTlVMTCwKPiAgICAgIC5kZXN0cm95X2RvbWFpbiA9IE5VTEwsCj4g IAo+IGRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdC5jIGIveGVuL2NvbW1vbi9z Y2hlZF9jcmVkaXQuYwo+IGluZGV4IGY4MjEyZGIuLmUyMTMzZGYgMTAwNjQ0Cj4gLS0tIGEveGVu L2NvbW1vbi9zY2hlZF9jcmVkaXQuYwo+ICsrKyBiL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0LmMK PiBAQCAtMTI4Miw3ICsxMjgyLDcgQEAgY3NjaGVkX2FsbG9jX2RvbWRhdGEoY29uc3Qgc3RydWN0 IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgZG9tYWluICpkb20pCj4gIAo+ICAgICAgc2RvbSA9IHh6 YWxsb2Moc3RydWN0IGNzY2hlZF9kb20pOwo+ICAgICAgaWYgKCBzZG9tID09IE5VTEwgKQo+IC0g ICAgICAgIHJldHVybiBOVUxMOwo+ICsgICAgICAgIHJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwo+ ICAKPiAgICAgIC8qIEluaXRpYWxpemUgY3JlZGl0IGFuZCB3ZWlnaHQgKi8KPiAgICAgIElOSVRf TElTVF9IRUFEKCZzZG9tLT5hY3RpdmVfdmNwdSk7Cj4gQEAgLTEyOTAsNyArMTI5MCw3IEBAIGNz Y2hlZF9hbGxvY19kb21kYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IGRv bWFpbiAqZG9tKQo+ICAgICAgc2RvbS0+ZG9tID0gZG9tOwo+ICAgICAgc2RvbS0+d2VpZ2h0ID0g Q1NDSEVEX0RFRkFVTFRfV0VJR0hUOwo+ICAKPiAtICAgIHJldHVybiAodm9pZCAqKXNkb207Cj4g KyAgICByZXR1cm4gc2RvbTsKPiAgfQo+ICAKPiAgc3RhdGljIGludAo+IEBAIC0xMzAyLDggKzEz MDIsOCBAQCBjc2NoZWRfZG9tX2luaXQoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1 Y3QgZG9tYWluICpkb20pCj4gICAgICAgICAgcmV0dXJuIDA7Cj4gIAo+ICAgICAgc2RvbSA9IGNz Y2hlZF9hbGxvY19kb21kYXRhKG9wcywgZG9tKTsKPiAtICAgIGlmICggc2RvbSA9PSBOVUxMICkK PiAtICAgICAgICByZXR1cm4gLUVOT01FTTsKPiArICAgIGlmICggSVNfRVJSKHNkb20pICkKPiAr ICAgICAgICByZXR1cm4gUFRSX0VSUihzZG9tKTsKPiAgCj4gICAgICBkb20tPnNjaGVkX3ByaXYg PSBzZG9tOwo+ICAKPiBkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQyLmMgYi94 ZW4vY29tbW9uL3NjaGVkX2NyZWRpdDIuYwo+IGluZGV4IGIwOTRiM2MuLjI5YTI0ZDYgMTAwNjQ0 Cj4gLS0tIGEveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQyLmMKPiArKysgYi94ZW4vY29tbW9uL3Nj aGVkX2NyZWRpdDIuYwo+IEBAIC0zMDEyLDcgKzMwMTIsNyBAQCBjc2NoZWQyX2FsbG9jX2RvbWRh dGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgZG9tYWluICpkb20pCj4gIAo+ ICAgICAgc2RvbSA9IHh6YWxsb2Moc3RydWN0IGNzY2hlZDJfZG9tKTsKPiAgICAgIGlmICggc2Rv bSA9PSBOVUxMICkKPiAtICAgICAgICByZXR1cm4gTlVMTDsKPiArICAgICAgICByZXR1cm4gRVJS X1BUUigtRU5PTUVNKTsKPiAgCj4gICAgICAvKiBJbml0aWFsaXplIGNyZWRpdCwgY2FwIGFuZCB3 ZWlnaHQgKi8KPiAgICAgIElOSVRfTElTVF9IRUFEKCZzZG9tLT5zZG9tX2VsZW0pOwo+IEBAIC0z MDMyLDcgKzMwMzIsNyBAQCBjc2NoZWQyX2FsbG9jX2RvbWRhdGEoY29uc3Qgc3RydWN0IHNjaGVk dWxlciAqb3BzLCBzdHJ1Y3QgZG9tYWluICpkb20pCj4gIAo+ICAgICAgd3JpdGVfdW5sb2NrX2ly cXJlc3RvcmUoJnBydi0+bG9jaywgZmxhZ3MpOwo+ICAKPiAtICAgIHJldHVybiAodm9pZCAqKXNk b207Cj4gKyAgICByZXR1cm4gc2RvbTsKPiAgfQo+ICAKPiAgc3RhdGljIGludAo+IEBAIC0zMDQ0 LDggKzMwNDQsOCBAQCBjc2NoZWQyX2RvbV9pbml0KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9w cywgc3RydWN0IGRvbWFpbiAqZG9tKQo+ICAgICAgICAgIHJldHVybiAwOwo+ICAKPiAgICAgIHNk b20gPSBjc2NoZWQyX2FsbG9jX2RvbWRhdGEob3BzLCBkb20pOwo+IC0gICAgaWYgKCBzZG9tID09 IE5VTEwgKQo+IC0gICAgICAgIHJldHVybiAtRU5PTUVNOwo+ICsgICAgaWYgKCBJU19FUlIoc2Rv bSkgKQo+ICsgICAgICAgIHJldHVybiBQVFJfRVJSKHNkb20pOwo+ICAKPiAgICAgIGRvbS0+c2No ZWRfcHJpdiA9IHNkb207Cj4gIAo+IEBAIC0zMDU1LDE5ICszMDU1LDIxIEBAIGNzY2hlZDJfZG9t X2luaXQoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgZG9tYWluICpkb20pCj4g IHN0YXRpYyB2b2lkCj4gIGNzY2hlZDJfZnJlZV9kb21kYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVs ZXIgKm9wcywgdm9pZCAqZGF0YSkKPiAgewo+IC0gICAgdW5zaWduZWQgbG9uZyBmbGFnczsKPiAg ICAgIHN0cnVjdCBjc2NoZWQyX2RvbSAqc2RvbSA9IGRhdGE7Cj4gICAgICBzdHJ1Y3QgY3NjaGVk Ml9wcml2YXRlICpwcnYgPSBjc2NoZWQyX3ByaXYob3BzKTsKPiAgCj4gLSAgICBraWxsX3RpbWVy KCZzZG9tLT5yZXBsX3RpbWVyKTsKPiAtCj4gLSAgICB3cml0ZV9sb2NrX2lycXNhdmUoJnBydi0+ bG9jaywgZmxhZ3MpOwo+ICsgICAgaWYgKCBzZG9tICkKPiArICAgIHsKPiArICAgICAgICB1bnNp Z25lZCBsb25nIGZsYWdzOwo+ICAKPiAtICAgIGxpc3RfZGVsX2luaXQoJnNkb20tPnNkb21fZWxl bSk7Cj4gKyAgICAgICAga2lsbF90aW1lcigmc2RvbS0+cmVwbF90aW1lcik7Cj4gIAo+IC0gICAg d3JpdGVfdW5sb2NrX2lycXJlc3RvcmUoJnBydi0+bG9jaywgZmxhZ3MpOwo+ICsgICAgICAgIHdy aXRlX2xvY2tfaXJxc2F2ZSgmcHJ2LT5sb2NrLCBmbGFncyk7Cj4gKyAgICAgICAgbGlzdF9kZWxf aW5pdCgmc2RvbS0+c2RvbV9lbGVtKTsKPiArICAgICAgICB3cml0ZV91bmxvY2tfaXJxcmVzdG9y ZSgmcHJ2LT5sb2NrLCBmbGFncyk7Cj4gIAo+IC0gICAgeGZyZWUoZGF0YSk7Cj4gKyAgICAgICAg eGZyZWUoc2RvbSk7Cj4gKyAgICB9Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkCj4gZGlmZiAtLWdp dCBhL3hlbi9jb21tb24vc2NoZWRfbnVsbC5jIGIveGVuL2NvbW1vbi9zY2hlZF9udWxsLmMKPiBp bmRleCBiNGEyNGJhLi40ZGQ0MDViIDEwMDY0NAo+IC0tLSBhL3hlbi9jb21tb24vc2NoZWRfbnVs bC5jCj4gKysrIGIveGVuL2NvbW1vbi9zY2hlZF9udWxsLmMKPiBAQCAtMjMxLDcgKzIzMSw3IEBA IHN0YXRpYyB2b2lkICogbnVsbF9hbGxvY19kb21kYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIg Km9wcywKPiAgCj4gICAgICBuZG9tID0geHphbGxvYyhzdHJ1Y3QgbnVsbF9kb20pOwo+ICAgICAg aWYgKCBuZG9tID09IE5VTEwgKQo+IC0gICAgICAgIHJldHVybiBOVUxMOwo+ICsgICAgICAgIHJl dHVybiBFUlJfUFRSKC1FTk9NRU0pOwo+ICAKPiAgICAgIG5kb20tPmRvbSA9IGQ7Cj4gIAo+IEBA IC0yMzksMjAgKzIzOSwyNCBAQCBzdGF0aWMgdm9pZCAqIG51bGxfYWxsb2NfZG9tZGF0YShjb25z dCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsCj4gICAgICBsaXN0X2FkZF90YWlsKCZuZG9tLT5uZG9t X2VsZW0sICZudWxsX3ByaXYob3BzKS0+bmRvbSk7Cj4gICAgICBzcGluX3VubG9ja19pcnFyZXN0 b3JlKCZwcnYtPmxvY2ssIGZsYWdzKTsKPiAgCj4gLSAgICByZXR1cm4gKHZvaWQqKW5kb207Cj4g KyAgICByZXR1cm4gbmRvbTsKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQgbnVsbF9mcmVlX2RvbWRh dGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCB2b2lkICpkYXRhKQo+ICB7Cj4gLSAgICB1 bnNpZ25lZCBsb25nIGZsYWdzOwo+ICAgICAgc3RydWN0IG51bGxfZG9tICpuZG9tID0gZGF0YTsK PiAgICAgIHN0cnVjdCBudWxsX3ByaXZhdGUgKnBydiA9IG51bGxfcHJpdihvcHMpOwo+ICAKPiAt ICAgIHNwaW5fbG9ja19pcnFzYXZlKCZwcnYtPmxvY2ssIGZsYWdzKTsKPiAtICAgIGxpc3RfZGVs X2luaXQoJm5kb20tPm5kb21fZWxlbSk7Cj4gLSAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZw cnYtPmxvY2ssIGZsYWdzKTsKPiArICAgIGlmICggbmRvbSApCj4gKyAgICB7Cj4gKyAgICAgICAg dW5zaWduZWQgbG9uZyBmbGFnczsKPiArCj4gKyAgICAgICAgc3Bpbl9sb2NrX2lycXNhdmUoJnBy di0+bG9jaywgZmxhZ3MpOwo+ICsgICAgICAgIGxpc3RfZGVsX2luaXQoJm5kb20tPm5kb21fZWxl bSk7Cj4gKyAgICAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJ2LT5sb2NrLCBmbGFncyk7 Cj4gIAo+IC0gICAgeGZyZWUoZGF0YSk7Cj4gKyAgICAgICAgeGZyZWUobmRvbSk7Cj4gKyAgICB9 Cj4gIH0KPiAgCj4gIHN0YXRpYyBpbnQgbnVsbF9kb21faW5pdChjb25zdCBzdHJ1Y3Qgc2NoZWR1 bGVyICpvcHMsIHN0cnVjdCBkb21haW4gKmQpCj4gQEAgLTI2Myw4ICsyNjcsOCBAQCBzdGF0aWMg aW50IG51bGxfZG9tX2luaXQoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgZG9t YWluICpkKQo+ICAgICAgICAgIHJldHVybiAwOwo+ICAKPiAgICAgIG5kb20gPSBudWxsX2FsbG9j X2RvbWRhdGEob3BzLCBkKTsKPiAtICAgIGlmICggbmRvbSA9PSBOVUxMICkKPiAtICAgICAgICBy ZXR1cm4gLUVOT01FTTsKPiArICAgIGlmICggSVNfRVJSKG5kb20pICkKPiArICAgICAgICByZXR1 cm4gUFRSX0VSUihuZG9tKTsKPiAgCj4gICAgICBkLT5zY2hlZF9wcml2ID0gbmRvbTsKPiAgCj4g ZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vc2NoZWRfcnQuYyBiL3hlbi9jb21tb24vc2NoZWRfcnQu Ywo+IGluZGV4IGEyMDI4MDIuLmU0ZmY1YzEgMTAwNjQ0Cj4gLS0tIGEveGVuL2NvbW1vbi9zY2hl ZF9ydC5jCj4gKysrIGIveGVuL2NvbW1vbi9zY2hlZF9ydC5jCj4gQEAgLTgyMCw3ICs4MjAsNyBA QCBydF9hbGxvY19kb21kYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IGRv bWFpbiAqZG9tKQo+ICAKPiAgICAgIHNkb20gPSB4emFsbG9jKHN0cnVjdCBydF9kb20pOwo+ICAg ICAgaWYgKCBzZG9tID09IE5VTEwgKQo+IC0gICAgICAgIHJldHVybiBOVUxMOwo+ICsgICAgICAg IHJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwo+ICAKPiAgICAgIElOSVRfTElTVF9IRUFEKCZzZG9t LT5zZG9tX2VsZW0pOwo+ICAgICAgc2RvbS0+ZG9tID0gZG9tOwo+IEBAIC04MzYsMTQgKzgzNiwx OSBAQCBydF9hbGxvY19kb21kYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0 IGRvbWFpbiAqZG9tKQo+ICBzdGF0aWMgdm9pZAo+ICBydF9mcmVlX2RvbWRhdGEoY29uc3Qgc3Ry dWN0IHNjaGVkdWxlciAqb3BzLCB2b2lkICpkYXRhKQo+ICB7Cj4gLSAgICB1bnNpZ25lZCBsb25n IGZsYWdzOwo+ICAgICAgc3RydWN0IHJ0X2RvbSAqc2RvbSA9IGRhdGE7Cj4gICAgICBzdHJ1Y3Qg cnRfcHJpdmF0ZSAqcHJ2ID0gcnRfcHJpdihvcHMpOwo+ICAKPiAtICAgIHNwaW5fbG9ja19pcnFz YXZlKCZwcnYtPmxvY2ssIGZsYWdzKTsKPiAtICAgIGxpc3RfZGVsX2luaXQoJnNkb20tPnNkb21f ZWxlbSk7Cj4gLSAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcnYtPmxvY2ssIGZsYWdzKTsK PiAtICAgIHhmcmVlKGRhdGEpOwo+ICsgICAgaWYgKCBzZG9tICkKPiArICAgIHsKPiArICAgICAg ICB1bnNpZ25lZCBsb25nIGZsYWdzOwo+ICsKPiArICAgICAgICBzcGluX2xvY2tfaXJxc2F2ZSgm cHJ2LT5sb2NrLCBmbGFncyk7Cj4gKyAgICAgICAgbGlzdF9kZWxfaW5pdCgmc2RvbS0+c2RvbV9l bGVtKTsKPiArICAgICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcnYtPmxvY2ssIGZsYWdz KTsKPiArCj4gKyAgICAgICAgeGZyZWUoc2RvbSk7Cj4gKyAgICB9Cj4gIH0KPiAgCj4gIHN0YXRp YyBpbnQKPiBAQCAtODU2LDggKzg2MSw4IEBAIHJ0X2RvbV9pbml0KGNvbnN0IHN0cnVjdCBzY2hl ZHVsZXIgKm9wcywgc3RydWN0IGRvbWFpbiAqZG9tKQo+ICAgICAgICAgIHJldHVybiAwOwo+ICAK PiAgICAgIHNkb20gPSBydF9hbGxvY19kb21kYXRhKG9wcywgZG9tKTsKPiAtICAgIGlmICggc2Rv bSA9PSBOVUxMICkKPiAtICAgICAgICByZXR1cm4gLUVOT01FTTsKPiArICAgIGlmICggSVNfRVJS KHNkb20pICkKPiArICAgICAgICByZXR1cm4gUFRSX0VSUihzZG9tKTsKPiAgCj4gICAgICBkb20t PnNjaGVkX3ByaXYgPSBzZG9tOwo+ICAKPiBkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9zY2hlZHVs ZS5jIGIveGVuL2NvbW1vbi9zY2hlZHVsZS5jCj4gaW5kZXggYjc4ODQyNi4uMDhhMzFiNiAxMDA2 NDQKPiAtLS0gYS94ZW4vY29tbW9uL3NjaGVkdWxlLmMKPiArKysgYi94ZW4vY29tbW9uL3NjaGVk dWxlLmMKPiBAQCAtMzE4LDE0ICszMTgsMTQgQEAgaW50IHNjaGVkX21vdmVfZG9tYWluKHN0cnVj dCBkb21haW4gKmQsIHN0cnVjdCBjcHVwb29sICpjKQo+ICAgICAgICAgICAgICByZXR1cm4gLUVC VVNZOwo+ICAgICAgfQo+ICAKPiAtICAgIGRvbWRhdGEgPSBTQ0hFRF9PUChjLT5zY2hlZCwgYWxs b2NfZG9tZGF0YSwgZCk7Cj4gLSAgICBpZiAoIGRvbWRhdGEgPT0gTlVMTCApCj4gLSAgICAgICAg cmV0dXJuIC1FTk9NRU07Cj4gKyAgICBkb21kYXRhID0gc2NoZWRfYWxsb2NfZG9tZGF0YShjLT5z Y2hlZCwgZCk7Cj4gKyAgICBpZiAoIElTX0VSUihkb21kYXRhKSApCj4gKyAgICAgICAgcmV0dXJu IFBUUl9FUlIoZG9tZGF0YSk7Cj4gIAo+ICAgICAgdmNwdV9wcml2ID0geHphbGxvY19hcnJheSh2 b2lkICosIGQtPm1heF92Y3B1cyk7Cj4gICAgICBpZiAoIHZjcHVfcHJpdiA9PSBOVUxMICkKPiAg ICAgIHsKPiAtICAgICAgICBTQ0hFRF9PUChjLT5zY2hlZCwgZnJlZV9kb21kYXRhLCBkb21kYXRh KTsKPiArICAgICAgICBzY2hlZF9mcmVlX2RvbWRhdGEoYy0+c2NoZWQsIGRvbWRhdGEpOwo+ICAg ICAgICAgIHJldHVybiAtRU5PTUVNOwo+ICAgICAgfQo+ICAKPiBAQCAtMzM3LDcgKzMzNyw3IEBA IGludCBzY2hlZF9tb3ZlX2RvbWFpbihzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgY3B1cG9vbCAq YykKPiAgICAgICAgICAgICAgZm9yX2VhY2hfdmNwdSAoIGQsIHYgKQo+ICAgICAgICAgICAgICAg ICAgeGZyZWUodmNwdV9wcml2W3YtPnZjcHVfaWRdKTsKPiAgICAgICAgICAgICAgeGZyZWUodmNw dV9wcml2KTsKPiAtICAgICAgICAgICAgU0NIRURfT1AoYy0+c2NoZWQsIGZyZWVfZG9tZGF0YSwg ZG9tZGF0YSk7Cj4gKyAgICAgICAgICAgIHNjaGVkX2ZyZWVfZG9tZGF0YShjLT5zY2hlZCwgZG9t ZGF0YSk7Cj4gICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOwo+ICAgICAgICAgIH0KPiAgICAg IH0KPiBAQCAtMzkzLDcgKzM5Myw3IEBAIGludCBzY2hlZF9tb3ZlX2RvbWFpbihzdHJ1Y3QgZG9t YWluICpkLCBzdHJ1Y3QgY3B1cG9vbCAqYykKPiAgCj4gICAgICBkb21haW5fdW5wYXVzZShkKTsK PiAgCj4gLSAgICBTQ0hFRF9PUChvbGRfb3BzLCBmcmVlX2RvbWRhdGEsIG9sZF9kb21kYXRhKTsK PiArICAgIHNjaGVkX2ZyZWVfZG9tZGF0YShvbGRfb3BzLCBvbGRfZG9tZGF0YSk7Cj4gIAo+ICAg ICAgeGZyZWUodmNwdV9wcml2KTsKPiAgCj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9z Y2hlZC1pZi5oIGIveGVuL2luY2x1ZGUveGVuL3NjaGVkLWlmLmgKPiBpbmRleCBjNGE0OTM1Li41 NmU3ZDBjIDEwMDY0NAo+IC0tLSBhL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC1pZi5oCj4gKysrIGIv eGVuL2luY2x1ZGUveGVuL3NjaGVkLWlmLmgKPiBAQCAtMTQ2LDggKzE0NiwxMSBAQCBzdHJ1Y3Qg c2NoZWR1bGVyIHsKPiAgICAgIHZvaWQgKiAgICAgICAoKmFsbG9jX3BkYXRhKSAgICAoY29uc3Qg c3RydWN0IHNjaGVkdWxlciAqLCBpbnQpOwo+ICAgICAgdm9pZCAgICAgICAgICgqaW5pdF9wZGF0 YSkgICAgIChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICosIHZvaWQgKiwgaW50KTsKPiAgICAgIHZv aWQgICAgICAgICAoKmRlaW5pdF9wZGF0YSkgICAoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqLCB2 b2lkICosIGludCk7Cj4gLSAgICB2b2lkICAgICAgICAgKCpmcmVlX2RvbWRhdGEpICAgKGNvbnN0 IHN0cnVjdCBzY2hlZHVsZXIgKiwgdm9pZCAqKTsKPiArCj4gKyAgICAvKiBSZXR1cm5zIEVSUl9Q VFIoLWVycikgZm9yIGVycm9yLCBOVUxMIGZvciAnbm90aGluZyBuZWVkZWQnLiAqLwo+ICAgICAg dm9pZCAqICAgICAgICgqYWxsb2NfZG9tZGF0YSkgIChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICos IHN0cnVjdCBkb21haW4gKik7Cj4gKyAgICAvKiBJZGVtcG90ZW50LiAqLwo+ICsgICAgdm9pZCAg ICAgICAgICgqZnJlZV9kb21kYXRhKSAgIChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICosIHZvaWQg Kik7Cj4gIAo+ICAgICAgdm9pZCAgICAgICAgICgqc3dpdGNoX3NjaGVkKSAgIChzdHJ1Y3Qgc2No ZWR1bGVyICosIHVuc2lnbmVkIGludCwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdm9pZCAqLCB2b2lkICopOwo+IEBAIC0xODEsNiArMTg0LDI4IEBAIHN0cnVjdCBzY2hl ZHVsZXIgewo+ICAgICAgdm9pZCAgICAgICAgICgqdGlja19yZXN1bWUpICAgICAoY29uc3Qgc3Ry dWN0IHNjaGVkdWxlciAqLCB1bnNpZ25lZCBpbnQpOwo+ICB9Owo+ICAKPiArc3RhdGljIGlubGlu ZSB2b2lkICpzY2hlZF9hbGxvY19kb21kYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKnMsCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZG9tYWluICpk KQo+ICt7Cj4gKyAgICBpZiAoIHMtPmFsbG9jX2RvbWRhdGEgKQo+ICsgICAgICAgIHJldHVybiBz LT5hbGxvY19kb21kYXRhKHMsIGQpOwo+ICsgICAgZWxzZQo+ICsgICAgICAgIHJldHVybiBOVUxM Owo+ICt9Cj4gKwo+ICtzdGF0aWMgaW5saW5lIHZvaWQgc2NoZWRfZnJlZV9kb21kYXRhKGNvbnN0 IHN0cnVjdCBzY2hlZHVsZXIgKnMsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdm9pZCAqZGF0YSkKPiArewo+ICsgICAgaWYgKCBzLT5mcmVlX2RvbWRhdGEgKQo+ICsg ICAgICAgIHMtPmZyZWVfZG9tZGF0YShzLCBkYXRhKTsKPiArICAgIGVsc2UKPiArICAgICAgICAv Kgo+ICsgICAgICAgICAqIENoZWNrIHRoYXQgaWYgdGhlcmUgaXNuJ3QgYSBmcmVlX2RvbWRhdGEg aG9vaywgd2UgaGF2ZW4ndCBnb3QgYW55Cj4gKyAgICAgICAgICogZGF0YSB3ZSdyZSBleHBlY3Rl ZCB0byBkZWFsIHdpdGguCj4gKyAgICAgICAgICovCj4gKyAgICAgICAgQVNTRVJUKCFkYXRhKTsK PiArfQo+ICsKPiAgI2RlZmluZSBSRUdJU1RFUl9TQ0hFRFVMRVIoeCkgc3RhdGljIGNvbnN0IHN0 cnVjdCBzY2hlZHVsZXIgKngjI19lbnRyeSBcCj4gICAgX191c2VkX3NlY3Rpb24oIi5kYXRhLnNj aGVkdWxlcnMiKSA9ICZ4Owo+ICAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5w cm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8v eGVuLWRldmVs