From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: Re: [RFC Patch v4 2/8] ioreq: bump the number of IOREQ page to 4 pages Date: Wed, 6 Dec 2017 15:04:11 +0000 Message-ID: References: <1512546614-9937-1-git-send-email-chao.gao@intel.com> <1512546614-9937-3-git-send-email-chao.gao@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1512546614-9937-3-git-send-email-chao.gao@intel.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: 'Chao Gao' , "xen-devel@lists.xen.org" Cc: Stefano Stabellini , Wei Liu , Andrew Cooper , "Tim (Xen.org)" , George Dunlap , Jan Beulich , Ian Jackson List-Id: xen-devel@lists.xenproject.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZyb206IENoYW8gR2FvIFttYWlsdG86Y2hh by5nYW9AaW50ZWwuY29tXQo+IFNlbnQ6IDA2IERlY2VtYmVyIDIwMTcgMDc6NTAKPiBUbzogeGVu LWRldmVsQGxpc3RzLnhlbi5vcmcKPiBDYzogQ2hhbyBHYW8gPGNoYW8uZ2FvQGludGVsLmNvbT47 IFBhdWwgRHVycmFudAo+IDxQYXVsLkR1cnJhbnRAY2l0cml4LmNvbT47IFRpbSAoWGVuLm9yZykg PHRpbUB4ZW4ub3JnPjsgU3RlZmFubyBTdGFiZWxsaW5pCj4gPHNzdGFiZWxsaW5pQGtlcm5lbC5v cmc+OyBLb25yYWQgUnplc3p1dGVrIFdpbGsKPiA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT47IEph biBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT47IEdlb3JnZQo+IER1bmxhcCA8R2VvcmdlLkR1 bmxhcEBjaXRyaXguY29tPjsgQW5kcmV3IENvb3Blcgo+IDxBbmRyZXcuQ29vcGVyM0BjaXRyaXgu Y29tPjsgV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT47IElhbiBKYWNrc29uCj4gPElhbi5K YWNrc29uQGNpdHJpeC5jb20+Cj4gU3ViamVjdDogW1JGQyBQYXRjaCB2NCAyLzhdIGlvcmVxOiBi dW1wIHRoZSBudW1iZXIgb2YgSU9SRVEgcGFnZSB0byA0Cj4gcGFnZXMKPiAKPiBPbmUgNEstYnl0 ZSBwYWdlIGF0IG1vc3QgY29udGFpbnMgMTI4ICdpb3JlcV90Jy4gSW4gb3JkZXIgdG8gcmVtb3Zl IHRoZSB2Y3B1Cj4gbnVtYmVyIGNvbnN0cmFpbnQgaW1wb3NlZCBieSBvbmUgSU9SRVEgcGFnZSwg YnVtcCB0aGUgbnVtYmVyIG9mIElPUkVRCj4gcGFnZSB0bwo+IDQgcGFnZXMuIFdpdGggdGhpcyBw YXRjaCwgbXVsdGlwbGUgcGFnZXMgY2FuIGJlIHVzZWQgYXMgSU9SRVEgcGFnZS4KPiAKPiBCYXNp Y2FsbHksIHRoaXMgcGF0Y2ggZXh0ZW5kcyAnaW9yZXEnIGZpZWxkIGluIHN0cnVjdCBodm1faW9y ZXFfc2VydmVyIHRvIGFuCj4gYXJyYXkuIEFsbCBhY2Nlc3NlcyB0byAnaW9yZXEnIGZpZWxkIHN1 Y2ggYXMgJ3MtPmlvcmVxJyBhcmUgcmVwbGFjZWQgd2l0aAo+IEZPUl9FQUNIX0lPUkVRX1BBR0Ug bWFjcm8uCj4gCj4gSW4gb3JkZXIgdG8gYWNjZXNzIGFuIElPUkVRIHBhZ2UsIFFFTVUgc2hvdWxk IGdldCB0aGUgZ21mbiBhbmQgbWFwIHRoaXMKPiBnbWZuCj4gdG8gaXRzIHZpcnR1YWwgYWRkcmVz cyBzcGFjZS4KCk5vLiBUaGVyZSdzIG5vIG5lZWQgdG8gZXh0ZW5kIHRoZSAnbGVnYWN5JyBtZWNo YW5pc20gb2YgdXNpbmcgbWFnaWMgcGFnZSBnZm5zLiBZb3Ugc2hvdWxkIG9ubHkgaGFuZGxlIHRo ZSBjYXNlIHdoZXJlIHRoZSBtZm5zIGFyZSBhbGxvY2F0ZWQgb24gZGVtYW5kIChzZWUgdGhlIGNh bGwgdG8gaHZtX2lvcmVxX3NlcnZlcl9hbGxvY19wYWdlcygpIGluIGh2bV9nZXRfaW9yZXFfc2Vy dmVyX2ZyYW1lKCkpLiBUaGUgbnVtYmVyIG9mIGd1ZXN0IHZjcHVzIGlzIGtub3duIGF0IHRoaXMg cG9pbnQgc28gdGhlIGNvcnJlY3QgbnVtYmVyIG9mIHBhZ2VzIGNhbiBiZSBhbGxvY2F0ZWQuIElm IHRoZSBjcmVhdG9yIG9mIHRoZSBpb3JlcSBzZXJ2ZXIgYXR0ZW1wdHMgdG8gdXNlIHRoZSBsZWdh Y3kgaHZtX2dldF9pb3JlcV9zZXJ2ZXJfaW5mbygpIGFuZCB0aGUgZ3Vlc3QgaGFzID4xMjggdmNw dXMgdGhlbiB0aGUgY2FsbCBzaG91bGQgZmFpbC4KCiAgUGF1bAoKPiBOb3cgdGhlcmUgYXJlIHNl dmVyYWwgcGFnZXMsIHRvIGJlIGNvbXBhdGlibGUKPiB3aXRoIHByZXZpb3VzIFFFTVUsIHRoZSBp bnRlcmZhY2UgdG8gZ2V0IHRoZSBnbWZuIGRvZXNuJ3QgY2hhbmdlLiBCdXQKPiBuZXdlcgo+IFFF TVUgbmVlZHMgdG8gZ2V0IHRoZSBnbWZuIHJlcGVhdGx5IHVudGlsIGEgc2FtZSBnbWZuIGlzIGZv dW5kLiBUbwo+IGltcGxlbWVudAo+IHRoaXMsIGFuIGludGVybmFsIGluZGV4IGlzIGludHJvZHVj ZWQ6IHdoZW4gUUVNVSBxdWVyaWVzIHRoZSBnbWZuLCB0aGUgZ21mbgo+IG9mCj4gSU9SRVEgcGFn ZSByZWZlcmVuY2VkIGJ5IHRoZSBpbmRleCBpcyByZXR1cm5lZC4gIEFmdGVyIGVhY2ggb3BlcmF0 aW9uLCB0aGUKPiBpbmRleCBpbmNyZWFzZXMgYnkgMSBhbmQgcmV3aW5kcyB3aGVuIGl0IG92ZXJm bG93cy4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBDaGFvIEdhbyA8Y2hhby5nYW9AaW50ZWwuY29tPgo+ IC0tLQo+IHY0Ogo+ICAtIG5ldwo+IC0tLQo+ICB0b29scy9saWJ4Yy9pbmNsdWRlL3hjX2RvbS5o ICAgICB8ICAgMiArLQo+ICB0b29scy9saWJ4Yy94Y19kb21feDg2LmMgICAgICAgICB8ICAgNiAr LQo+ICB4ZW4vYXJjaC94ODYvaHZtL2h2bS5jICAgICAgICAgICB8ICAgMSArCj4gIHhlbi9hcmNo L3g4Ni9odm0vaW9yZXEuYyAgICAgICAgIHwgMTE2Cj4gKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tCj4gIHhlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2RvbWFpbi5oIHwgICA2 ICstCj4gIHhlbi9pbmNsdWRlL3B1YmxpYy9odm0vaW9yZXEuaCAgIHwgICAyICsKPiAgeGVuL2lu Y2x1ZGUvcHVibGljL2h2bS9wYXJhbXMuaCAgfCAgIDggKystCj4gIDcgZmlsZXMgY2hhbmdlZCwg MTEwIGluc2VydGlvbnMoKyksIDMxIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS90b29s cy9saWJ4Yy9pbmNsdWRlL3hjX2RvbS5oIGIvdG9vbHMvbGlieGMvaW5jbHVkZS94Y19kb20uaAo+ IGluZGV4IDQ1YzlkNjcuLjJmOGI0MTIgMTAwNjQ0Cj4gLS0tIGEvdG9vbHMvbGlieGMvaW5jbHVk ZS94Y19kb20uaAo+ICsrKyBiL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGNfZG9tLmgKPiBAQCAtMjAs NyArMjAsNyBAQAo+ICAjaW5jbHVkZSA8eGVuZ3Vlc3QuaD4KPiAKPiAgI2RlZmluZSBJTlZBTElE X1BGTiAoKHhlbl9wZm5fdCktMSkKPiAtI2RlZmluZSBYODZfSFZNX05SX1NQRUNJQUxfUEFHRVMg ICAgOAo+ICsjZGVmaW5lIFg4Nl9IVk1fTlJfU1BFQ0lBTF9QQUdFUyAgICAxMQo+ICAjZGVmaW5l IFg4Nl9IVk1fRU5EX1NQRUNJQUxfUkVHSU9OICAweGZmMDAwdQo+IAo+ICAvKiAtLS0gdHlwZWRl ZnMgYW5kIHN0cnVjdHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAq Lwo+IGRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Y19kb21feDg2LmMgYi90b29scy9saWJ4Yy94 Y19kb21feDg2LmMKPiBpbmRleCBiZmY2OGEwLi5iMzE2ZWJjIDEwMDY0NAo+IC0tLSBhL3Rvb2xz L2xpYnhjL3hjX2RvbV94ODYuYwo+ICsrKyBiL3Rvb2xzL2xpYnhjL3hjX2RvbV94ODYuYwo+IEBA IC0zMiw2ICszMiw3IEBACj4gICNpbmNsdWRlIDx4ZW4vZm9yZWlnbi94ODZfMzIuaD4KPiAgI2lu Y2x1ZGUgPHhlbi9mb3JlaWduL3g4Nl82NC5oPgo+ICAjaW5jbHVkZSA8eGVuL2h2bS9odm1faW5m b190YWJsZS5oPgo+ICsjaW5jbHVkZSA8eGVuL2h2bS9pb3JlcS5oPgo+ICAjaW5jbHVkZSA8eGVu L2FyY2gteDg2L2h2bS9zdGFydF9pbmZvLmg+Cj4gICNpbmNsdWRlIDx4ZW4vaW8vcHJvdG9jb2xz Lmg+Cj4gCj4gQEAgLTU3LDggKzU4LDggQEAKPiAgI2RlZmluZSBTUEVDSUFMUEFHRV9CVUZJT1JF USAzCj4gICNkZWZpbmUgU1BFQ0lBTFBBR0VfWEVOU1RPUkUgNAo+ICAjZGVmaW5lIFNQRUNJQUxQ QUdFX0lPUkVRICAgIDUKPiAtI2RlZmluZSBTUEVDSUFMUEFHRV9JREVOVF9QVCA2Cj4gLSNkZWZp bmUgU1BFQ0lBTFBBR0VfQ09OU09MRSAgNwo+ICsjZGVmaW5lIFNQRUNJQUxQQUdFX0lERU5UX1BU ICg1ICsgTUFYX0lPUkVRX1BBR0UpCj4gKyNkZWZpbmUgU1BFQ0lBTFBBR0VfQ09OU09MRSAgKFNQ RUNJQUxQQUdFX0lERU5UX1BUICsgMSkKPiAgI2RlZmluZSBzcGVjaWFsX3Bmbih4KSBcCj4gICAg ICAoWDg2X0hWTV9FTkRfU1BFQ0lBTF9SRUdJT04gLSBYODZfSFZNX05SX1NQRUNJQUxfUEFHRVMg KyAoeCkpCj4gCj4gQEAgLTYxMiw2ICs2MTMsNyBAQCBzdGF0aWMgaW50IGFsbG9jX21hZ2ljX3Bh Z2VzX2h2bShzdHJ1Y3QKPiB4Y19kb21faW1hZ2UgKmRvbSkKPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFg4Nl9IVk1fTlJfU1BFQ0lBTF9QQUdFUykgKQo+ICAgICAgICAgICAgICBn b3RvIGVycm9yX291dDsKPiAKPiArICAgIHhjX2h2bV9wYXJhbV9zZXQoeGNoLCBkb21pZCwgSFZN X1BBUkFNX0lPUkVRX1BBR0VTLAo+IE1BWF9JT1JFUV9QQUdFKTsKPiAgICAgIHhjX2h2bV9wYXJh bV9zZXQoeGNoLCBkb21pZCwgSFZNX1BBUkFNX1NUT1JFX1BGTiwKPiAgICAgICAgICAgICAgICAg ICAgICAgc3BlY2lhbF9wZm4oU1BFQ0lBTFBBR0VfWEVOU1RPUkUpKTsKPiAgICAgIHhjX2h2bV9w YXJhbV9zZXQoeGNoLCBkb21pZCwgSFZNX1BBUkFNX0JVRklPUkVRX1BGTiwKPiBkaWZmIC0tZ2l0 IGEveGVuL2FyY2gveDg2L2h2bS9odm0uYyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKPiBpbmRl eCA1ZDA2NzY3Li4wYjNiZDA0IDEwMDY0NAo+IC0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMK PiArKysgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCj4gQEAgLTQwNzcsNiArNDA3Nyw3IEBAIHN0 YXRpYyBpbnQgaHZtX2FsbG93X3NldF9wYXJhbShzdHJ1Y3QgZG9tYWluICpkLAo+ICAgICAgY2Fz ZSBIVk1fUEFSQU1fTlJfSU9SRVFfU0VSVkVSX1BBR0VTOgo+ICAgICAgY2FzZSBIVk1fUEFSQU1f QUxUUDJNOgo+ICAgICAgY2FzZSBIVk1fUEFSQU1fTUNBX0NBUDoKPiArICAgIGNhc2UgSFZNX1BB UkFNX0lPUkVRX1BBR0VTOgo+ICAgICAgICAgIGlmICggdmFsdWUgIT0gMCAmJiBhLT52YWx1ZSAh PSB2YWx1ZSApCj4gICAgICAgICAgICAgIHJjID0gLUVFWElTVDsKPiAgICAgICAgICBicmVhazsK PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9pb3JlcS5jIGIveGVuL2FyY2gveDg2L2h2 bS9pb3JlcS5jCj4gaW5kZXggYTg3OWYyMC4uMGEzNjAwMSAxMDA2NDQKPiAtLS0gYS94ZW4vYXJj aC94ODYvaHZtL2lvcmVxLmMKPiArKysgYi94ZW4vYXJjaC94ODYvaHZtL2lvcmVxLmMKPiBAQCAt NjQsMTQgKzY0LDI0IEBAIHN0YXRpYyBzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlcgo+ICpnZXRfaW9y ZXFfc2VydmVyKGNvbnN0IHN0cnVjdCBkb21haW4gKmQsCj4gICAgICAgICAgICAgIGNvbnRpbnVl OyBcCj4gICAgICAgICAgZWxzZQo+IAo+ICsvKiBJdGVyYXRlIG92ZXIgYWxsIGlvcmVxIHBhZ2Vz ICovCj4gKyNkZWZpbmUgRk9SX0VBQ0hfSU9SRVFfUEFHRShzLCBpLCBpb3JwKSBcCj4gKyAgICBm b3IgKCAoaSkgPSAwLCBpb3JwID0gcy0+aW9yZXE7IChpKSA8IChzKS0+aW9yZXFfcGFnZV9ucjsg KGkpKyssIGlvcnArKyApCj4gKwo+ICBzdGF0aWMgaW9yZXFfdCAqZ2V0X2lvcmVxKHN0cnVjdCBo dm1faW9yZXFfc2VydmVyICpzLCBzdHJ1Y3QgdmNwdSAqdikKPiAgewo+IC0gICAgc2hhcmVkX2lv cGFnZV90ICpwID0gcy0+aW9yZXEudmE7Cj4gKyAgICBzaGFyZWRfaW9wYWdlX3QgKnAgPSBzLT5p b3JlcVt2LT52Y3B1X2lkIC8KPiBJT1JFUV9OVU1fUEVSX1BBR0VdLnZhOwo+IAo+ICAgICAgQVNT RVJUKCh2ID09IGN1cnJlbnQpIHx8ICF2Y3B1X3J1bm5hYmxlKHYpKTsKPiAgICAgIEFTU0VSVChw ICE9IE5VTEwpOwo+IAo+IC0gICAgcmV0dXJuICZwLT52Y3B1X2lvcmVxW3YtPnZjcHVfaWRdOwo+ ICsgICAgcmV0dXJuICZwLT52Y3B1X2lvcmVxW3YtPnZjcHVfaWQgJSBJT1JFUV9OVU1fUEVSX1BB R0VdOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW9yZXFfdCAqZ2V0X2lvcmVxX2ZhbGxpYmxlKHN0cnVj dCBodm1faW9yZXFfc2VydmVyICpzLCBzdHJ1Y3QgdmNwdQo+ICp2KQo+ICt7Cj4gKyAgICByZXR1 cm4gcy0+aW9yZXFbdi0+dmNwdV9pZCAvIElPUkVRX05VTV9QRVJfUEFHRV0udmEgPwo+ICsgICAg ICAgICAgIGdldF9pb3JlcShzLCB2KSA6IE5VTEw7Cj4gIH0KPiAKPiAgYm9vbCBodm1faW9fcGVu ZGluZyhzdHJ1Y3QgdmNwdSAqdikKPiBAQCAtMjUyLDEwICsyNjIsMTAgQEAgc3RhdGljIHZvaWQg aHZtX3VubWFwX2lvcmVxX2dmbihzdHJ1Y3QKPiBodm1faW9yZXFfc2VydmVyICpzLAo+ICAgICAg aW9ycC0+Z2ZuID0gSU5WQUxJRF9HRk47Cj4gIH0KPiAKPiAtc3RhdGljIGludCBodm1fbWFwX2lv cmVxX2dmbihzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcywgYm9vbCBidWYpCj4gK3N0YXRpYyBp bnQgaHZtX21hcF9pb3JlcV9nZm4oc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMsIGJvb2wgYnVm LAo+IHVpbnQ4X3QgaSkKPiAgewo+ICAgICAgc3RydWN0IGRvbWFpbiAqZCA9IHMtPmRvbWFpbjsK PiAtICAgIHN0cnVjdCBodm1faW9yZXFfcGFnZSAqaW9ycCA9IGJ1ZiA/ICZzLT5idWZpb3JlcSA6 ICZzLT5pb3JlcTsKPiArICAgIHN0cnVjdCBodm1faW9yZXFfcGFnZSAqaW9ycCA9IGJ1ZiA/ICZz LT5idWZpb3JlcSA6ICZzLT5pb3JlcVtpXTsKPiAgICAgIGludCByYzsKPiAKPiAgICAgIGlmICgg aW9ycC0+cGFnZSApCj4gQEAgLTI3Nyw3ICsyODcsNyBAQCBzdGF0aWMgaW50IGh2bV9tYXBfaW9y ZXFfZ2ZuKHN0cnVjdAo+IGh2bV9pb3JlcV9zZXJ2ZXIgKnMsIGJvb2wgYnVmKQo+ICAgICAgaWYg KCBJU19ERUZBVUxUKHMpICkKPiAgICAgICAgICBpb3JwLT5nZm4gPSBfZ2ZuKGJ1ZiA/Cj4gICAg ICAgICAgICAgICAgICAgICAgICAgICBkLT5hcmNoLmh2bV9kb21haW4ucGFyYW1zW0hWTV9QQVJB TV9CVUZJT1JFUV9QRk5dIDoKPiAtICAgICAgICAgICAgICAgICAgICAgICAgIGQtPmFyY2guaHZt X2RvbWFpbi5wYXJhbXNbSFZNX1BBUkFNX0lPUkVRX1BGTl0pOwo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgZC0+YXJjaC5odm1fZG9tYWluLnBhcmFtc1tIVk1fUEFSQU1fSU9SRVFfUEZOXSAr IGkpOwo+ICAgICAgZWxzZQo+ICAgICAgICAgIGlvcnAtPmdmbiA9IGh2bV9hbGxvY19pb3JlcV9n Zm4ocyk7Cj4gCj4gQEAgLTM2Niw3ICszNzYsMjIgQEAgYm9vbCBpc19pb3JlcV9zZXJ2ZXJfcGFn ZShzdHJ1Y3QgZG9tYWluICpkLCBjb25zdAo+IHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UpCj4gCj4g ICAgICBGT1JfRUFDSF9JT1JFUV9TRVJWRVIoZCwgaWQsIHMpCj4gICAgICB7Cj4gLSAgICAgICAg aWYgKCAocy0+aW9yZXEucGFnZSA9PSBwYWdlKSB8fCAocy0+YnVmaW9yZXEucGFnZSA9PSBwYWdl KSApCj4gKyAgICAgICAgaW50IGk7Cj4gKyAgICAgICAgY29uc3Qgc3RydWN0IGh2bV9pb3JlcV9w YWdlICppb3JwOwo+ICsKPiArICAgICAgICBGT1JfRUFDSF9JT1JFUV9QQUdFKHMsIGksIGlvcnAp Cj4gKyAgICAgICAgewo+ICsgICAgICAgICAgICBpZiAoIGlvcnAtPnBhZ2UgPT0gcGFnZSApCj4g KyAgICAgICAgICAgIHsKPiArICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKPiArICAgICAg ICAgICAgICAgIGJyZWFrOwo+ICsgICAgICAgICAgICB9Cj4gKyAgICAgICAgfQo+ICsKPiArICAg ICAgICBpZiAoIGZvdW5kICkKPiArICAgICAgICAgICAgYnJlYWs7Cj4gKwo+ICsgICAgICAgIGlm ICggcy0+YnVmaW9yZXEucGFnZSA9PSBwYWdlICkKPiAgICAgICAgICB7Cj4gICAgICAgICAgICAg IGZvdW5kID0gdHJ1ZTsKPiAgICAgICAgICAgICAgYnJlYWs7Cj4gQEAgLTQxNSwxNCArNDQwLDEy IEBAIHN0YXRpYyBpbnQgaHZtX2FkZF9pb3JlcV9nZm4oc3RydWN0Cj4gaHZtX2lvcmVxX3NlcnZl ciAqcywKPiAgc3RhdGljIHZvaWQgaHZtX3VwZGF0ZV9pb3JlcV9ldnRjaG4oc3RydWN0IGh2bV9p b3JlcV9zZXJ2ZXIgKnMsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCBodm1faW9yZXFfdmNwdSAqc3YpCj4gIHsKPiAtICAgIEFTU0VSVChzcGluX2lzX2xvY2tl ZCgmcy0+bG9jaykpOwo+ICsgICAgaW9yZXFfdCAqcCA9IGdldF9pb3JlcV9mYWxsaWJsZShzLCBz di0+dmNwdSk7Cj4gCj4gLSAgICBpZiAoIHMtPmlvcmVxLnZhICE9IE5VTEwgKQo+IC0gICAgewo+ IC0gICAgICAgIGlvcmVxX3QgKnAgPSBnZXRfaW9yZXEocywgc3YtPnZjcHUpOwo+ICsgICAgQVNT RVJUKHNwaW5faXNfbG9ja2VkKCZzLT5sb2NrKSk7Cj4gCj4gKyAgICBpZiAoIHAgKQo+ICAgICAg ICAgIHAtPnZwX2Vwb3J0ID0gc3YtPmlvcmVxX2V2dGNobjsKPiAtICAgIH0KPiAgfQo+IAo+ICAj ZGVmaW5lIEhBTkRMRV9CVUZJT1JFUShzKSBcCj4gQEAgLTU0MCw0NCArNTYzLDY2IEBAIHN0YXRp YyB2b2lkCj4gaHZtX2lvcmVxX3NlcnZlcl9yZW1vdmVfYWxsX3ZjcHVzKHN0cnVjdCBodm1faW9y ZXFfc2VydmVyICpzKQo+IAo+ICBzdGF0aWMgaW50IGh2bV9pb3JlcV9zZXJ2ZXJfbWFwX3BhZ2Vz KHN0cnVjdCBodm1faW9yZXFfc2VydmVyICpzKQo+ICB7Cj4gLSAgICBpbnQgcmM7Cj4gKyAgICBp bnQgaSwgcmMgPSAtRUlOVkFMOwo+ICsgICAgc3RydWN0IGh2bV9pb3JlcV9wYWdlICppb3JwOwo+ IAo+IC0gICAgcmMgPSBodm1fbWFwX2lvcmVxX2dmbihzLCBmYWxzZSk7Cj4gKyAgICBmb3IgKCBp ID0gMDsgaSA8IHMtPmlvcmVxX3BhZ2VfbnI7IGkrKyApCj4gKyAgICB7Cj4gKyAgICAgICAgcmMg PSBodm1fbWFwX2lvcmVxX2dmbihzLCBmYWxzZSwgaSk7Cj4gKyAgICAgICAgaWYgKCByYyApCj4g KyAgICAgICAgICAgIGJyZWFrOwo+ICsgICAgfQo+IAo+ICAgICAgaWYgKCAhcmMgJiYgSEFORExF X0JVRklPUkVRKHMpICkKPiAtICAgICAgICByYyA9IGh2bV9tYXBfaW9yZXFfZ2ZuKHMsIHRydWUp Owo+ICsgICAgICAgIHJjID0gaHZtX21hcF9pb3JlcV9nZm4ocywgdHJ1ZSwgMCk7Cj4gCj4gICAg ICBpZiAoIHJjICkKPiAtICAgICAgICBodm1fdW5tYXBfaW9yZXFfZ2ZuKHMsICZzLT5pb3JlcSk7 Cj4gKyAgICAgICAgRk9SX0VBQ0hfSU9SRVFfUEFHRShzLCBpLCBpb3JwKQo+ICsgICAgICAgICAg ICBodm1fdW5tYXBfaW9yZXFfZ2ZuKHMsIGlvcnApOwo+IAo+ICAgICAgcmV0dXJuIHJjOwo+ICB9 Cj4gCj4gIHN0YXRpYyB2b2lkIGh2bV9pb3JlcV9zZXJ2ZXJfdW5tYXBfcGFnZXMoc3RydWN0IGh2 bV9pb3JlcV9zZXJ2ZXIgKnMpCj4gIHsKPiAtICAgIGh2bV91bm1hcF9pb3JlcV9nZm4ocywgJnMt PmlvcmVxKTsKPiArICAgIGludCBpOwo+ICsgICAgc3RydWN0IGh2bV9pb3JlcV9wYWdlICppb3Jw Owo+ICsKPiArICAgIEZPUl9FQUNIX0lPUkVRX1BBR0UocywgaSwgaW9ycCkKPiArICAgICAgICBo dm1fdW5tYXBfaW9yZXFfZ2ZuKHMsIGlvcnApOwo+ICAgICAgaHZtX3VubWFwX2lvcmVxX2dmbihz LCAmcy0+YnVmaW9yZXEpOwo+ICB9Cj4gCj4gIHN0YXRpYyBpbnQgaHZtX2lvcmVxX3NlcnZlcl9h bGxvY19wYWdlcyhzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcykKPiAgewo+IC0gICAgaW50IHJj Owo+ICsgICAgaW50IGksIHJjID0gLUVJTlZBTDsKPiArICAgIHN0cnVjdCBodm1faW9yZXFfcGFn ZSAqaW9ycDsKPiAKPiAtICAgIHJjID0gaHZtX2FsbG9jX2lvcmVxX21mbihzLCAmcy0+aW9yZXEp Owo+ICsgICAgRk9SX0VBQ0hfSU9SRVFfUEFHRShzLCBpLCBpb3JwKQo+ICsgICAgewo+ICsgICAg ICAgIHJjID0gaHZtX2FsbG9jX2lvcmVxX21mbihzLCBpb3JwKTsKPiArICAgICAgICBpZiAoIHJj ICkKPiArICAgICAgICAgICAgYnJlYWs7Cj4gKyAgICB9Cj4gCj4gICAgICBpZiAoICFyYyAmJiAo cy0+YnVmaW9yZXFfaGFuZGxpbmcgIT0gSFZNX0lPUkVRU1JWX0JVRklPUkVRX09GRikgKQo+ICAg ICAgICAgIHJjID0gaHZtX2FsbG9jX2lvcmVxX21mbihzLCAmcy0+YnVmaW9yZXEpOwo+IAo+ICAg ICAgaWYgKCByYyApCj4gLSAgICAgICAgaHZtX2ZyZWVfaW9yZXFfbWZuKHMsICZzLT5pb3JlcSk7 Cj4gKyAgICAgICAgRk9SX0VBQ0hfSU9SRVFfUEFHRShzLCBpLCBpb3JwKQo+ICsgICAgICAgICAg ICBodm1fZnJlZV9pb3JlcV9tZm4ocywgaW9ycCk7Cj4gCj4gICAgICByZXR1cm4gcmM7Cj4gIH0K PiAKPiAgc3RhdGljIHZvaWQgaHZtX2lvcmVxX3NlcnZlcl9mcmVlX3BhZ2VzKHN0cnVjdCBodm1f aW9yZXFfc2VydmVyICpzKQo+ICB7Cj4gKyAgICBpbnQgaTsKPiArICAgIHN0cnVjdCBodm1faW9y ZXFfcGFnZSAqaW9ycDsKPiArCj4gICAgICBodm1fZnJlZV9pb3JlcV9tZm4ocywgJnMtPmJ1Zmlv cmVxKTsKPiAtICAgIGh2bV9mcmVlX2lvcmVxX21mbihzLCAmcy0+aW9yZXEpOwo+ICsgICAgRk9S X0VBQ0hfSU9SRVFfUEFHRShzLCBpLCBpb3JwKQo+ICsgICAgICAgIGh2bV9mcmVlX2lvcmVxX21m bihzLCBpb3JwKTsKPiAgfQo+IAo+ICBzdGF0aWMgdm9pZCBodm1faW9yZXFfc2VydmVyX2ZyZWVf cmFuZ2VzZXRzKHN0cnVjdCBodm1faW9yZXFfc2VydmVyICpzKQo+IEBAIC02MzgsMTMgKzY4Mywx NiBAQCBzdGF0aWMgaW50IGh2bV9pb3JlcV9zZXJ2ZXJfYWxsb2NfcmFuZ2VzZXRzKHN0cnVjdAo+ IGh2bV9pb3JlcV9zZXJ2ZXIgKnMsCj4gIHN0YXRpYyB2b2lkIGh2bV9pb3JlcV9zZXJ2ZXJfZW5h YmxlKHN0cnVjdCBodm1faW9yZXFfc2VydmVyICpzKQo+ICB7Cj4gICAgICBzdHJ1Y3QgaHZtX2lv cmVxX3ZjcHUgKnN2Owo+ICsgICAgc3RydWN0IGh2bV9pb3JlcV9wYWdlICppb3JwOwo+ICsgICAg aW50IGk7Cj4gCj4gICAgICBzcGluX2xvY2soJnMtPmxvY2spOwo+IAo+ICAgICAgaWYgKCBzLT5l bmFibGVkICkKPiAgICAgICAgICBnb3RvIGRvbmU7Cj4gCj4gLSAgICBodm1fcmVtb3ZlX2lvcmVx X2dmbihzLCAmcy0+aW9yZXEpOwo+ICsgICAgRk9SX0VBQ0hfSU9SRVFfUEFHRShzLCBpLCBpb3Jw KQo+ICsgICAgICAgIGh2bV9yZW1vdmVfaW9yZXFfZ2ZuKHMsIGlvcnApOwo+ICAgICAgaHZtX3Jl bW92ZV9pb3JlcV9nZm4ocywgJnMtPmJ1ZmlvcmVxKTsKPiAKPiAgICAgIHMtPmVuYWJsZWQgPSB0 cnVlOwo+IEBAIC02NjAsMTMgKzcwOCwxNyBAQCBzdGF0aWMgdm9pZCBodm1faW9yZXFfc2VydmVy X2VuYWJsZShzdHJ1Y3QKPiBodm1faW9yZXFfc2VydmVyICpzKQo+IAo+ICBzdGF0aWMgdm9pZCBo dm1faW9yZXFfc2VydmVyX2Rpc2FibGUoc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMpCj4gIHsK PiArICAgIHN0cnVjdCBodm1faW9yZXFfcGFnZSAqaW9ycDsKPiArICAgIGludCBpOwo+ICsKPiAg ICAgIHNwaW5fbG9jaygmcy0+bG9jayk7Cj4gCj4gICAgICBpZiAoICFzLT5lbmFibGVkICkKPiAg ICAgICAgICBnb3RvIGRvbmU7Cj4gCj4gICAgICBodm1fYWRkX2lvcmVxX2dmbihzLCAmcy0+YnVm aW9yZXEpOwo+IC0gICAgaHZtX2FkZF9pb3JlcV9nZm4ocywgJnMtPmlvcmVxKTsKPiArICAgIEZP Ul9FQUNIX0lPUkVRX1BBR0UocywgaSwgaW9ycCkKPiArICAgICAgICBodm1fYWRkX2lvcmVxX2dm bihzLCBpb3JwKTsKPiAKPiAgICAgIHMtPmVuYWJsZWQgPSBmYWxzZTsKPiAKPiBAQCAtNjc5LDcg KzczMSw4IEBAIHN0YXRpYyBpbnQgaHZtX2lvcmVxX3NlcnZlcl9pbml0KHN0cnVjdAo+IGh2bV9p b3JlcV9zZXJ2ZXIgKnMsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBi dWZpb3JlcV9oYW5kbGluZywgaW9zZXJ2aWRfdCBpZCkKPiAgewo+ICAgICAgc3RydWN0IHZjcHUg KnY7Cj4gLSAgICBpbnQgcmM7Cj4gKyAgICBpbnQgcmMsIGk7Cj4gKyAgICBzdHJ1Y3QgaHZtX2lv cmVxX3BhZ2UgKmlvcnA7Cj4gCj4gICAgICBzLT5kb21haW4gPSBkOwo+ICAgICAgcy0+ZG9taWQg PSBkb21pZDsKPiBAQCAtNjg4LDggKzc0MSwxNSBAQCBzdGF0aWMgaW50IGh2bV9pb3JlcV9zZXJ2 ZXJfaW5pdChzdHJ1Y3QKPiBodm1faW9yZXFfc2VydmVyICpzLAo+ICAgICAgSU5JVF9MSVNUX0hF QUQoJnMtPmlvcmVxX3ZjcHVfbGlzdCk7Cj4gICAgICBzcGluX2xvY2tfaW5pdCgmcy0+YnVmaW9y ZXFfbG9jayk7Cj4gCj4gLSAgICBzLT5pb3JlcS5nZm4gPSBJTlZBTElEX0dGTjsKPiArICAgIEZP Ul9FQUNIX0lPUkVRX1BBR0UocywgaSwgaW9ycCkKPiArICAgICAgICBpb3JwLT5nZm4gPSBJTlZB TElEX0dGTjsKPiAgICAgIHMtPmJ1ZmlvcmVxLmdmbiA9IElOVkFMSURfR0ZOOwo+ICsgICAgcy0+ aW9yZXFfcGFnZV9uciA9IChkLT5tYXhfdmNwdXMgKyBJT1JFUV9OVU1fUEVSX1BBR0UgLSAxKSAv Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgSU9SRVFfTlVNX1BFUl9QQUdFOwo+ICsgICAgaWYg KCBzLT5pb3JlcV9wYWdlX25yID4gZC0KPiA+YXJjaC5odm1fZG9tYWluLnBhcmFtc1tIVk1fUEFS QU1fSU9SRVFfUEFHRVNdICkKPiArICAgICAgICByZXR1cm4gLUVJTlZBTDsKPiArCj4gKyAgICBz LT5pb3JlcV9pZHggPSAwOwo+IAo+ICAgICAgcmMgPSBodm1faW9yZXFfc2VydmVyX2FsbG9jX3Jh bmdlc2V0cyhzLCBpZCk7Cj4gICAgICBpZiAoIHJjICkKPiBAQCAtODY2LDcgKzkyNiwxMCBAQCBp bnQgaHZtX2dldF9pb3JlcV9zZXJ2ZXJfaW5mbyhzdHJ1Y3QgZG9tYWluICpkLAo+IGlvc2Vydmlk X3QgaWQsCj4gICAgICB9Cj4gCj4gICAgICBpZiAoIGlvcmVxX2dmbiApCj4gLSAgICAgICAgKmlv cmVxX2dmbiA9IGdmbl94KHMtPmlvcmVxLmdmbik7Cj4gKyAgICB7Cj4gKyAgICAgICAgKmlvcmVx X2dmbiA9IGdmbl94KHMtPmlvcmVxW3MtPmlvcmVxX2lkeF0uZ2ZuKTsKPiArICAgICAgICBzLT5p b3JlcV9pZHggPSAocy0+aW9yZXFfaWR4ICsgMSkgJSBzLT5pb3JlcV9wYWdlX25yOwo+ICsgICAg fQo+IAo+ICAgICAgaWYgKCBIQU5ETEVfQlVGSU9SRVEocykgKQo+ICAgICAgewo+IEBAIC05MTYs NyArOTc5LDggQEAgaW50IGh2bV9nZXRfaW9yZXFfc2VydmVyX2ZyYW1lKHN0cnVjdCBkb21haW4g KmQsCj4gaW9zZXJ2aWRfdCBpZCwKPiAgICAgICAgICBicmVhazsKPiAKPiAgICAgIGNhc2UgWEVO TUVNX3Jlc291cmNlX2lvcmVxX3NlcnZlcl9mcmFtZV9pb3JlcSgwKToKPiAtICAgICAgICAqbWZu ID0gX21mbihwYWdlX3RvX21mbihzLT5pb3JlcS5wYWdlKSk7Cj4gKyAgICAgICAgKm1mbiA9IF9t Zm4ocGFnZV90b19tZm4ocy0+aW9yZXFbcy0+aW9yZXFfaWR4XS5wYWdlKSk7Cj4gKyAgICAgICAg cy0+aW9yZXFfaWR4ID0gKHMtPmlvcmVxX2lkeCArIDEpICUgcy0+aW9yZXFfcGFnZV9ucjsKPiAg ICAgICAgICByYyA9IDA7Cj4gICAgICAgICAgYnJlYWs7Cj4gCj4gZGlmZiAtLWdpdCBhL3hlbi9p bmNsdWRlL2FzbS14ODYvaHZtL2RvbWFpbi5oIGIveGVuL2luY2x1ZGUvYXNtLQo+IHg4Ni9odm0v ZG9tYWluLmgKPiBpbmRleCA4N2Y3OTk0Li5mZjhjNDRkIDEwMDY0NAo+IC0tLSBhL3hlbi9pbmNs dWRlL2FzbS14ODYvaHZtL2RvbWFpbi5oCj4gKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0v ZG9tYWluLmgKPiBAQCAtNTEsNiArNTEsNyBAQCBzdHJ1Y3QgaHZtX2lvcmVxX3ZjcHUgewo+IAo+ ICAjZGVmaW5lIE5SX0lPX1JBTkdFX1RZUEVTIChYRU5fRE1PUF9JT19SQU5HRV9QQ0kgKyAxKQo+ ICAjZGVmaW5lIE1BWF9OUl9JT19SQU5HRVMgIDI1Ngo+ICsjZGVmaW5lIElPUkVRX05VTV9QRVJf UEFHRSAoUEFHRV9TSVpFIC8gc2l6ZW9mKGlvcmVxX3QpKQo+IAo+ICBzdHJ1Y3QgaHZtX2lvcmVx X3NlcnZlciB7Cj4gICAgICBzdHJ1Y3QgbGlzdF9oZWFkICAgICAgIGxpc3RfZW50cnk7Cj4gQEAg LTYxLDcgKzYyLDEwIEBAIHN0cnVjdCBodm1faW9yZXFfc2VydmVyIHsKPiAKPiAgICAgIC8qIERv bWFpbiBpZCBvZiBlbXVsYXRpbmcgZG9tYWluICovCj4gICAgICBkb21pZF90ICAgICAgICAgICAg ICAgIGRvbWlkOwo+IC0gICAgc3RydWN0IGh2bV9pb3JlcV9wYWdlICBpb3JlcTsKPiArICAgIC8q IEluZGV4IGFuZCBzaXplIG9mIGlvcmVxIHBhZ2UgYXJyYXkgKi8KPiArICAgIHVpbnQ4X3QgICAg ICAgICAgICAgICAgaW9yZXFfaWR4Owo+ICsgICAgdWludDhfdCAgICAgICAgICAgICAgICBpb3Jl cV9wYWdlX25yOwo+ICsgICAgc3RydWN0IGh2bV9pb3JlcV9wYWdlICBpb3JlcVtNQVhfSU9SRVFf UEFHRV07Cj4gICAgICBzdHJ1Y3QgbGlzdF9oZWFkICAgICAgIGlvcmVxX3ZjcHVfbGlzdDsKPiAg ICAgIHN0cnVjdCBodm1faW9yZXFfcGFnZSAgYnVmaW9yZXE7Cj4gCj4gZGlmZiAtLWdpdCBhL3hl bi9pbmNsdWRlL3B1YmxpYy9odm0vaW9yZXEuaAo+IGIveGVuL2luY2x1ZGUvcHVibGljL2h2bS9p b3JlcS5oCj4gaW5kZXggZDMwOWQxMi4uZDYyODMwMyAxMDA2NDQKPiAtLS0gYS94ZW4vaW5jbHVk ZS9wdWJsaWMvaHZtL2lvcmVxLmgKPiArKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2lvcmVx LmgKPiBAQCAtNzEsNiArNzEsOCBAQCBzdHJ1Y3Qgc2hhcmVkX2lvcGFnZSB7Cj4gIH07Cj4gIHR5 cGVkZWYgc3RydWN0IHNoYXJlZF9pb3BhZ2Ugc2hhcmVkX2lvcGFnZV90Owo+IAo+ICsjZGVmaW5l IE1BWF9JT1JFUV9QQUdFIDQKPiArCj4gIHN0cnVjdCBidWZfaW9yZXEgewo+ICAgICAgdWludDhf dCAgdHlwZTsgICAvKiBJL08gdHlwZSAgICAgICAgICAgICAgICAgICAgKi8KPiAgICAgIHVpbnQ4 X3QgIHBhZDoxOwo+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL3BhcmFtcy5o Cj4gYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL3BhcmFtcy5oCj4gaW5kZXggMmVjMmU3Yy4uNTM3 Nzk5ZCAxMDA2NDQKPiAtLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL3BhcmFtcy5oCj4gKysr IGIveGVuL2luY2x1ZGUvcHVibGljL2h2bS9wYXJhbXMuaAo+IEBAIC0yNzksNiArMjc5LDEyIEBA Cj4gICNkZWZpbmUgWEVOX0hWTV9NQ0FfQ0FQX0xNQ0UgICAoeGVuX21rX3VsbG9uZygxKSA8PCAw KQo+ICAjZGVmaW5lIFhFTl9IVk1fTUNBX0NBUF9NQVNLICAgWEVOX0hWTV9NQ0FfQ0FQX0xNQ0UK PiAKPiAtI2RlZmluZSBIVk1fTlJfUEFSQU1TIDM5Cj4gKy8qCj4gKyAqIE51bWJlciBvZiBwYWdl cyB0aGF0IGFyZSByZXNlcnZlZCBmb3IgZGVmYXVsdCBJT1JFUSBzZXJ2ZXIuIFRoZSBiYXNlCj4g UEZOCj4gKyAqIGlzIHNldCB2aWEgSFZNX1BBUkFNX0lPUkVRX1BGTi4KPiArICovCj4gKyNkZWZp bmUgSFZNX1BBUkFNX0lPUkVRX1BBR0VTIDM5Cj4gKwo+ICsjZGVmaW5lIEhWTV9OUl9QQVJBTVMg NDAKPiAKPiAgI2VuZGlmIC8qIF9fWEVOX1BVQkxJQ19IVk1fUEFSQU1TX0hfXyAqLwo+IC0tCj4g MS44LjMuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0 dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=