From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: Re: [PATCH v2 01/11] xen: sched: make implementing .alloc_pdata optional Date: Thu, 7 Apr 2016 12:24:49 +0100 Message-ID: <57064381.2000306@citrix.com> References: <20160406170023.25877.15622.stgit@Solace.fritz.box> <20160406172242.25877.3097.stgit@Solace.fritz.box> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ao844-0005tK-1M for xen-devel@lists.xenproject.org; Thu, 07 Apr 2016 11:25:32 +0000 In-Reply-To: <20160406172242.25877.3097.stgit@Solace.fritz.box> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Dario Faggioli , xen-devel@lists.xenproject.org Cc: Juergen Gross , George Dunlap , Robert VanVossen , Josh Whitehead , Meng Xu , Jan Beulich List-Id: xen-devel@lists.xenproject.org T24gMDYvMDQvMTYgMTg6MjIsIERhcmlvIEZhZ2dpb2xpIHdyb3RlOgo+IFRoZSAuYWxsb2NfcGRh dGEgc2NoZWR1bGVyIGhvb2sgbXVzdCwgYmVmb3JlIHRoaXMgY2hhbmdlLAo+IGJlIGltcGxlbWVu dGVkIGJ5IGFsbCBzY2hlZHVsZXJzIC0tZXZlbiB0aG9zZSBvbmVzIHRoYXQKPiBkb24ndCBuZWVk IHRvIGFsbG9jYXRlIGFueXRoaW5nLgo+IAo+IE1ha2UgaXQgcG9zc2libGUgdG8ganVzdCB1c2Ug dGhlIFNDSEVEX09QKCksIGxpa2UgZm9yCj4gdGhlIG90aGVyIGhvb2tzLCBieSB1c2luZyBFUlJf UFRSKCkgYW5kIElTX0VSUigpIGZvcgo+IGVycm9yIHJlcG9ydGluZy4gVGhpczoKPiAgLSBtYWtl cyBOVUxMIGEgdmFyaWFudCBvZiBzdWNjZXNzOwo+ICAtIGFsbG93cyBmb3IgZXJyb3JzIG90aGVy IHRoYW4gRU5PTUVNIHRvIGJlIHByb3Blcmx5Cj4gICAgY29tbXVuaWNhdGVkIChpZiBldmVyIG5l Y2Vzc2FyeSkuCj4gCj4gVGhpcywgaW4gdHVybiwgbWVhbnMgdGhhdCBzY2hlZHVsZXJzIG5vdCBu ZWVkaW5nIHRvCj4gYWxsb2NhdGUgYW55IHBlci1wQ1BVIGRhdGEsIGNhbiBhdm9pZCBpbXBsZW1l bnRpbmcgdGhlCj4gaG9vay4gSW4gZmFjdCwgdGhlIGFydGlmaWNpYWwgaW1wbGVtZW50YXRpb24g b2YKPiAuYWxsb2NfcGRhdGEgaW4gdGhlIEFSSU5DNjUzIGlzIHJlbW92ZWQgKGFuZCwgd2hpbGUg dGhlcmUsCj4gbnVrZSAuZnJlZV9wZGF0YSB0b28sIGFzIGl0IGlzIGVxdWFsbHkgdXNlbGVzcyku Cj4gCj4gU2lnbmVkLW9mZi1ieTogRGFyaW8gRmFnZ2lvbGkgPGRhcmlvLmZhZ2dpb2xpQGNpdHJp eC5jb20+Cj4gUmV2aWV3ZWQtYnk6IE1lbmcgWHUgPG1lbmd4dUBjaXMudXBlbm4uZWR1PgoKQWNr ZWQtYnk6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAY2l0cml4LmNvbT4KCj4gLS0tCj4g Q2M6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAZXUuY2l0cml4LmNvbT4KPiBDYzogUm9i ZXJ0IFZhblZvc3NlbiA8cm9iZXJ0LnZhbnZvc3NlbkBkb3JuZXJ3b3Jrcy5jb20+Cj4gQ2M6IEpv c2ggV2hpdGVoZWFkIDxqb3NoLndoaXRlaGVhZEBkb3JuZXJ3b3Jrcy5jb20+Cj4gQ2M6IEphbiBC ZXVsaWNoIDxKQmV1bGljaEBzdXNlLmNvbT4KPiBDYzogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1 c2UuY29tPgo+IC0tLQo+IENoYW5nZXMgZnJvbSB2MToKPiAgKiBvbmx5IHVwZGF0ZSBzZC0+c2No ZWRfcHJpdiBpZiBhbGxvY19wZGF0YSBkb2VzIG5vdCByZXR1cm4KPiAgICBJU19FUlIsIHNvIHRo YXQgeGZyZWUoKSBjYW4gYWx3YXlzIGJlIHNhZmVseSBjYWxsZWQgb24KPiAgICBzZC0+c2NoZWRf cHJpdiBpdHNlbGYsIGFzIHJlcXVlc3RlZCBkdXJpbmcgcmV2aWV3Owo+ICAqIHhlbi9lcnIuaCBp bmNsdWRlZCBpbiAuYyBmaWxlcyB0aGF0IGFjdHVhbGx5IG5lZWQgaXQsCj4gICAgaW5zdGVhZCB0 aGFuIGluIHNjaGVkLWlmLmguCj4gLS0tCj4gIHhlbi9jb21tb24vc2NoZWRfYXJpbmM2NTMuYyB8 ICAgMzEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICB4ZW4vY29tbW9uL3NjaGVk X2NyZWRpdC5jICAgfCAgICA1ICsrKy0tCj4gIHhlbi9jb21tb24vc2NoZWRfY3JlZGl0Mi5jICB8 ICAgIDIgKy0KPiAgeGVuL2NvbW1vbi9zY2hlZF9ydC5jICAgICAgIHwgICAgOCArKysrLS0tLQo+ ICB4ZW4vY29tbW9uL3NjaGVkdWxlLmMgICAgICAgfCAgIDI3ICsrKysrKysrKysrKysrKysrLS0t LS0tLS0tLQo+ICA1IGZpbGVzIGNoYW5nZWQsIDI1IGluc2VydGlvbnMoKyksIDQ4IGRlbGV0aW9u cygtKQo+IAo+IGRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3NjaGVkX2FyaW5jNjUzLmMgYi94ZW4v Y29tbW9uL3NjaGVkX2FyaW5jNjUzLmMKPiBpbmRleCA4YTExYTJmLi5iNzlmY2RmIDEwMDY0NAo+ IC0tLSBhL3hlbi9jb21tb24vc2NoZWRfYXJpbmM2NTMuYwo+ICsrKyBiL3hlbi9jb21tb24vc2No ZWRfYXJpbmM2NTMuYwo+IEBAIC00NTYsMzQgKzQ1Niw2IEBAIGE2NTNzY2hlZF9mcmVlX3ZkYXRh KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgdm9pZCAqcHJpdikKPiAgfQo+ICAKPiAgLyoq Cj4gLSAqIFRoaXMgZnVuY3Rpb24gYWxsb2NhdGVzIHNjaGVkdWxlci1zcGVjaWZpYyBkYXRhIGZv ciBhIHBoeXNpY2FsIENQVQo+IC0gKgo+IC0gKiBXZSBkbyBub3QgYWN0dWFsbHkgbWFrZSB1c2Ug b2YgYW55IHBlci1DUFUgZGF0YSBidXQgdGhlIGh5cGVydmlzb3IgZXhwZWN0cwo+IC0gKiBhIG5v bi1OVUxMIHJldHVybiB2YWx1ZQo+IC0gKgo+IC0gKiBAcGFyYW0gb3BzICAgICAgIFBvaW50ZXIg dG8gdGhpcyBpbnN0YW5jZSBvZiB0aGUgc2NoZWR1bGVyIHN0cnVjdHVyZQo+IC0gKgo+IC0gKiBA cmV0dXJuICAgICAgICAgIFBvaW50ZXIgdG8gdGhlIGFsbG9jYXRlZCBkYXRhCj4gLSAqLwo+IC1z dGF0aWMgdm9pZCAqCj4gLWE2NTNzY2hlZF9hbGxvY19wZGF0YShjb25zdCBzdHJ1Y3Qgc2NoZWR1 bGVyICpvcHMsIGludCBjcHUpCj4gLXsKPiAtICAgIC8qIHJldHVybiBhIG5vbi1OVUxMIHZhbHVl IHRvIGtlZXAgc2NoZWR1bGUuYyBoYXBweSAqLwo+IC0gICAgcmV0dXJuIFNDSEVEX1BSSVYob3Bz KTsKPiAtfQo+IC0KPiAtLyoqCj4gLSAqIFRoaXMgZnVuY3Rpb24gZnJlZXMgc2NoZWR1bGVyLXNw ZWNpZmljIGRhdGEgZm9yIGEgcGh5c2ljYWwgQ1BVCj4gLSAqCj4gLSAqIEBwYXJhbSBvcHMgICAg ICAgUG9pbnRlciB0byB0aGlzIGluc3RhbmNlIG9mIHRoZSBzY2hlZHVsZXIgc3RydWN0dXJlCj4g LSAqLwo+IC1zdGF0aWMgdm9pZAo+IC1hNjUzc2NoZWRfZnJlZV9wZGF0YShjb25zdCBzdHJ1Y3Qg c2NoZWR1bGVyICpvcHMsIHZvaWQgKnBjcHUsIGludCBjcHUpCj4gLXsKPiAtICAgIC8qIG5vcCAq Lwo+IC19Cj4gLQo+IC0vKioKPiAgICogVGhpcyBmdW5jdGlvbiBhbGxvY2F0ZXMgc2NoZWR1bGVy LXNwZWNpZmljIGRhdGEgZm9yIGEgZG9tYWluCj4gICAqCj4gICAqIFdlIGRvIG5vdCBhY3R1YWxs eSBtYWtlIHVzZSBvZiBhbnkgcGVyLWRvbWFpbiBkYXRhIGJ1dCB0aGUgaHlwZXJ2aXNvcgo+IEBA IC03MzcsOSArNzA5LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgc2NoZWRfYXJp bmM2NTNfZGVmID0gewo+ICAgICAgLmZyZWVfdmRhdGEgICAgID0gYTY1M3NjaGVkX2ZyZWVfdmRh dGEsCj4gICAgICAuYWxsb2NfdmRhdGEgICAgPSBhNjUzc2NoZWRfYWxsb2NfdmRhdGEsCj4gIAo+ IC0gICAgLmZyZWVfcGRhdGEgICAgID0gYTY1M3NjaGVkX2ZyZWVfcGRhdGEsCj4gLSAgICAuYWxs b2NfcGRhdGEgICAgPSBhNjUzc2NoZWRfYWxsb2NfcGRhdGEsCj4gLQo+ICAgICAgLmZyZWVfZG9t ZGF0YSAgID0gYTY1M3NjaGVkX2ZyZWVfZG9tZGF0YSwKPiAgICAgIC5hbGxvY19kb21kYXRhICA9 IGE2NTNzY2hlZF9hbGxvY19kb21kYXRhLAo+ICAKPiBkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9z Y2hlZF9jcmVkaXQuYyBiL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0LmMKPiBpbmRleCA0YzQ5Mjdm Li42M2E0YTYzIDEwMDY0NAo+IC0tLSBhL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0LmMKPiArKysg Yi94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdC5jCj4gQEAgLTIzLDYgKzIzLDcgQEAKPiAgI2luY2x1 ZGUgPHhlbi9lcnJuby5oPgo+ICAjaW5jbHVkZSA8eGVuL2tleWhhbmRsZXIuaD4KPiAgI2luY2x1 ZGUgPHhlbi90cmFjZS5oPgo+ICsjaW5jbHVkZSA8eGVuL2Vyci5oPgo+ICAKPiAgCj4gIC8qCj4g QEAgLTUzMiwxMiArNTMzLDEyIEBAIGNzY2hlZF9hbGxvY19wZGF0YShjb25zdCBzdHJ1Y3Qgc2No ZWR1bGVyICpvcHMsIGludCBjcHUpCj4gICAgICAvKiBBbGxvY2F0ZSBwZXItUENQVSBpbmZvICov Cj4gICAgICBzcGMgPSB4emFsbG9jKHN0cnVjdCBjc2NoZWRfcGNwdSk7Cj4gICAgICBpZiAoIHNw YyA9PSBOVUxMICkKPiAtICAgICAgICByZXR1cm4gTlVMTDsKPiArICAgICAgICByZXR1cm4gRVJS X1BUUigtRU5PTUVNKTsKPiAgCj4gICAgICBpZiAoICFhbGxvY19jcHVtYXNrX3Zhcigmc3BjLT5i YWxhbmNlX21hc2spICkKPiAgICAgIHsKPiAgICAgICAgICB4ZnJlZShzcGMpOwo+IC0gICAgICAg IHJldHVybiBOVUxMOwo+ICsgICAgICAgIHJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwo+ICAgICAg fQo+ICAKPiAgICAgIHNwaW5fbG9ja19pcnFzYXZlKCZwcnYtPmxvY2ssIGZsYWdzKTsKPiBkaWZm IC0tZ2l0IGEveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQyLmMgYi94ZW4vY29tbW9uL3NjaGVkX2Ny ZWRpdDIuYwo+IGluZGV4IGI4YzhlNDAuLmU5N2Q4YmUgMTAwNjQ0Cj4gLS0tIGEveGVuL2NvbW1v bi9zY2hlZF9jcmVkaXQyLmMKPiArKysgYi94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdDIuYwo+IEBA IC0yMDQ3LDcgKzIwNDcsNyBAQCBjc2NoZWQyX2FsbG9jX3BkYXRhKGNvbnN0IHN0cnVjdCBzY2hl ZHVsZXIgKm9wcywgaW50IGNwdSkKPiAgICAgICAgICBwcmludGsoIiVzOiBjcHUgJWQgbm90IG9u bGluZSB5ZXQsIGRlZmVycmluZyBpbml0aWFsaXphdGdpb25cbiIsCj4gICAgICAgICAgICAgICAg IF9fZnVuY19fLCBjcHUpOwo+ICAKPiAtICAgIHJldHVybiAodm9pZCAqKTE7Cj4gKyAgICByZXR1 cm4gTlVMTDsKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQKPiBkaWZmIC0tZ2l0IGEveGVuL2NvbW1v bi9zY2hlZF9ydC5jIGIveGVuL2NvbW1vbi9zY2hlZF9ydC5jCj4gaW5kZXggMzIxYjBhNS4uYWVj ZTMxOCAxMDA2NDQKPiAtLS0gYS94ZW4vY29tbW9uL3NjaGVkX3J0LmMKPiArKysgYi94ZW4vY29t bW9uL3NjaGVkX3J0LmMKPiBAQCAtMjksNiArMjksNyBAQAo+ICAjaW5jbHVkZSA8eGVuL2NwdS5o Pgo+ICAjaW5jbHVkZSA8eGVuL2tleWhhbmRsZXIuaD4KPiAgI2luY2x1ZGUgPHhlbi90cmFjZS5o Pgo+ICsjaW5jbHVkZSA8eGVuL2Vyci5oPgo+ICAjaW5jbHVkZSA8eGVuL2d1ZXN0X2FjY2Vzcy5o Pgo+ICAKPiAgLyoKPiBAQCAtNjgxLDcgKzY4Miw3IEBAIHJ0X2FsbG9jX3BkYXRhKGNvbnN0IHN0 cnVjdCBzY2hlZHVsZXIgKm9wcywgaW50IGNwdSkKPiAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3Rv cmUob2xkX2xvY2ssIGZsYWdzKTsKPiAgCj4gICAgICBpZiAoICFhbGxvY19jcHVtYXNrX3Zhcigm X2NwdW1hc2tfc2NyYXRjaFtjcHVdKSApCj4gLSAgICAgICAgcmV0dXJuIE5VTEw7Cj4gKyAgICAg ICAgcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Cj4gIAo+ICAgICAgaWYgKCBwcnYtPnJlcGxfdGlt ZXIgPT0gTlVMTCApCj4gICAgICB7Cj4gQEAgLTY4OSwxMyArNjkwLDEyIEBAIHJ0X2FsbG9jX3Bk YXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgaW50IGNwdSkKPiAgICAgICAgICBwcnYt PnJlcGxfdGltZXIgPSB4emFsbG9jKHN0cnVjdCB0aW1lcik7Cj4gIAo+ICAgICAgICAgIGlmICgg cHJ2LT5yZXBsX3RpbWVyID09IE5VTEwgKQo+IC0gICAgICAgICAgICByZXR1cm4gTlVMTDsKPiAr ICAgICAgICAgICAgcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Cj4gIAo+ICAgICAgICAgIGluaXRf dGltZXIocHJ2LT5yZXBsX3RpbWVyLCByZXBsX3RpbWVyX2hhbmRsZXIsICh2b2lkICopb3BzLCBj cHUpOwo+ICAgICAgfQo+ICAKPiAtICAgIC8qIDEgaW5kaWNhdGVzIGFsbG9jLiBzdWNjZWVkIGlu IHNjaGVkdWxlLmMgKi8KPiAtICAgIHJldHVybiAodm9pZCAqKTE7Cj4gKyAgICByZXR1cm4gTlVM TDsKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQKPiBkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9zY2hl ZHVsZS5jIGIveGVuL2NvbW1vbi9zY2hlZHVsZS5jCj4gaW5kZXggYjdkZWUxNi4uMTk0MTYxMyAx MDA2NDQKPiAtLS0gYS94ZW4vY29tbW9uL3NjaGVkdWxlLmMKPiArKysgYi94ZW4vY29tbW9uL3Nj aGVkdWxlLmMKPiBAQCAtMzcsNiArMzcsNyBAQAo+ICAjaW5jbHVkZSA8eGVuL2V2ZW50Lmg+Cj4g ICNpbmNsdWRlIDxwdWJsaWMvc2NoZWQuaD4KPiAgI2luY2x1ZGUgPHhzbS94c20uaD4KPiArI2lu Y2x1ZGUgPHhlbi9lcnIuaD4KPiAgCj4gIC8qIG9wdF9zY2hlZDogc2NoZWR1bGVyIC0gZGVmYXVs dCB0byBjb25maWd1cmVkIHZhbHVlICovCj4gIHN0YXRpYyBjaGFyIF9faW5pdGRhdGEgb3B0X3Nj aGVkWzEwXSA9IENPTkZJR19TQ0hFRF9ERUZBVUxUOwo+IEBAIC0xNDYyLDYgKzE0NjMsNyBAQCBz dGF0aWMgdm9pZCBwb2xsX3RpbWVyX2ZuKHZvaWQgKmRhdGEpCj4gIHN0YXRpYyBpbnQgY3B1X3Nj aGVkdWxlX3VwKHVuc2lnbmVkIGludCBjcHUpCj4gIHsKPiAgICAgIHN0cnVjdCBzY2hlZHVsZV9k YXRhICpzZCA9ICZwZXJfY3B1KHNjaGVkdWxlX2RhdGEsIGNwdSk7Cj4gKyAgICB2b2lkICpzY2hl ZF9wcml2Owo+ICAKPiAgICAgIHBlcl9jcHUoc2NoZWR1bGVyLCBjcHUpID0gJm9wczsKPiAgICAg IHNwaW5fbG9ja19pbml0KCZzZC0+X2xvY2spOwo+IEBAIC0xNTAwLDkgKzE1MDIsMTYgQEAgc3Rh dGljIGludCBjcHVfc2NoZWR1bGVfdXAodW5zaWduZWQgaW50IGNwdSkKPiAgICAgIGlmICggaWRs ZV92Y3B1W2NwdV0gPT0gTlVMTCApCj4gICAgICAgICAgcmV0dXJuIC1FTk9NRU07Cj4gIAo+IC0g ICAgaWYgKCAob3BzLmFsbG9jX3BkYXRhICE9IE5VTEwpICYmCj4gLSAgICAgICAgICgoc2QtPnNj aGVkX3ByaXYgPSBvcHMuYWxsb2NfcGRhdGEoJm9wcywgY3B1KSkgPT0gTlVMTCkgKQo+IC0gICAg ICAgIHJldHVybiAtRU5PTUVNOwo+ICsgICAgLyoKPiArICAgICAqIFdlIGRvbid0IHdhbnQgdG8g cmlzayBjYWxsaW5nIHhmcmVlKCkgb24gYW4gc2QtPnNjaGVkX3ByaXYKPiArICAgICAqIChlLmcu LCBpbnNpZGUgZnJlZV9wZGF0YSwgZnJvbSBjcHVfc2NoZWR1bGVfZG93bigpIGNhbGxlZAo+ICsg ICAgICogZHVyaW5nIENQVV9VUF9DQU5DRUxMRUQpIHRoYXQgY29udGFpbnMgYW4gSVNfRVJSIHZh bHVlLgo+ICsgICAgICovCj4gKyAgICBzY2hlZF9wcml2ID0gU0NIRURfT1AoJm9wcywgYWxsb2Nf cGRhdGEsIGNwdSk7Cj4gKyAgICBpZiAoIElTX0VSUihzY2hlZF9wcml2KSApCj4gKyAgICAgICAg cmV0dXJuIFBUUl9FUlIoc2NoZWRfcHJpdik7Cj4gKwo+ICsgICAgc2QtPnNjaGVkX3ByaXYgPSBz Y2hlZF9wcml2Owo+ICAKPiAgICAgIHJldHVybiAwOwo+ICB9Cj4gQEAgLTE1MTIsOCArMTUyMSw3 IEBAIHN0YXRpYyB2b2lkIGNwdV9zY2hlZHVsZV9kb3duKHVuc2lnbmVkIGludCBjcHUpCj4gICAg ICBzdHJ1Y3Qgc2NoZWR1bGVfZGF0YSAqc2QgPSAmcGVyX2NwdShzY2hlZHVsZV9kYXRhLCBjcHUp Owo+ICAgICAgc3RydWN0IHNjaGVkdWxlciAqc2NoZWQgPSBwZXJfY3B1KHNjaGVkdWxlciwgY3B1 KTsKPiAgCj4gLSAgICBpZiAoIHNkLT5zY2hlZF9wcml2ICE9IE5VTEwgKQo+IC0gICAgICAgIFND SEVEX09QKHNjaGVkLCBmcmVlX3BkYXRhLCBzZC0+c2NoZWRfcHJpdiwgY3B1KTsKPiArICAgIFND SEVEX09QKHNjaGVkLCBmcmVlX3BkYXRhLCBzZC0+c2NoZWRfcHJpdiwgY3B1KTsKPiAgICAgIFND SEVEX09QKHNjaGVkLCBmcmVlX3ZkYXRhLCBpZGxlX3ZjcHVbY3B1XS0+c2NoZWRfcHJpdik7Cj4g IAo+ICAgICAgaWRsZV92Y3B1W2NwdV0tPnNjaGVkX3ByaXYgPSBOVUxMOwo+IEBAIC0xNjA4LDkg KzE2MTYsOCBAQCB2b2lkIF9faW5pdCBzY2hlZHVsZXJfaW5pdCh2b2lkKQo+ICAgICAgaWRsZV9k b21haW4tPm1heF92Y3B1cyA9IG5yX2NwdV9pZHM7Cj4gICAgICBpZiAoIGFsbG9jX3ZjcHUoaWRs ZV9kb21haW4sIDAsIDApID09IE5VTEwgKQo+ICAgICAgICAgIEJVRygpOwo+IC0gICAgaWYgKCBv cHMuYWxsb2NfcGRhdGEgJiYKPiAtICAgICAgICAgISh0aGlzX2NwdShzY2hlZHVsZV9kYXRhKS5z Y2hlZF9wcml2ID0gb3BzLmFsbG9jX3BkYXRhKCZvcHMsIDApKSApCj4gLSAgICAgICAgQlVHKCk7 Cj4gKyAgICB0aGlzX2NwdShzY2hlZHVsZV9kYXRhKS5zY2hlZF9wcml2ID0gU0NIRURfT1AoJm9w cywgYWxsb2NfcGRhdGEsIDApOwo+ICsgICAgQlVHX09OKElTX0VSUih0aGlzX2NwdShzY2hlZHVs ZV9kYXRhKS5zY2hlZF9wcml2KSk7Cj4gICAgICBTQ0hFRF9PUCgmb3BzLCBpbml0X3BkYXRhLCB0 aGlzX2NwdShzY2hlZHVsZV9kYXRhKS5zY2hlZF9wcml2LCAwKTsKPiAgfQo+ICAKPiBAQCAtMTY1 Myw4ICsxNjYwLDggQEAgaW50IHNjaGVkdWxlX2NwdV9zd2l0Y2godW5zaWduZWQgaW50IGNwdSwg c3RydWN0IGNwdXBvb2wgKmMpCj4gIAo+ICAgICAgaWRsZSA9IGlkbGVfdmNwdVtjcHVdOwo+ICAg ICAgcHByaXYgPSBTQ0hFRF9PUChuZXdfb3BzLCBhbGxvY19wZGF0YSwgY3B1KTsKPiAtICAgIGlm ICggcHByaXYgPT0gTlVMTCApCj4gLSAgICAgICAgcmV0dXJuIC1FTk9NRU07Cj4gKyAgICBpZiAo IElTX0VSUihwcHJpdikgKQo+ICsgICAgICAgIHJldHVybiBQVFJfRVJSKHBwcml2KTsKPiAgICAg IFNDSEVEX09QKG5ld19vcHMsIGluaXRfcGRhdGEsIHBwcml2LCBjcHUpOwo+ICAgICAgdnByaXYg PSBTQ0hFRF9PUChuZXdfb3BzLCBhbGxvY192ZGF0YSwgaWRsZSwgaWRsZS0+ZG9tYWluLT5zY2hl ZF9wcml2KTsKPiAgICAgIGlmICggdnByaXYgPT0gTlVMTCApCj4gCgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApY ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK