From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: Re: [PATCH v7 6/6] vtd: add lookup_page method to iommu_ops Date: Thu, 13 Sep 2018 15:22:34 +0000 Message-ID: References: <20180913152128.6114-1-paul.durrant@citrix.com> <20180913152128.6114-7-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1g0TS6-0000hT-W1 for xen-devel@lists.xenproject.org; Thu, 13 Sep 2018 15:22:43 +0000 In-Reply-To: <20180913152128.6114-7-paul.durrant@citrix.com> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Paul Durrant , "xen-devel@lists.xenproject.org" Cc: Kevin Tian , Wei Liu , George Dunlap , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBpcyBzdGFsZS4gU29ycnkgZm9yIHRoZSBub2lzZS4KCiAgUGF1bAoKPiAtLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZyb206IFBhdWwgRHVycmFudCBbbWFpbHRvOnBhdWwu ZHVycmFudEBjaXRyaXguY29tXQo+IFNlbnQ6IDEzIFNlcHRlbWJlciAyMDE4IDE2OjIxCj4gVG86 IHhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwo+IENjOiBQYXVsIER1cnJhbnQgPFBhdWwu RHVycmFudEBjaXRyaXguY29tPjsgV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT47Cj4gS2V2 aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+OyBKYW4gQmV1bGljaCA8amJldWxpY2hAc3Vz ZS5jb20+OyBHZW9yZ2UKPiBEdW5sYXAgPEdlb3JnZS5EdW5sYXBAY2l0cml4LmNvbT4KPiBTdWJq ZWN0OiBbUEFUQ0ggdjcgNi82XSB2dGQ6IGFkZCBsb29rdXBfcGFnZSBtZXRob2QgdG8gaW9tbXVf b3BzCj4gCj4gVGhpcyBwYXRjaCBhZGRzIGEgbmV3IG1ldGhvZCB0byB0aGUgVlQtZCBJT01NVSBp bXBsZW1lbnRhdGlvbiB0byBmaW5kIHRoZQo+IE1GTiBjdXJyZW50bHkgbWFwcGVkIGJ5IHRoZSBz cGVjaWZpZWQgREZOIGFsb25nIHdpdGggYSB3cmFwcGVyIGZ1bmN0aW9uCj4gaW4gZ2VuZXJpYyBJ T01NVSBjb2RlIHRvIGNhbGwgdGhlIGltcGxlbWVudGF0aW9uIGlmIGl0IGV4aXN0cy4KPiAKPiBU aGlzIHBhdGNoIGFsc28gY2xlYW5zIHVwIHRoZSBpbml0aWFsaXplcnMgaW4gaW50ZWxfaW9tbXVf bWFwX3BhZ2UoKSBhbmQKPiB1c2VzIGFycmF5LXN0eWxlIGRlcmVmZXJlbmNlIHRoZXJlLCBmb3Ig Y29uc2lzdGVuY3kuIEEgbWlzc2luZyBjaGVjayBmb3IKPiBzaGFyZWQgRVBUIGlzIGFsc28gYWRk ZWQgdG8gaW50ZWxfaW9tbXVfdW5tYXBfcGFnZSgpLgo+IAo+IE5PVEU6IFRoaXMgcGF0Y2ggb25s eSBhZGRzIGEgWGVuLWludGVybmFsIGludGVyZmFjZS4gVGhpcyB3aWxsIGJlIHVzZWQgYnkKPiAg ICAgICBhIHN1YnNlcXVlbnQgcGF0Y2guCj4gICAgICAgQW5vdGhlciBzdWJzZXF1ZW50IHBhdGNo IHdpbGwgYWRkIHNpbWlsYXIgZnVuY3Rpb25hbGl0eSBmb3IgQU1ECj4gICAgICAgSU9NTVVzLgo+ IAo+IFNpZ25lZC1vZmYtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+ Cj4gLS0tCj4gQ2M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+Cj4gQ2M6IEtldmluIFRp YW4gPGtldmluLnRpYW5AaW50ZWwuY29tPgo+IENjOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3Vz ZS5jb20+Cj4gQ2M6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAY2l0cml4LmNvbT4KPiAK PiB2NzoKPiAgLSBSZS1iYXNlIGFuZCByZS1uYW1lIEJGTiAtPiBERk4uCj4gIC0gQWRkIG1pc3Np bmcgY2hlY2tzIGZvciBzaGFyZWQgRVBUIGFuZCBpb21tdV9wYXNzdGhyb3VnaC4KPiAgLSBSZW1v dmUgdW5uZWNlc3NhcnkgaW5pdGlhbGl6ZXJzIGFuZCB1c2UgYXJyYXktc3R5bGUgZGVyZWZlcmVu Y2UuCj4gIC0gRHJvcCBXZWkncyBSLWIgYmVjYXVzZSBvZiBjb2RlIGNodXJuLgo+IAo+IHYzOgo+ ICAtIEFkZHJlc3NlZCBjb21tZW50cyBmcm9tIEdlb3JnZS4KPiAKPiB2MjoKPiAgLSBBZGRyZXNz ZWQgc29tZSBjb21tZW50cyBmcm9tIEphbi4KPiAtLS0KPiAgeGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gvaW9tbXUuYyAgICAgfCAxMSArKysrKysrKwo+ICB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92 dGQvaW9tbXUuYyB8IDUyCj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQo+ ICB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuaCB8ICAzICsrKwo+ICB4ZW4vaW5j bHVkZS94ZW4vaW9tbXUuaCAgICAgICAgICAgICB8ICA0ICsrKwo+ICA0IGZpbGVzIGNoYW5nZWQs IDY4IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMKPiBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lv bW11LmMKPiBpbmRleCBhMTZmMWEwYzY2Li41MmUzZjUwMGM3IDEwMDY0NAo+IC0tLSBhL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMKPiArKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC9pb21tdS5jCj4gQEAgLTI5Niw2ICsyOTYsMTcgQEAgaW50IGlvbW11X3VubWFwX3BhZ2Uoc3Ry dWN0IGRvbWFpbiAqZCwgZGZuX3QgZGZuKQo+ICAgICAgcmV0dXJuIHJjOwo+ICB9Cj4gCj4gK2lu dCBpb21tdV9sb29rdXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCBkZm5fdCBkZm4sIG1mbl90ICpt Zm4sCj4gKyAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKmZsYWdzKQo+ICt7Cj4g KyAgICBjb25zdCBzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCA9IGRvbV9pb21tdShkKTsKPiArCj4g KyAgICBpZiAoICFpb21tdV9lbmFibGVkIHx8ICFoZC0+cGxhdGZvcm1fb3BzICkKPiArICAgICAg ICByZXR1cm4gLUVPUE5PVFNVUFA7Cj4gKwo+ICsgICAgcmV0dXJuIGhkLT5wbGF0Zm9ybV9vcHMt Pmxvb2t1cF9wYWdlKGQsIGRmbiwgbWZuLCBmbGFncyk7Cj4gK30KPiArCj4gIHN0YXRpYyB2b2lk IGlvbW11X2ZyZWVfcGFnZXRhYmxlcyh1bnNpZ25lZCBsb25nIHVudXNlZCkKPiAgewo+ICAgICAg ZG8gewo+IGRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYwo+ IGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKPiBpbmRleCAwMTYzYmI5NDli Li42NjIyYzJkZDRjIDEwMDY0NAo+IC0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9p b21tdS5jCj4gKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKPiBAQCAt MTc3MCw3ICsxNzcwLDcgQEAgc3RhdGljIGludCBfX211c3RfY2hlY2sgaW50ZWxfaW9tbXVfbWFw X3BhZ2Uoc3RydWN0Cj4gZG9tYWluICpkLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpCj4gIHsKPiAgICAgIHN0cnVjdCBk b21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGQpOwo+IC0gICAgc3RydWN0IGRtYV9wdGUgKnBh Z2UgPSBOVUxMLCAqcHRlID0gTlVMTCwgb2xkLCBuZXcgPSB7IDAgfTsKPiArICAgIHN0cnVjdCBk bWFfcHRlICpwYWdlLCAqcHRlLCBvbGQsIG5ldyA9IHt9Owo+ICAgICAgdTY0IHBnX21hZGRyOwo+ ICAgICAgaW50IHJjID0gMDsKPiAKPiBAQCAtMTc5MCw5ICsxNzkwLDExIEBAIHN0YXRpYyBpbnQg X19tdXN0X2NoZWNrIGludGVsX2lvbW11X21hcF9wYWdlKHN0cnVjdAo+IGRvbWFpbiAqZCwKPiAg ICAgICAgICBzcGluX3VubG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsKPiAgICAgICAgICBy ZXR1cm4gLUVOT01FTTsKPiAgICAgIH0KPiArCj4gICAgICBwYWdlID0gKHN0cnVjdCBkbWFfcHRl ICopbWFwX3Z0ZF9kb21haW5fcGFnZShwZ19tYWRkcik7Cj4gLSAgICBwdGUgPSBwYWdlICsgKGRm bl94KGRmbikgJiBMRVZFTF9NQVNLKTsKPiArICAgIHB0ZSA9ICZwYWdlW2Rmbl94KGRmbikgJiBM RVZFTF9NQVNLXTsKPiAgICAgIG9sZCA9ICpwdGU7Cj4gKwo+ICAgICAgZG1hX3NldF9wdGVfYWRk cihuZXcsIG1mbl90b19tYWRkcihtZm4pKTsKPiAgICAgIGRtYV9zZXRfcHRlX3Byb3QobmV3LAo+ ICAgICAgICAgICAgICAgICAgICAgICAoKGZsYWdzICYgSU9NTVVGX3JlYWRhYmxlKSA/IERNQV9Q VEVfUkVBRCAgOiAwKSB8Cj4gQEAgLTE4MDgsNiArMTgxMCw3IEBAIHN0YXRpYyBpbnQgX19tdXN0 X2NoZWNrIGludGVsX2lvbW11X21hcF9wYWdlKHN0cnVjdAo+IGRvbWFpbiAqZCwKPiAgICAgICAg ICB1bm1hcF92dGRfZG9tYWluX3BhZ2UocGFnZSk7Cj4gICAgICAgICAgcmV0dXJuIDA7Cj4gICAg ICB9Cj4gKwo+ICAgICAgKnB0ZSA9IG5ldzsKPiAKPiAgICAgIGlvbW11X2ZsdXNoX2NhY2hlX2Vu dHJ5KHB0ZSwgc2l6ZW9mKHN0cnVjdCBkbWFfcHRlKSk7Cj4gQEAgLTE4MjMsNiArMTgyNiwxMCBA QCBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBpbnRlbF9pb21tdV9tYXBfcGFnZShzdHJ1Y3QKPiBk b21haW4gKmQsCj4gIHN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGludGVsX2lvbW11X3VubWFwX3Bh Z2Uoc3RydWN0IGRvbWFpbiAqZCwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBkZm5fdCBkZm4pCj4gIHsKPiArICAgIC8qIERvIG5vdGhpbmcgaWYgVlQt ZCBzaGFyZXMgRVBUIHBhZ2UgdGFibGUgKi8KPiArICAgIGlmICggaW9tbXVfdXNlX2hhcF9wdChk KSApCj4gKyAgICAgICAgcmV0dXJuIDA7Cj4gKwo+ICAgICAgLyogRG8gbm90aGluZyBpZiBoYXJk d2FyZSBkb21haW4gYW5kIGlvbW11IHN1cHBvcnRzIHBhc3MgdGhydS4gKi8KPiAgICAgIGlmICgg aW9tbXVfcGFzc3Rocm91Z2ggJiYgaXNfaGFyZHdhcmVfZG9tYWluKGQpICkKPiAgICAgICAgICBy ZXR1cm4gMDsKPiBAQCAtMTgzMCw2ICsxODM3LDQ2IEBAIHN0YXRpYyBpbnQgX19tdXN0X2NoZWNr Cj4gaW50ZWxfaW9tbXVfdW5tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLAo+ICAgICAgcmV0dXJu IGRtYV9wdGVfY2xlYXJfb25lKGQsIGRmbl90b19kYWRkcihkZm4pKTsKPiAgfQo+IAo+ICtzdGF0 aWMgaW50IGludGVsX2lvbW11X2xvb2t1cF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIGRmbl90IGRm biwgbWZuX3QKPiAqbWZuLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu c2lnbmVkIGludCAqZmxhZ3MpCj4gK3sKPiArICAgIHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0g ZG9tX2lvbW11KGQpOwo+ICsgICAgc3RydWN0IGRtYV9wdGUgKnBhZ2UsIHZhbDsKPiArICAgIHU2 NCBwZ19tYWRkcjsKPiArCj4gKyAgICAvKiBGYWlsIGlmIFZULWQgc2hhcmVzIEVQVCBwYWdlIHRh YmxlICovCj4gKyAgICBpZiAoIGlvbW11X3VzZV9oYXBfcHQoZCkgKQo+ICsgICAgICAgIHJldHVy biAtRU5PRU5UOwo+ICsKPiArICAgIC8qIEZhaWwgaWYgaGFyZHdhcmUgZG9tYWluIGFuZCBpb21t dSBzdXBwb3J0cyBwYXNzIHRocnUuICovCj4gKyAgICBpZiAoIGlvbW11X3Bhc3N0aHJvdWdoICYm IGlzX2hhcmR3YXJlX2RvbWFpbihkKSApCj4gKyAgICAgICAgcmV0dXJuIC1FTk9FTlQ7Cj4gKwo+ ICsgICAgc3Bpbl9sb2NrKCZoZC0+YXJjaC5tYXBwaW5nX2xvY2spOwo+ICsKPiArICAgIHBnX21h ZGRyID0gYWRkcl90b19kbWFfcGFnZV9tYWRkcihkLCBkZm5fdG9fZGFkZHIoZGZuKSwgMCk7Cj4g KyAgICBpZiAoIHBnX21hZGRyID09IDAgKQo+ICsgICAgewo+ICsgICAgICAgIHNwaW5fdW5sb2Nr KCZoZC0+YXJjaC5tYXBwaW5nX2xvY2spOwo+ICsgICAgICAgIHJldHVybiAtRU5PTUVNOwo+ICsg ICAgfQo+ICsKPiArICAgIHBhZ2UgPSBtYXBfdnRkX2RvbWFpbl9wYWdlKHBnX21hZGRyKTsKPiAr ICAgIHZhbCA9IHBhZ2VbZGZuX3goZGZuKSAmIExFVkVMX01BU0tdOwo+ICsKPiArICAgIHVubWFw X3Z0ZF9kb21haW5fcGFnZShwYWdlKTsKPiArICAgIHNwaW5fdW5sb2NrKCZoZC0+YXJjaC5tYXBw aW5nX2xvY2spOwo+ICsKPiArICAgIGlmICggIWRtYV9wdGVfcHJlc2VudCh2YWwpICkKPiArICAg ICAgICByZXR1cm4gLUVOT0VOVDsKPiArCj4gKyAgICAqbWZuID0gbWFkZHJfdG9fbWZuKGRtYV9w dGVfYWRkcih2YWwpKTsKPiArICAgICpmbGFncyA9IGRtYV9wdGVfcmVhZCh2YWwpID8gSU9NTVVG X3JlYWRhYmxlIDogMDsKPiArICAgICpmbGFncyB8PSBkbWFfcHRlX3dyaXRlKHZhbCkgPyBJT01N VUZfd3JpdGFibGUgOiAwOwo+ICsKPiArICAgIHJldHVybiAwOwo+ICt9Cj4gKwo+ICBpbnQgaW9t bXVfcHRlX2ZsdXNoKHN0cnVjdCBkb21haW4gKmQsIHVpbnQ2NF90IGRmbiwgdWludDY0X3QgKnB0 ZSwKPiAgICAgICAgICAgICAgICAgICAgICBpbnQgb3JkZXIsIGludCBwcmVzZW50KQo+ICB7Cj4g QEAgLTI2NTUsNiArMjcwMiw3IEBAIGNvbnN0IHN0cnVjdCBpb21tdV9vcHMgaW50ZWxfaW9tbXVf b3BzID0gewo+ICAgICAgLnRlYXJkb3duID0gaW9tbXVfZG9tYWluX3RlYXJkb3duLAo+ICAgICAg Lm1hcF9wYWdlID0gaW50ZWxfaW9tbXVfbWFwX3BhZ2UsCj4gICAgICAudW5tYXBfcGFnZSA9IGlu dGVsX2lvbW11X3VubWFwX3BhZ2UsCj4gKyAgICAubG9va3VwX3BhZ2UgPSBpbnRlbF9pb21tdV9s b29rdXBfcGFnZSwKPiAgICAgIC5mcmVlX3BhZ2VfdGFibGUgPSBpb21tdV9mcmVlX3BhZ2VfdGFi bGUsCj4gICAgICAucmVhc3NpZ25fZGV2aWNlID0gcmVhc3NpZ25fZGV2aWNlX293bmVyc2hpcCwK PiAgICAgIC5nZXRfZGV2aWNlX2dyb3VwX2lkID0gaW50ZWxfaW9tbXVfZ3JvdXBfaWQsCj4gZGlm ZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5oCj4gYi94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuaAo+IGluZGV4IDcyYzFhMmUzY2QuLjQ3YmRmY2I1 ZWEgMTAwNjQ0Cj4gLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmgKPiAr KysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuaAo+IEBAIC0yNzIsNiArMjcy LDkgQEAgc3RydWN0IGRtYV9wdGUgewo+ICAjZGVmaW5lIGRtYV9zZXRfcHRlX3Byb3QocCwgcHJv dCkgZG8geyBcCj4gICAgICAgICAgKHApLnZhbCA9ICgocCkudmFsICYgfkRNQV9QVEVfUFJPVCkg fCAoKHByb3QpICYgRE1BX1BURV9QUk9UKTsgXAo+ICAgICAgfSB3aGlsZSAoMCkKPiArI2RlZmlu ZSBkbWFfcHRlX3Byb3QocCkgKChwKS52YWwgJiBETUFfUFRFX1BST1QpCj4gKyNkZWZpbmUgZG1h X3B0ZV9yZWFkKHApIChkbWFfcHRlX3Byb3QocCkgJiBETUFfUFRFX1JFQUQpCj4gKyNkZWZpbmUg ZG1hX3B0ZV93cml0ZShwKSAoZG1hX3B0ZV9wcm90KHApICYgRE1BX1BURV9XUklURSkKPiAgI2Rl ZmluZSBkbWFfcHRlX2FkZHIocCkgKChwKS52YWwgJiBQQUREUl9NQVNLICYgUEFHRV9NQVNLXzRL KQo+ICAjZGVmaW5lIGRtYV9zZXRfcHRlX2FkZHIocCwgYWRkcikgZG8ge1wKPiAgICAgICAgICAg ICAgKHApLnZhbCB8PSAoKGFkZHIpICYgUEFHRV9NQVNLXzRLKTsgfSB3aGlsZSAoMCkKPiBkaWZm IC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL2lvbW11LmggYi94ZW4vaW5jbHVkZS94ZW4vaW9tbXUu aAo+IGluZGV4IDllMGI0ZTg2MzguLmJlYmRkYzJkYjQgMTAwNjQ0Cj4gLS0tIGEveGVuL2luY2x1 ZGUveGVuL2lvbW11LmgKPiArKysgYi94ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaAo+IEBAIC0xMDAs NiArMTAwLDggQEAgdm9pZCBpb21tdV90ZWFyZG93bihzdHJ1Y3QgZG9tYWluICpkKTsKPiAgaW50 IF9fbXVzdF9jaGVjayBpb21tdV9tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCBkZm5fdCBkZm4s Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWZuX3QgbWZuLCB1bnNpZ25lZCBp bnQgZmxhZ3MpOwo+ICBpbnQgX19tdXN0X2NoZWNrIGlvbW11X3VubWFwX3BhZ2Uoc3RydWN0IGRv bWFpbiAqZCwgZGZuX3QgZGZuKTsKPiAraW50IF9fbXVzdF9jaGVjayBpb21tdV9sb29rdXBfcGFn ZShzdHJ1Y3QgZG9tYWluICpkLCBkZm5fdCBkZm4sIG1mbl90Cj4gKm1mbiwKPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKmZsYWdzKTsKPiAKPiAgZW51 bSBpb21tdV9mZWF0dXJlCj4gIHsKPiBAQCAtMTkwLDYgKzE5Miw4IEBAIHN0cnVjdCBpb21tdV9v cHMgewo+ICAgICAgaW50IF9fbXVzdF9jaGVjayAoKm1hcF9wYWdlKShzdHJ1Y3QgZG9tYWluICpk LCBkZm5fdCBkZm4sIG1mbl90IG1mbiwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdW5zaWduZWQgaW50IGZsYWdzKTsKPiAgICAgIGludCBfX211c3RfY2hlY2sgKCp1bm1hcF9w YWdlKShzdHJ1Y3QgZG9tYWluICpkLCBkZm5fdCBkZm4pOwo+ICsgICAgaW50IF9fbXVzdF9jaGVj ayAoKmxvb2t1cF9wYWdlKShzdHJ1Y3QgZG9tYWluICpkLCBkZm5fdCBkZm4sIG1mbl90Cj4gKm1m biwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpm bGFncyk7Cj4gICAgICB2b2lkICgqZnJlZV9wYWdlX3RhYmxlKShzdHJ1Y3QgcGFnZV9pbmZvICop Owo+ICAjaWZkZWYgQ09ORklHX1g4Ngo+ICAgICAgdm9pZCAoKnVwZGF0ZV9pcmVfZnJvbV9hcGlj KSh1bnNpZ25lZCBpbnQgYXBpYywgdW5zaWduZWQgaW50IHJlZywKPiB1bnNpZ25lZCBpbnQgdmFs dWUpOwo+IC0tCj4gMi4xMS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJv amVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hl bi1kZXZlbA==