From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yu Zhang Subject: Re: [PATCH v4 3/3] x86/ioreq server: Add HVMOP to map guest ram with p2m_ioreq_server to an ioreq server. Date: Wed, 15 Jun 2016 18:52:42 +0800 Message-ID: <5761337A.5050705@linux.intel.com> References: <1463648711-26595-1-git-send-email-yu.c.zhang@linux.intel.com> <1463648711-26595-4-git-send-email-yu.c.zhang@linux.intel.com> <575FFC7E02000078000F4BA1@prv-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <575FFC7E02000078000F4BA1@prv-mh.provo.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Jan Beulich Cc: Kevin Tian , George Dunlap , Andrew Cooper , Tim Deegan , xen-devel@lists.xen.org, Paul Durrant , zhiyuan.lv@intel.com, Jun Nakajima List-Id: xen-devel@lists.xenproject.org CgpPbiA2LzE0LzIwMTYgNjo0NSBQTSwgSmFuIEJldWxpY2ggd3JvdGU6Cj4+Pj4gT24gMTkuMDUu MTYgYXQgMTE6MDUsIDx5dS5jLnpoYW5nQGxpbnV4LmludGVsLmNvbT4gd3JvdGU6Cj4+IEEgbmV3 IEhWTU9QIC0gSFZNT1BfbWFwX21lbV90eXBlX3RvX2lvcmVxX3NlcnZlciwgaXMgYWRkZWQgdG8K Pj4gbGV0IG9uZSBpb3JlcSBzZXJ2ZXIgY2xhaW0vZGlzY2xhaW0gaXRzIHJlc3BvbnNpYmlsaXR5 IGZvciB0aGUKPj4gaGFuZGxpbmcgb2YgZ3Vlc3QgcGFnZXMgd2l0aCBwMm0gdHlwZSBwMm1faW9y ZXFfc2VydmVyLiBVc2Vycwo+PiBvZiB0aGlzIEhWTU9QIGNhbiBzcGVjaWZ5IHdoaWNoIGtpbmQg b2Ygb3BlcmF0aW9uIGlzIHN1cHBvc2VkCj4+IHRvIGJlIGVtdWxhdGVkIGluIGEgcGFyYW1ldGVy IG5hbWVkIGZsYWdzLiBDdXJyZW50bHksIHRoaXMgSFZNT1AKPj4gb25seSBzdXBwb3J0IHRoZSBl bXVsYXRpb24gb2Ygd3JpdGUgb3BlcmF0aW9ucy4gQW5kIGl0IGNhbiBiZQo+PiBlYXNpbHkgZXh0 ZW5kZWQgdG8gc3VwcG9ydCB0aGUgZW11bGF0aW9uIG9mIHJlYWQgb25lcyBpZiBhbgo+PiBpb3Jl cSBzZXJ2ZXIgaGFzIHN1Y2ggcmVxdWlyZW1lbnQgaW4gdGhlIGZ1dHVyZS4KPiBEaWRuJ3Qgd2Ug ZGV0ZXJtaW5lIHRoYXQgdGhpcyBpc24ndCBhcyBlYXN5IGFzIGV2ZXJ5b25lIGZpcnN0IHRob3Vn aHQ/CgpNeSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgdG8gZW11bGF0ZSByZWFkLCB3ZSBuZWVkIHRv IGNoYW5nZSB0aGUgZGVmaW5pdGlvbgpvZiBpc19lcHRlX3ByZXNlbnQoKSwgYW5kIEkgZG8gbm90 IHRoaW5rIHRoaXMgY2hhbmdlIHdpbGwgY2F1c2UgbXVjaCAKdHJvdWJsZS4KQnV0IHNpbmNlIG5v IG9uZSBpcyB1c2luZyB0aGUgcmVhZCBlbXVsYXRpb24sIEkgYW0gY29udmluY2VkIHRoZSBtb3Jl IApjYXV0aW91cwp3YXkgaXMgdG8gb25seSBzdXBwb3J0IGVtdWxhdGlvbnMgZm9yIHdyaXRlIG9w ZXJhdGlvbnMgZm9yIG5vdy4KCj4+IEBAIC0xNzgsOCArMTc5LDMzIEBAIHN0YXRpYyBpbnQgaHZt ZW11bF9kb19pbygKPj4gICAgICAgICAgIGJyZWFrOwo+PiAgICAgICBjYXNlIFg4NkVNVUxfVU5I QU5ETEVBQkxFOgo+PiAgICAgICB7Cj4+IC0gICAgICAgIHN0cnVjdCBodm1faW9yZXFfc2VydmVy ICpzID0KPj4gLSAgICAgICAgICAgIGh2bV9zZWxlY3RfaW9yZXFfc2VydmVyKGN1cnItPmRvbWFp biwgJnApOwo+PiArICAgICAgICBzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqczsKPj4gKyAgICAg ICAgcDJtX3R5cGVfdCBwMm10Owo+PiArCj4+ICsgICAgICAgIGlmICggaXNfbW1pbyApCj4+ICsg ICAgICAgIHsKPj4gKyAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZ21mbiA9IHBhZGRyX3RvX3Bm bihhZGRyKTsKPj4gKwo+PiArICAgICAgICAgICAgKHZvaWQpIGdldF9nZm5fcXVlcnlfdW5sb2Nr ZWQoY3VycmQsIGdtZm4sICZwMm10KTsKPj4gKwo+PiArICAgICAgICAgICAgaWYgKCBwMm10ID09 IHAybV9pb3JlcV9zZXJ2ZXIgKQo+PiArICAgICAgICAgICAgewo+PiArICAgICAgICAgICAgICAg IHVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4+ICsKPj4gKyAgICAgICAgICAgICAgICBzID0gcDJtX2dl dF9pb3JlcV9zZXJ2ZXIoY3VycmQsICZmbGFncyk7Cj4+ICsKPj4gKyAgICAgICAgICAgICAgICBp ZiAoIGRpciA9PSBJT1JFUV9XUklURSAmJgo+PiArICAgICAgICAgICAgICAgICAgICAgIShmbGFn cyAmIFAyTV9JT1JFUV9IQU5ETEVfV1JJVEVfQUNDRVNTKSApCj4gU2hvdWxkbid0IHRoaXMgYmUK Pgo+ICAgICAgICAgICAgICAgICAgaWYgKCBkaXIgIT0gSU9SRVFfV1JJVEUgfHwKPiAgICAgICAg ICAgICAgICAgICAgICAgIShmbGFncyAmIFAyTV9JT1JFUV9IQU5ETEVfV1JJVEVfQUNDRVNTKSAp Cj4gICAgICAgICAgICAgICAgICAgICAgcyA9IE5VTEw7Cj4KPiBpbiB3aGljaCBjYXNlIHRoZSBx dWVzdGlvbiBpcyB3aGV0aGVyIHlvdSB3b3VsZG4ndCBiZXR0ZXIgYXZvaWQKPiBjYWxsaW5nIHAy bV9nZXRfaW9yZXFfc2VydmVyKCkgaW4gdGhlIGZpcnN0IHBsYWNlIHdoZW4KPiBkaXIgIT0gSU9S RVFfV1JJVEUuCgpZb3UgYXJlIHJpZ2h0LiBTaW5jZSBkaXIgd2l0aCBJT1JFUV9SRUFEIGlzIG5v dCBzdXBwb3NlZCB0byBlbnRlciB0aGlzIApjb2RlIHBhdGgsIEknZApiZXR0ZXIgY2hhbmdlIGFi b3ZlIGNvZGUgdG8gY2hlY2sgdmFsdWUgb2YgZGlyIGZpcnN0IGJlZm9yZSBjYWxsaW5nIApwMm1f Z2V0X2lvcmVxX3NlcnZlcigpLgoKPj4gKyAgICAgICAgICAgICAgICAgICAgcyA9IE5VTEw7Cj4+ ICsgICAgICAgICAgICB9Cj4+ICsgICAgICAgICAgICBlbHNlCj4+ICsgICAgICAgICAgICAgICAg cyA9IGh2bV9zZWxlY3RfaW9yZXFfc2VydmVyKGN1cnJkLCAmcCk7Cj4+ICsgICAgICAgIH0KPj4g KyAgICAgICAgZWxzZQo+PiArICAgICAgICB7Cj4+ICsgICAgICAgICAgICBwMm10ID0gcDJtX2lu dmFsaWQ7Cj4gV2hhdCBpcyB0aGlzIG5lZWRlZCBmb3I/IEluIGZhY3QgaXQgbG9va3MgbGlrZSB0 aGUgdmFyaWFibGUgZGVjYXJhdGlvbgo+IGNvdWxkIG1vdmUgaW50byB0aGUgbmV4dCBpbm5lciBz Y29wZSAoYWxvbmdzaWRlIGdtZm4sIHdoaWNoIGlzCj4gcXVlc3Rpb25hYmxlIHRvIGJlIGEgbG9j YWwgdmFyaWFibGUgYW55d2F5LCBjb25zaWRlcmluZyB0aGF0IGlzIGdldHMKPiB1c2VkIGp1c3Qg b25jZSkuCgpHb3QgaXQuIFRoYW5rcy4KCj4+IEBAIC05MTQsNiArOTE2LDQ1IEBAIGludCBodm1f dW5tYXBfaW9fcmFuZ2VfZnJvbV9pb3JlcV9zZXJ2ZXIoc3RydWN0IGRvbWFpbiAqZCwgaW9zZXJ2 aWRfdCBpZCwKPj4gICAgICAgcmV0dXJuIHJjOwo+PiAgIH0KPj4gICAKPj4gK2ludCBodm1fbWFw X21lbV90eXBlX3RvX2lvcmVxX3NlcnZlcihzdHJ1Y3QgZG9tYWluICpkLCBpb3NlcnZpZF90IGlk LAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQxNl90IHR5cGUs IHVpbnQzMl90IGZsYWdzKQo+IEkgc2VlIG5vIHJlYXNvbiB3aHkgYm90aCBjYW4ndCBiZSB1bnNp Z25lZCBpbnQuCgpQYXJhbWV0ZXIgdHlwZSBpcyBwYXNzZWQgaW4gZnJvbSB0aGUgdHlwZSBmaWVs ZCBpbnNpZGUgc3RydWN0IAp4ZW5faHZtX21hcF9tZW1fdHlwZV90b19pb3JlcV9zZXJ2ZXIsCndo aWNoIGlzIGEgdWludDE2X3QsIGZvbGxvd2VkIHdpdGggYSB1aW50MTZfdCBwYWQuIE5vdyBJIGFt IHdvbmRlcmluZywgCm1heSBiZSB3ZSBjYW4ganVzdCByZW1vdmUgdGhlIHBhZApmaWVsZCBpbiB0 aGlzIHN0cnVjdHVyZSBhbmQganVzdCBkZWZpbmUgdHlwZSBhcyB1aW50MzJfdC4KCj4+IC0tLSBh L3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMKPj4gKysrIGIveGVuL2FyY2gveDg2L21tL3AybS1l cHQuYwo+PiBAQCAtMTMyLDYgKzEzMiwxMiBAQCBzdGF0aWMgdm9pZCBlcHRfcDJtX3R5cGVfdG9f ZmxhZ3Moc3RydWN0IHAybV9kb21haW4gKnAybSwgZXB0X2VudHJ5X3QgKmVudHJ5LAo+PiAgICAg ICAgICAgICAgIGVudHJ5LT5yID0gZW50cnktPncgPSBlbnRyeS0+eCA9IDE7Cj4+ICAgICAgICAg ICAgICAgZW50cnktPmEgPSBlbnRyeS0+ZCA9ICEhY3B1X2hhc192bXhfZXB0X2FkOwo+PiAgICAg ICAgICAgICAgIGJyZWFrOwo+PiArICAgICAgICBjYXNlIHAybV9pb3JlcV9zZXJ2ZXI6Cj4+ICsg ICAgICAgICAgICBlbnRyeS0+ciA9IGVudHJ5LT54ID0gMTsKPiBXaHkgeD8KClNldHRpbmcgZW50 cnktPnggdG8gMSBpcyBub3QgYSBtdXN0LiBJIGNhbiByZW1vdmUgaXQuIDopCgo+PiBAQCAtOTQs OCArOTYsMTYgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgcDJtX3R5cGVfdG9fZmxhZ3MocDJtX3R5 cGVfdCB0LCBtZm5fdCBtZm4sCj4+ICAgICAgIGRlZmF1bHQ6Cj4+ICAgICAgICAgICByZXR1cm4g ZmxhZ3MgfCBfUEFHRV9OWF9CSVQ7Cj4+ICAgICAgIGNhc2UgcDJtX2dyYW50X21hcF9ybzoKPj4g LSAgICBjYXNlIHAybV9pb3JlcV9zZXJ2ZXI6Cj4+ICAgICAgICAgICByZXR1cm4gZmxhZ3MgfCBQ Mk1fQkFTRV9GTEFHUyB8IF9QQUdFX05YX0JJVDsKPj4gKyAgICBjYXNlIHAybV9pb3JlcV9zZXJ2 ZXI6Cj4+ICsgICAgewo+PiArICAgICAgICBmbGFncyB8PSBQMk1fQkFTRV9GTEFHUyB8IF9QQUdF X1JXOwo+PiArCj4+ICsgICAgICAgIGlmICggcDJtLT5pb3JlcS5mbGFncyAmIFAyTV9JT1JFUV9I QU5ETEVfV1JJVEVfQUNDRVNTICkKPj4gKyAgICAgICAgICAgIHJldHVybiBmbGFncyAmIH5fUEFH RV9SVzsKPj4gKyAgICAgICAgZWxzZQo+PiArICAgICAgICAgICAgcmV0dXJuIGZsYWdzOwo+PiAr ICAgIH0KPiBTYW1lIGhlcmUgKGZvciB0aGUgbWlzc2luZyBfUEFHRV9OWCkgcGx1cyBubyBuZWVk IGZvciBicmFjZXMuCgpJJ2xsIHJlbW92ZSB0aGUgYnJhY2UuIEFuZCB3ZSBkbyBub3QgbmVlZCB0 byBzZXQgdGhlIF9QQUdFX05YX0JJVCwgbGlrZSAKdGhlIHAybV9yYW1fcm8gY2FzZSBJIGd1ZXNz LgoKPgo+PiBAQCAtMjg5LDYgKzI5MSw3NCBAQCB2b2lkIHAybV9tZW1vcnlfdHlwZV9jaGFuZ2Vk KHN0cnVjdCBkb21haW4gKmQpCj4+ICAgICAgIH0KPj4gICB9Cj4+ICAgCj4+ICtpbnQgcDJtX3Nl dF9pb3JlcV9zZXJ2ZXIoc3RydWN0IGRvbWFpbiAqZCwKPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICB1bnNpZ25lZCBsb25nIGZsYWdzLAo+IFdoeSAibG9uZyIgYW5kIG5vdCBqdXN0ICJpbnQi PwoKWW91IGFyZSByaWdodCwgd2lsbCBjaGFuZ2UgdG8gdW5zaWduZWQgaW50IGluIG5leHQgdmVy c2lvbi4KCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGh2bV9pb3JlcV9zZXJ2 ZXIgKnMpCj4+ICt7Cj4+ICsgICAgc3RydWN0IHAybV9kb21haW4gKnAybSA9IHAybV9nZXRfaG9z dHAybShkKTsKPj4gKyAgICBpbnQgcmM7Cj4+ICsKPj4gKyAgICBzcGluX2xvY2soJnAybS0+aW9y ZXEubG9jayk7Cj4+ICsKPj4gKyAgICBpZiAoIGZsYWdzID09IDAgKQo+PiArICAgIHsKPj4gKyAg ICAgICAgcmMgPSAtRUlOVkFMOwo+PiArICAgICAgICBpZiAoIHAybS0+aW9yZXEuc2VydmVyICE9 IHMgKQo+PiArICAgICAgICAgICAgZ290byBvdXQ7Cj4+ICsKPj4gKyAgICAgICAgLyogVW5tYXAg aW9yZXEgc2VydmVyIGZyb20gcDJtIHR5cGUgYnkgcGFzc2luZyBmbGFncyB3aXRoIDAuICovCj4+ ICsgICAgICAgIHAybS0+aW9yZXEuc2VydmVyID0gTlVMTDsKPj4gKyAgICAgICAgcDJtLT5pb3Jl cS5mbGFncyA9IDA7Cj4+ICsgICAgfQo+IFdoYXQgZG9lcyAicGFzc2luZyIgcmVmZXIgdG8gaW4g dGhlIGNvbW1lbnQ/CgpJdCBtZWFucyBpZiB0aGlzIHJvdXRpbmUgaXMgY2FsbGVkIHdpdGggZmxh Z3M9MCwgaXQgd2lsbCB1bm1hcCB0aGUgaW9yZXEgCnNlcnZlci4KCj4+ICsgICAgZWxzZQo+PiAr ICAgIHsKPj4gKyAgICAgICAgcmMgPSAtRUJVU1k7Cj4+ICsgICAgICAgIGlmICggcDJtLT5pb3Jl cS5zZXJ2ZXIgIT0gTlVMTCApCj4+ICsgICAgICAgICAgICBnb3RvIG91dDsKPj4gKwo+PiArICAg ICAgICBwMm0tPmlvcmVxLnNlcnZlciA9IHM7Cj4+ICsgICAgICAgIHAybS0+aW9yZXEuZmxhZ3Mg PSBmbGFnczsKPj4gKyAgICB9Cj4+ICsKPj4gKyAgICByYyA9IDA7Cj4+ICsKPj4gKyBvdXQ6Cj4+ ICsgICAgc3Bpbl91bmxvY2soJnAybS0+aW9yZXEubG9jayk7Cj4+ICsKPj4gKyAgICByZXR1cm4g cmM7Cj4+ICt9Cj4+ICsKPj4gK3N0cnVjdCBodm1faW9yZXFfc2VydmVyICpwMm1fZ2V0X2lvcmVx X3NlcnZlcihzdHJ1Y3QgZG9tYWluICpkLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgKmZsYWdzKQo+IEFnYWluICB3aHkgImxv bmciIGFuZCBub3QganVzdCAiaW50Ij8KCkdvdCBpdC4gIFRoYW5rcy4KCj4+ICt7Cj4+ICsgICAg c3RydWN0IHAybV9kb21haW4gKnAybSA9IHAybV9nZXRfaG9zdHAybShkKTsKPj4gKyAgICBzdHJ1 Y3QgaHZtX2lvcmVxX3NlcnZlciAqczsKPj4gKwo+PiArICAgIHNwaW5fbG9jaygmcDJtLT5pb3Jl cS5sb2NrKTsKPj4gKwo+PiArICAgIHMgPSBwMm0tPmlvcmVxLnNlcnZlcjsKPj4gKyAgICAqZmxh Z3MgPSBwMm0tPmlvcmVxLmZsYWdzOwo+PiArCj4+ICsgICAgc3Bpbl91bmxvY2soJnAybS0+aW9y ZXEubG9jayk7Cj4+ICsgICAgcmV0dXJuIHM7Cj4+ICt9Cj4gTG9ja2luZyBpcyBzb21ld2hhdCBz dHJhbmdlIGhlcmU6IFlvdSBwcm90ZWN0IGFnYWluc3QgdGhlICJzZXQiCj4gY291bnRlcnBhcnQg YWx0ZXJpbmcgc3RhdGUgd2hpbGUgeW91IHJldHJpZXZlIGl0LCBidXQgeW91IGRvbid0Cj4gcHJv dGVjdCBhZ2FpbnN0IHRoZSByZXR1cm5lZCBkYXRhIGJlY29taW5nIHN0YWxlIGJ5IHRoZSB0aW1l Cj4gdGhlIGNhbGxlciBjYW4gY29uc3VtZSBpdC4gSXMgdGhhdCBub3QgYSBwcm9ibGVtPyAoVGhl IG1vc3QKPiBjb25jZXJuaW5nIGNhc2Ugd291bGQgc2VlbSB0byBiZSBhIHJhY2Ugb2YgaHZtb3Bf c2V0X21lbV90eXBlKCkKPiB3aXRoIGRlLXJlZ2lzdHJhdGlvbiBvZiB0aGUgdHlwZS4pCgpZZXMu IFRoZSBjYXNlIHlvdSBtZW50aW9uZWQgbWlnaHQgaGFwcGVuLiBCdXQgaXQncyBub3QgYSBiaWcg ZGVhbCBJIApndWVzcy4gSWYgc3VjaApjYXNlIGhhcHBlbnMsIHRoZSAgYmFja2VuZCBkcml2ZXIg d2lsbCByZWNlaXZlIGFuIGlvIHJlcXVlc3QgYW5kIGNhbiAKdGhlbiBkaXNjYXJkIGl0CmlmIGl0 IGhhcyBqdXN0IGRlLXJlZ2lzdGVyZWQgdGhlIG1lbSB0eXBlLgoKPj4gK3ZvaWQgcDJtX2Rlc3Ry b3lfaW9yZXFfc2VydmVyKHN0cnVjdCBkb21haW4gKmQsCj4+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcykKPiBjb25zdAo+Cj4+IEBAIC0z MzYsNiArMzM2LDI0IEBAIHN0cnVjdCBwMm1fZG9tYWluIHsKPj4gICAgICAgICAgIHN0cnVjdCBl cHRfZGF0YSBlcHQ7Cj4+ICAgICAgICAgICAvKiBOUFQtZXF1aXZhbGVudCBzdHJ1Y3R1cmUgY291 bGQgYmUgYWRkZWQgaGVyZS4gKi8KPj4gICAgICAgfTsKPj4gKwo+PiArICAgIHN0cnVjdCB7Cj4+ ICsgICAgICAgIHNwaW5sb2NrX3QgbG9jazsKPj4gKyAgICAgICAgLyoKPj4gKyAgICAgICAgICog aW9yZXEgc2VydmVyIHdobydzIHJlc3BvbnNpYmxlIGZvciB0aGUgZW11bGF0aW9uIG9mCj4+ICsg ICAgICAgICAqIGdmbnMgd2l0aCBzcGVjaWZpYyBwMm0gdHlwZShmb3Igbm93LCBwMm1faW9yZXFf c2VydmVyKS4KPj4gKyAgICAgICAgICovCj4+ICsgICAgICAgIHN0cnVjdCBodm1faW9yZXFfc2Vy dmVyICpzZXJ2ZXI7Cj4+ICsgICAgICAgIC8qCj4+ICsgICAgICAgICAqIGZsYWdzIHNwZWNpZmll cyB3aGV0aGVyIHJlYWQsIHdyaXRlIG9yIGJvdGggb3BlcmF0aW9ucwo+PiArICAgICAgICAgKiBh cmUgdG8gYmUgZW11bGF0ZWQgYnkgYW4gaW9yZXEgc2VydmVyLgo+PiArICAgICAgICAgKi8KPj4g KyAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzOwo+PiArCj4+ICsjZGVmaW5lIFAyTV9JT1JFUV9I QU5ETEVfV1JJVEVfQUNDRVNTIEhWTU9QX0lPUkVRX01FTV9BQ0NFU1NfV1JJVEUKPj4gKyNkZWZp bmUgUDJNX0lPUkVRX0hBTkRMRV9SRUFEX0FDQ0VTUyAgSFZNT1BfSU9SRVFfTUVNX0FDQ0VTU19S RUFECj4gSXMgdGhlcmUgYW55dGhpbmcgd3Jvbmcgd2l0aCB1c2luZyB0aGUgSFZNT1BfKiB2YWx1 ZXMgZGlyZWN0bHk/Cj4KPj4gLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9odm1fb3AuaAo+ PiArKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2bV9vcC5oCj4+IEBAIC04OSw3ICs4OSw5 IEBAIHR5cGVkZWYgZW51bSB7Cj4+ICAgICAgIEhWTU1FTV91bnVzZWQsICAgICAgICAgICAgIC8q IFBsYWNlaG9sZGVyOyBzZXR0aW5nIG1lbW9yeSB0byB0aGlzIHR5cGUKPj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgd2lsbCBmYWlsIGZvciBjb2RlIGFmdGVyIDQuNy4wICov Cj4+ICAgI2VuZGlmCj4+IC0gICAgSFZNTUVNX2lvcmVxX3NlcnZlcgo+PiArICAgIEhWTU1FTV9p b3JlcV9zZXJ2ZXIgICAgICAgIC8qIE1lbW9yeSB0eXBlIGNsYWltZWQgYnkgYW4gaW9yZXEgc2Vy dmVyOyB0eXBlCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlcyB0 byB0aGlzIHZhbHVlIGFyZSBvbmx5IGFsbG93ZWQgYWZ0ZXIKPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhbiBpb3JlcSBzZXJ2ZXIgaGFzIGNsYWltZWQgaXRzIG93bmVyc2hp cCAqLwo+IE1pc3NpbmcgdHJhaWxpbmcgZnVsbCBzdG9wLgo+Cj4+IEBAIC0zODMsNiArMzg1LDM3 IEBAIHN0cnVjdCB4ZW5faHZtX3NldF9pb3JlcV9zZXJ2ZXJfc3RhdGUgewo+PiAgIHR5cGVkZWYg c3RydWN0IHhlbl9odm1fc2V0X2lvcmVxX3NlcnZlcl9zdGF0ZSB4ZW5faHZtX3NldF9pb3JlcV9z ZXJ2ZXJfc3RhdGVfdDsKPj4gICBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZtX3NldF9p b3JlcV9zZXJ2ZXJfc3RhdGVfdCk7Cj4+ICAgCj4+ICsvKgo+PiArICogSFZNT1BfbWFwX21lbV90 eXBlX3RvX2lvcmVxX3NlcnZlciA6IG1hcCBvciB1bm1hcCB0aGUgSU9SRVEgU2VydmVyIDxpZD4K Pj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byBzcGVjaWZpYyBt ZW1yb3kgdHlwZSA8dHlwZT4KPj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBmb3Igc3BlY2lmaWMgYWNjZXNzZXMgPGZsYWdzPgo+PiArICoKPj4gKyAqIEZvciBub3cs IGZsYWdzIG9ubHkgYWNjZXB0IHRoZSB2YWx1ZSBvZiBIVk1PUF9JT1JFUV9NRU1fQUNDRVNTX1dS SVRFLAo+PiArICogd2hpY2ggbWVhbnMgb25seSB3cml0ZSBvcGVyYXRpb25zIGFyZSB0byBiZSBm b3J3YXJkZWQgdG8gYW4gaW9yZXEgc2VydmVyLgo+PiArICogU3VwcG9ydCBmb3IgdGhlIGVtdWxh dGlvbiBvZiByZWFkIG9wZXJhdGlvbnMgY2FuIGJlIGFkZGVkIHdoZW4gYW4gaW9yZXEKPj4gKyAq IHNlcnZlciBoYXMgc3VjaCByZXF1aXJlbWVudCBpbiBmdXR1cmUuCj4+ICsgKi8KPj4gKyNkZWZp bmUgSFZNT1BfbWFwX21lbV90eXBlX3RvX2lvcmVxX3NlcnZlciAyNgo+PiArc3RydWN0IHhlbl9o dm1fbWFwX21lbV90eXBlX3RvX2lvcmVxX3NlcnZlciB7Cj4+ICsgICAgZG9taWRfdCBkb21pZDsg ICAgICAvKiBJTiAtIGRvbWFpbiB0byBiZSBzZXJ2aWNlZCAqLwo+PiArICAgIGlvc2VydmlkX3Qg aWQ7ICAgICAgLyogSU4gLSBpb3JlcSBzZXJ2ZXIgaWQgKi8KPj4gKyAgICB1aW50MTZfdCB0eXBl OyAgICAgIC8qIElOIC0gbWVtb3J5IHR5cGUgKi8KPj4gKyAgICB1aW50MTZfdCBwYWQ7Cj4gVGhp cyBmaWVsZCBkb2VzIG5vdCBhcHBlYXIgdG8gZ2V0IGNoZWNrZWQgaW4gdGhlIGhhbmRsZXIuCgpJ IGFtIG5vdyB3b25kZXJpbmcsIGhvdyBhYm91dCB3ZSByZW1vdmUgdGhpcyBwYWQgZmllbGQgYW5k IGRlZmluZSB0eXBlIAphcyB1aW50MzJfdD8KClRoYW5rcwpZdQoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4t ZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK