From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yu Zhang Subject: Re: [PATCH v7 2/5] x86/ioreq server: Add DMOP to map guest ram with p2m_ioreq_server to an ioreq server. Date: Sat, 11 Mar 2017 16:42:07 +0800 Message-ID: <58C3B85F.6060205@linux.intel.com> References: <1488987232-12349-1-git-send-email-yu.c.zhang@linux.intel.com> <1488987232-12349-3-git-send-email-yu.c.zhang@linux.intel.com> <58C2D462020000780014203E@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: <58C2D462020000780014203E@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 CgpPbiAzLzEwLzIwMTcgMTE6MjkgUE0sIEphbiBCZXVsaWNoIHdyb3RlOgo+Pj4+IE9uIDA4LjAz LjE3IGF0IDE2OjMzLCA8eXUuYy56aGFuZ0BsaW51eC5pbnRlbC5jb20+IHdyb3RlOgo+PiBjaGFu Z2VzIGluIHY3Ogo+PiAgICAtIFVzZSBuZXcgaW9yZXEgc2VydmVyIGludGVyZmFjZSAtIFhFTl9E TU9QX21hcF9tZW1fdHlwZV90b19pb3JlcV9zZXJ2ZXIuCj4+ICAgIC0gQWNjb3JkaW5nIHRvIGNv bW1lbnRzIGZyb20gR2VvcmdlOiByZW1vdmVkIGRvbWFpbl9wYXVzZS91bnBhdXNlKCkgaW4KPj4g ICAgICBodm1fbWFwX21lbV90eXBlX3RvX2lvcmVxX3NlcnZlcigpLCBiZWNhdXNlIGl0J3MgdG9v IGV4cGVuc2l2ZSwKPj4gICAgICBhbmQgd2UgY2FuIGF2b2lkIHRoZToKPj4gICAgICBhPiBkZWFk bG9jayBiZXR3ZWVuIHAybSBsb2NrIGFuZCBpb3JlcSBzZXJ2ZXIgbG9jayBieSB1c2luZyB0aGVz ZSBsb2Nrcwo+PiAgICAgICAgIGluIHRoZSBzYW1lIG9yZGVyIC0gc29sdmVkIGluIHBhdGNoIDQ7 Cj4gVGhhdCBpcywgdW50aWwgcGF0Y2ggNCB0aGVyZSBpcyBkZWFkbG9jayBwb3RlbnRpYWw/IEkg dGhpbmsgeW91IHdhbnQgdG8KPiByZS1vcmRlciB0aGUgcGF0Y2hlcyBpZiBzby4gT3Igd2FzIGl0 IHRoYXQgdGhlIHR5cGUgY2FuJ3QgcmVhbGx5IGJlIHVzZWQKPiB1bnRpbCB0aGUgbGFzdCBwYXRj aCBvZiB0aGUgc2VyaWVzPyAoSSdtIHNvcnJ5LCBpdCdzIGJlZW4gcXVpdGUgYSB3aGlsZQo+IHNp bmNlIHRoZSBwcmV2aW91cyB2ZXJzaW9uLikKCk9oLiBUaGVyZSdzIG5vIGRlYWRsb2NrIHBvdGVu dGlhbCBpbiB0aGlzIHZlcnNpb24gcGF0Y2ggc2V0LiBCdXQgaW4gdjYsIAp0aGVyZSB3YXMsIGFu ZCBJIHVzZWQKZG9tYWluX3BhdXNlL3VucGF1c2UoKSB0byBhdm9pZCB0aGlzLiBMYXRlciBvbiwg SSByZWFsaXplZCB0aGF0IGlmIEkgdXNlIApkaWZmZXJlbnQgbG9ja3MgaW4gdGhlCnNhbWUgb3Jk ZXIsIHRoZSBkZWFkbG9jayBwb3RlbnRpYWwgY2FuIGJlIGF2b2lkIGFuZCB3ZSBkbyBub3QgbmVl ZCAKZG9tYWluX3BhdXNlL3VucGF1c2UKaW4gdGhpcyB2ZXJzaW9uLgoKPj4gQEAgLTM2NSw2ICsz ODMsMjQgQEAgc3RhdGljIGludCBkbV9vcChkb21pZF90IGRvbWlkLAo+PiAgICAgICAgICAgYnJl YWs7Cj4+ICAgICAgIH0KPj4gICAKPj4gKyAgICBjYXNlIFhFTl9ETU9QX21hcF9tZW1fdHlwZV90 b19pb3JlcV9zZXJ2ZXI6Cj4+ICsgICAgewo+PiArICAgICAgICBjb25zdCBzdHJ1Y3QgeGVuX2Rt X29wX21hcF9tZW1fdHlwZV90b19pb3JlcV9zZXJ2ZXIgKmRhdGEgPQo+PiArICAgICAgICAgICAg Jm9wLnUubWFwX21lbV90eXBlX3RvX2lvcmVxX3NlcnZlcjsKPj4gKwo+PiArICAgICAgICByYyA9 IC1FSU5WQUw7Cj4+ICsgICAgICAgIGlmICggZGF0YS0+cGFkICkKPj4gKyAgICAgICAgICAgIGJy ZWFrOwo+PiArCj4+ICsgICAgICAgIC8qIE9ubHkgc3VwcG9ydCBmb3IgSEFQIGVuYWJsZWQgaHZt LiAqLwo+PiArICAgICAgICBpZiAoICFoYXBfZW5hYmxlZChkKSApCj4+ICsgICAgICAgICAgICBi cmVhazsKPiBQZXJoYXBzIGJldHRlciB0byBnaXZlIGFuIGVycm9yIG90aGVyIHRoYW4gLUVJTlZB TCBpbiB0aGlzIGNhc2U/Cj4gSWYgc28sIHRoZW4gdGhlIHNhbWUgZXJyb3Igc2hvdWxkIGxpa2Vs eSBhbHNvIGJlIHVzZWQgaW4geW91cgo+IHNldF9tZW1fdHlwZSgpIGFkZGl0aW9uLgpIb3cgYWJv dXQgLUVOT1RTVVA/Cgo+PiAtLS0gYS94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYwo+PiArKysg Yi94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYwo+PiBAQCAtOTksNiArOTksNyBAQCBzdGF0aWMg aW50IGh2bWVtdWxfZG9faW8oCj4+ICAgICAgIHVpbnQ4X3QgZGlyLCBib29sX3QgZGYsIGJvb2xf dCBkYXRhX2lzX2FkZHIsIHVpbnRwdHJfdCBkYXRhKQo+PiAgIHsKPj4gICAgICAgc3RydWN0IHZj cHUgKmN1cnIgPSBjdXJyZW50Owo+PiArICAgIHN0cnVjdCBkb21haW4gKmN1cnJkID0gY3Vyci0+ ZG9tYWluOwo+PiAgICAgICBzdHJ1Y3QgaHZtX3ZjcHVfaW8gKnZpbyA9ICZjdXJyLT5hcmNoLmh2 bV92Y3B1Lmh2bV9pbzsKPj4gICAgICAgaW9yZXFfdCBwID0gewo+PiAgICAgICAgICAgLnR5cGUg PSBpc19tbWlvID8gSU9SRVFfVFlQRV9DT1BZIDogSU9SRVFfVFlQRV9QSU8sCj4+IEBAIC0xNDAs NyArMTQxLDcgQEAgc3RhdGljIGludCBodm1lbXVsX2RvX2lvKAo+PiAgICAgICAgICAgICAgICAo cC5kaXIgIT0gZGlyKSB8fAo+PiAgICAgICAgICAgICAgICAocC5kZiAhPSBkZikgfHwKPj4gICAg ICAgICAgICAgICAgKHAuZGF0YV9pc19wdHIgIT0gZGF0YV9pc19hZGRyKSApCj4+IC0gICAgICAg ICAgICBkb21haW5fY3Jhc2goY3Vyci0+ZG9tYWluKTsKPj4gKyAgICAgICAgICAgIGRvbWFpbl9j cmFzaChjdXJyZCk7Cj4gSWYgeW91IG1lYW4gdG8gZG8gdGhpcyB0cmFuc2Zvcm1hdGlvbiBoZXJl LCB0aGVuIHBsZWFzZSBkbyBzbwo+IGNvbnNpc3RlbnRseSBmb3IgdGhlIGVudGlyZSBmdW5jdGlv bi4KCk9LLiBUaGFua3MuCgo+PiBAQCAtMTc3LDggKzE3OCw2NSBAQCBzdGF0aWMgaW50IGh2bWVt dWxfZG9faW8oCj4+ICAgICAgICAgICBicmVhazsKPj4gICAgICAgY2FzZSBYODZFTVVMX1VOSEFO RExFQUJMRToKPj4gICAgICAgewo+PiAtICAgICAgICBzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAq cyA9Cj4+IC0gICAgICAgICAgICBodm1fc2VsZWN0X2lvcmVxX3NlcnZlcihjdXJyLT5kb21haW4s ICZwKTsKPj4gKyAgICAgICAgLyoKPj4gKyAgICAgICAgICogWGVuIGlzbid0IGVtdWxhdGluZyB0 aGUgaW5zdHJ1Y3Rpb24gaW50ZXJuYWxseSwgc28gc2VlIGlmCj4+ICsgICAgICAgICAqIHRoZXJl J3MgYW4gaW9yZXEgc2VydmVyIHRoYXQgY2FuIGhhbmRsZSBpdC4gUnVsZXM6Cj4+ICsgICAgICAg ICAqCj4+ICsgICAgICAgICAqIC0gUElPIGFuZCAibm9ybWFsIiBtbWlvIHJ1biB0aHJvdWdoIGh2 bV9zZWxlY3RfaW9yZXFfc2VydmVyKCkKPj4gKyAgICAgICAgICogdG8gY2hvb3NlIHRoZSBpb3Jl cSBzZXJ2ZXIgYnkgcmFuZ2UuIElmIG5vIHNlcnZlciBpcyBmb3VuZCwKPj4gKyAgICAgICAgICog dGhlIGFjY2VzcyBpcyBpZ25vcmVkLgo+PiArICAgICAgICAgKgo+PiArICAgICAgICAgKiAtIHAy bV9pb3JlcV9zZXJ2ZXIgYWNjZXNzZXMgYXJlIGhhbmRsZWQgYnkgdGhlIGN1cnJlbnQKPj4gKyAg ICAgICAgICogaW9yZXFfc2VydmVyIGZvciB0aGUgZG9tYWluLCBidXQgdGhlcmUgYXJlIHNvbWUg Y29ybmVyCj4+ICsgICAgICAgICAqIGNhc2VzOgo+IFdobyBvciB3aGF0IGlzICJ0aGUgY3VycmVu dCBpb3JlcV9zZXJ2ZXIgZm9yIHRoZSBkb21haW4iPwpJdCBtZWFucyAidGhlIGN1cnJlbnQgaW9y ZXFfc2VydmVyIHdoaWNoIG1hcHMgdGhlIHAybV9pb3JlcV9zZXJ2ZXIgdHlwZSAKZm9yIHRoaXMg ZG9tYWluIi4uLgpJJ2QgbGlrZSB0byB1c2UgYSBzdWNjaW5jdCBwaHJhc2UsIGJ1dCBub3cgc2Vl bXMgbm90IGFjY3VyYXRlIGVub3VnaC4gCkFueSBwcmVmZXJlbmNlPwoKPj4gKyAgICAgICAgICog ICAtIElmIHRoZSBkb21haW4gaW9yZXFfc2VydmVyIGlzIE5VTEwsIGFzc3VtZSB0aGlzIGlzIGEK Pj4gKyAgICAgICAgICogICByYWNlIGJldHdlZW4gdGhlIHVuYmluZGluZyBvZiBpb3JlcSBzZXJ2 ZXIgYW5kIGd1ZXN0IGZhdWx0Cj4+ICsgICAgICAgICAqICAgc28gcmUtdHJ5IHRoZSBpbnN0cnVj dGlvbi4KPj4gKyAgICAgICAgICoKPj4gKyAgICAgICAgICogICAtIElmIHRoZSBJT1JFUV9NRU1f QUNDRVNTX1dSSVRFIGZsYWcgaXMgbm90IHNldCwgdHJlYXQgaXQKPj4gKyAgICAgICAgICogICBs aWtlIGEgbm9ybWFsIFBJTyBvciBNTUlPIHRoYXQgZG9lc24ndCBoYXZlIGFuIGlvcmVxCj4+ICsg ICAgICAgICAqICAgc2VydmVyIChpLmUuLCBieSBpZ25vcmluZyBpdCkuCj4+ICsgICAgICAgICAq Lwo+PiArICAgICAgICBzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcyA9IE5VTEw7Cj4+ICsgICAg ICAgIHAybV90eXBlX3QgcDJtdCA9IHAybV9pbnZhbGlkOwo+PiArCj4+ICsgICAgICAgIGlmICgg aXNfbW1pbyApCj4+ICsgICAgICAgIHsKPj4gKyAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZ21m biA9IHBhZGRyX3RvX3BmbihhZGRyKTsKPj4gKwo+PiArICAgICAgICAgICAgKHZvaWQpIGdldF9n Zm5fcXVlcnlfdW5sb2NrZWQoY3VycmQsIGdtZm4sICZwMm10KTsKPiBTdHJheSBjYXN0LgoKT0su IFdpbGwgcmVtb3ZlIGl0LgoKPgo+PiArICAgICAgICAgICAgaWYgKCBwMm10ID09IHAybV9pb3Jl cV9zZXJ2ZXIgKQo+PiArICAgICAgICAgICAgewo+PiArICAgICAgICAgICAgICAgIHVuc2lnbmVk IGludCBmbGFnczsKPj4gKwo+PiArICAgICAgICAgICAgICAgIHMgPSBwMm1fZ2V0X2lvcmVxX3Nl cnZlcihjdXJyZCwgJmZsYWdzKTsKPj4gKwo+PiArICAgICAgICAgICAgICAgIC8qCj4+ICsgICAg ICAgICAgICAgICAgICogSWYgcDJtdCBpcyBpb3JlcV9zZXJ2ZXIgYnV0IGlvcmVxX3NlcnZlciBp cyBOVUxMLAo+PiArICAgICAgICAgICAgICAgICAqIHdlIHByb2JhYmx5IGxvc3QgYSByYWNlIHdp dGggdW5iaW5kaW5nIG9mIGlvcmVxCj4+ICsgICAgICAgICAgICAgICAgICogc2VydmVyLCBqdXN0 IHJldHJ5IHRoZSBhY2Nlc3MuCj4+ICsgICAgICAgICAgICAgICAgICovCj4+ICsgICAgICAgICAg ICAgICAgaWYgKCBzID09IE5VTEwgKQo+PiArICAgICAgICAgICAgICAgIHsKPj4gKyAgICAgICAg ICAgICAgICAgICAgcmMgPSBYODZFTVVMX1JFVFJZOwo+PiArICAgICAgICAgICAgICAgICAgICB2 aW8tPmlvX3JlcS5zdGF0ZSA9IFNUQVRFX0lPUkVRX05PTkU7Cj4+ICsgICAgICAgICAgICAgICAg ICAgIGJyZWFrOwo+PiArICAgICAgICAgICAgICAgIH0KPj4gKwo+PiArICAgICAgICAgICAgICAg IC8qCj4+ICsgICAgICAgICAgICAgICAgICogSWYgdGhlIElPUkVRX01FTV9BQ0NFU1NfV1JJVEUg ZmxhZyBpcyBub3Qgc2V0LAo+PiArICAgICAgICAgICAgICAgICAqIHdlIHNob3VsZCBzZXQgcyB0 byBOVUxMLCBhbmQganVzdCBpZ25vcmUgc3VjaAo+PiArICAgICAgICAgICAgICAgICAqIGFjY2Vz cy4KPj4gKyAgICAgICAgICAgICAgICAgKi8KPj4gKyAgICAgICAgICAgICAgICBpZiAoICEoZmxh Z3MgJiBYRU5fRE1PUF9JT1JFUV9NRU1fQUNDRVNTX1dSSVRFKSApCj4+ICsgICAgICAgICAgICAg ICAgICAgIHMgPSBOVUxMOwo+IFdoYXQgaXMgdGhpcyBhYm91dD8gWW91IG9ubHkgYWxsb3cgV1JJ VEUgcmVnaXN0cmF0aW9ucywgc28gdGhpcyBsb29rcwo+IHRvIGJlIGRlYWQgY29kZS4gWWV0IGlm IGl0IGlzIG1lYW50IHRvIGd1YXJkIGFnYWluc3QgZnV0dXJlIGVuYWJsaW5nCj4gb2YgUkVBRCwg dGhlbiB0aGlzIGNsZWFybHkgc2hvdWxkIG5vdCBiZSBkb25lIGZvciByZWFkcy4KCkl0J3MgdG8g Z3VhcmQgYWdhaW5zdCBmdXR1cmUgZW11bGF0aW9uIG9mIFJFQUQuIFdlIGNhbiByZW1vdmUgaXQg Zm9yIG5vdy4KCj4+IC0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMKPj4gKysrIGIveGVu L2FyY2gveDg2L21tL3AybS1lcHQuYwo+PiBAQCAtMTMxLDYgKzEzMSwxMyBAQCBzdGF0aWMgdm9p ZCBlcHRfcDJtX3R5cGVfdG9fZmxhZ3Moc3RydWN0IHAybV9kb21haW4gKnAybSwgZXB0X2VudHJ5 X3QgKmVudHJ5LAo+PiAgICAgICAgICAgICAgIGVudHJ5LT5yID0gZW50cnktPncgPSBlbnRyeS0+ eCA9IDE7Cj4+ICAgICAgICAgICAgICAgZW50cnktPmEgPSBlbnRyeS0+ZCA9ICEhY3B1X2hhc192 bXhfZXB0X2FkOwo+PiAgICAgICAgICAgICAgIGJyZWFrOwo+PiArICAgICAgICBjYXNlIHAybV9p b3JlcV9zZXJ2ZXI6Cj4+ICsgICAgICAgICAgICBlbnRyeS0+ciA9IDE7Cj4+ICsgICAgICAgICAg ICBlbnRyeS0+dyA9ICEocDJtLT5pb3JlcS5mbGFncyAmIFhFTl9ETU9QX0lPUkVRX01FTV9BQ0NF U1NfV1JJVEUpOwo+IEFsb25nIHRoZSBsaW5lcyBvZiB0aGUgcHJldmlvdXMgY29tbWVudCAtIGlm IHlvdSBtZWFuIHRvIGhhdmUgdGhlCj4gY29kZSBjb3BlIHdpdGggUkVBRCwgcGxlYXNlIGFsc28g c2V0IC0+ciBhY2NvcmRpbmdseSwgb3IgYWRkIGEKPiBjb21tZW50IHdoeSB0aGlzIHdvbid0IGhh dmUgdGhlIGludGVuZGVkIGVmZmVjdCAoeWllbGRpbmcgYSBub3QKPiBwcmVzZW50IEVQVEUpLgoK SG93IGFib3V0IHdlIGtlZXAgdGhpcyBjb2RlIGFuZCBkbyBub3Qgc3VwcG9ydCBSRUFEPyBJJ2xs IHJlbW92ZSBhYm92ZSAKZGVhZCBjb2RlIGluIGh2bWVtdWxfZG9faW8oKS4KCj4+IEBAIC05Miw4 ICs5NCwxMyBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBwMm1fdHlwZV90b19mbGFncyhwMm1fdHlw ZV90IHQsIG1mbl90IG1mbiwKPj4gICAgICAgZGVmYXVsdDoKPj4gICAgICAgICAgIHJldHVybiBm bGFncyB8IF9QQUdFX05YX0JJVDsKPj4gICAgICAgY2FzZSBwMm1fZ3JhbnRfbWFwX3JvOgo+PiAt ICAgIGNhc2UgcDJtX2lvcmVxX3NlcnZlcjoKPj4gICAgICAgICAgIHJldHVybiBmbGFncyB8IFAy TV9CQVNFX0ZMQUdTIHwgX1BBR0VfTlhfQklUOwo+PiArICAgIGNhc2UgcDJtX2lvcmVxX3NlcnZl cjoKPj4gKyAgICAgICAgZmxhZ3MgfD0gUDJNX0JBU0VfRkxBR1MgfCBfUEFHRV9SVyB8IF9QQUdF X05YX0JJVDsKPj4gKyAgICAgICAgaWYgKCBwMm0tPmlvcmVxLmZsYWdzICYgWEVOX0RNT1BfSU9S RVFfTUVNX0FDQ0VTU19XUklURSApCj4+ICsgICAgICAgICAgICByZXR1cm4gZmxhZ3MgJiB+X1BB R0VfUlc7Cj4+ICsgICAgICAgIGVsc2UKPj4gKyAgICAgICAgICAgIHJldHVybiBmbGFnczsKPiBT dHJheSBlbHNlLiBCdXQgZXZlbiBiZXR0ZXIgd291bGQgaW1vIGJlCj4KPiAgICAgICAgICBpZiAo IHAybS0+aW9yZXEuZmxhZ3MgJiBYRU5fRE1PUF9JT1JFUV9NRU1fQUNDRVNTX1dSSVRFICkKPiAg ICAgICAgICAgICAgZmxhZ3MgJj0gfl9QQUdFX1JXOwo+ICAgICAgICAgIHJldHVybiBmbGFnczsK T2guIFRoYW5rcy4gOikKCj4+ICtzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcDJtX2dldF9pb3Jl cV9zZXJ2ZXIoc3RydWN0IGRvbWFpbiAqZCwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKmZsYWdzKQo+PiArewo+PiArICAgIHN0 cnVjdCBwMm1fZG9tYWluICpwMm0gPSBwMm1fZ2V0X2hvc3RwMm0oZCk7Cj4+ICsgICAgc3RydWN0 IGh2bV9pb3JlcV9zZXJ2ZXIgKnM7Cj4+ICsKPj4gKyAgICBzcGluX2xvY2soJnAybS0+aW9yZXEu bG9jayk7Cj4+ICsKPj4gKyAgICBzID0gcDJtLT5pb3JlcS5zZXJ2ZXI7Cj4+ICsgICAgKmZsYWdz ID0gcDJtLT5pb3JlcS5mbGFnczsKPj4gKwo+PiArICAgIHNwaW5fdW5sb2NrKCZwMm0tPmlvcmVx LmxvY2spOwo+PiArICAgIHJldHVybiBzOwo+PiArfQo+IEknbSBhZnJhaWQgdGhpcyBxdWVzdGlv biB3YXMgYXNrZWQgYmVmb3JlLCBidXQgc2luY2UgdGhlcmUncyBubwo+IGNvbW1lbnQgaGVyZSBv ciBhbnl3aGVyZSwgSSBjYW4ndCByZWNhbGwgaWYgdGhlcmUgd2FzIGEgcmVhc29uIHdoeQo+IHMg cG90ZW50aWFsbHkgYmVpbmcgc3RhbGUgYnkgdGhlIHRpbWUgdGhlIGNhbGxlciBsb29rcyBhdCBp dCBpcyBub3QgYQo+IHByb2JsZW0uCgpXZWxsLCBpdCBpcyBwb3NzaWJlIHRoYXQgcyBpcyBzdGFs ZS4gSSBkaWQgbm90IHRha2UgaXQgYXMgYSBwcm9ibGVtIApiZWNhdXNlIHRoZSBkZXZpY2UgbW9k ZWwKd2lsbCBsYXRlciBkaXNjYXJkIHN1Y2ggaW8gcmVxdWVzdC4gQW5kIEkgYmVsaWV2ZSBjdXJy ZW50IApodm1fc2VsZWN0X2lvcmVxX3NlcnZlcigpIGFsc28KaGFzIHRoZSBzYW1lIGlzc3VlIC0g dGhlIHJldHVybmVkIHMgc2hvdWxkIGJlIGNvbnNpZGVyZWQgdG8gYmUgc3RhbGUsIGlmIAp0aGUg TU1JTy9QSU8KYWRkcmVzcyBpcyByZW1vdmVkIGZyb20gdGhlIGlvcmVxIHNlcnZlcidzIHJhbmdl c2V0LgoKQW5vdGhlciB0aG91Z2h0IGlzLCBpZiB5b3UgdGhpbmsgaXQgaXMgaW5hcHByb3ByaWF0 ZSBmb3IgZGV2aWNlIG1vZGVsIHRvIApkbyB0aGUgY2hlY2ssCndlIGNhbiB1c2Ugc3Bpbl9sb2Nr X3JlY3Vyc2l2ZSBvbiBpb3JlcV9zZXJ2ZXIubG9jayB0byBwcm90ZWN0IGFsbCB0aGUgCmlvcmVx IHNlcnZlciBzZWxlY3QKYW5kIHJlbGVhc2UgdGhlIGxvY2sgYWZ0ZXIgdGhlIGlvcmVxIHNlcnZl ciBpcyBzZW50IG91dC4KCj4+IC0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaAo+ PiArKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmgKPj4gQEAgLTMxOCw2ICszMTgs MzAgQEAgc3RydWN0IHhlbl9kbV9vcF9pbmplY3RfbXNpIHsKPj4gICAgICAgdWludDY0X2FsaWdu ZWRfdCBhZGRyOwo+PiAgIH07Cj4+ICAgCj4+ICsvKgo+PiArICogWEVOX0RNT1BfbWFwX21lbV90 eXBlX3RvX2lvcmVxX3NlcnZlciA6IG1hcCBvciB1bm1hcCB0aGUgSU9SRVEgU2VydmVyIDxpZD4K Pj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byBzcGVjaWZpYyBt ZW1yb3kgdHlwZSA8dHlwZT4KPj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBmb3Igc3BlY2lmaWMgYWNjZXNzZXMgPGZsYWdzPgo+PiArICoKPj4gKyAqIEZvciBub3cs IGZsYWdzIG9ubHkgYWNjZXB0IHRoZSB2YWx1ZSBvZiBYRU5fRE1PUF9JT1JFUV9NRU1fQUNDRVNT X1dSSVRFLAo+PiArICogd2hpY2ggbWVhbnMgb25seSB3cml0ZSBvcGVyYXRpb25zIGFyZSB0byBi ZSBmb3J3YXJkZWQgdG8gYW4gaW9yZXEgc2VydmVyLgo+PiArICogU3VwcG9ydCBmb3IgdGhlIGVt dWxhdGlvbiBvZiByZWFkIG9wZXJhdGlvbnMgY2FuIGJlIGFkZGVkIHdoZW4gYW4gaW9yZXEKPj4g KyAqIHNlcnZlciBoYXMgc3VjaCByZXF1aXJlbWVudCBpbiBmdXR1cmUuCj4+ICsgKi8KPj4gKyNk ZWZpbmUgWEVOX0RNT1BfbWFwX21lbV90eXBlX3RvX2lvcmVxX3NlcnZlciAxNQo+PiArCj4+ICtz dHJ1Y3QgeGVuX2RtX29wX21hcF9tZW1fdHlwZV90b19pb3JlcV9zZXJ2ZXIgewo+PiArICAgIGlv c2VydmlkX3QgaWQ7ICAgICAgLyogSU4gLSBpb3JlcSBzZXJ2ZXIgaWQgKi8KPj4gKyAgICB1aW50 MTZfdCB0eXBlOyAgICAgIC8qIElOIC0gbWVtb3J5IHR5cGUgKi8KPj4gKyAgICB1aW50MTZfdCBw YWQ7Cj4gUGVyaGFwcyB0aGVyZSB3YXMgcGFkZGluZyBuZWVkZWQgd2hlbiB0aGlzIHdhcyBhIGh2 bW9wLCBidXQKPiBub3cgdGhlIHBhZGRpbmcgZG9lcyBleGFjdGx5IHRoZSB3cm9uZyB0aGluZy4K ClJpZ2h0LCBwYWRkaW5nIGlzIHVzZWxlc3MgaW4gdGhpcyBuZXcgc3RydWN0dXJlLiBJIHdpbGwg cmVtb3ZlIGl0IGlmIApvdGhlciBmaWVsZCBkb2VzIG5vdCBjaGFuZ2UoSSBwcm9wb3NlZAphIGNo YW5nZSBmb3IgZmxhZyBmaWVsZCBpbiByZXBseSB0byBBbmRyZXcncyBjb21tZW50cyBvbiBwYXRj aCA1KS4gVGhhbmsgCnlvdSwgSmFuLgoKWXUKPgo+IEphbgo+CgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4t ZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==