From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chao Gao Subject: Re: [RFC Patch v4 2/8] ioreq: bump the number of IOREQ page to 4 pages Date: Thu, 7 Dec 2017 14:56:31 +0800 Message-ID: <20171207065629.GA49036@op-computing> References: <1512546614-9937-1-git-send-email-chao.gao@intel.com> <1512546614-9937-3-git-send-email-chao.gao@intel.com> <20171206090213.GA23898@op-computing> <5cf06a5713b0402b8ad1d1a69a7d77f0@AMSPEX02CL03.citrite.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Paul Durrant Cc: Stefano Stabellini , Wei Liu , Andrew Cooper , "Tim (Xen.org)" , George Dunlap , "xen-devel@lists.xen.org" , Jan Beulich , Ian Jackson List-Id: xen-devel@lists.xenproject.org T24gVGh1LCBEZWMgMDcsIDIwMTcgYXQgMDg6NDE6MTRBTSArMDAwMCwgUGF1bCBEdXJyYW50IHdy b3RlOgo+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+PiBGcm9tOiBYZW4tZGV2ZWwgW21h aWx0bzp4ZW4tZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24gQmVoYWxmCj4+ IE9mIFBhdWwgRHVycmFudAo+PiBTZW50OiAwNiBEZWNlbWJlciAyMDE3IDE2OjEwCj4+IFRvOiAn Q2hhbyBHYW8nIDxjaGFvLmdhb0BpbnRlbC5jb20+Cj4+IENjOiBTdGVmYW5vIFN0YWJlbGxpbmkg PHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+OyBXZWkgTGl1Cj4+IDx3ZWkubGl1MkBjaXRyaXguY29t PjsgQW5kcmV3IENvb3BlciA8QW5kcmV3LkNvb3BlcjNAY2l0cml4LmNvbT47IFRpbQo+PiAoWGVu Lm9yZykgPHRpbUB4ZW4ub3JnPjsgR2VvcmdlIER1bmxhcCA8R2VvcmdlLkR1bmxhcEBjaXRyaXgu Y29tPjsKPj4geGVuLWRldmVsQGxpc3RzLnhlbi5vcmc7IEphbiBCZXVsaWNoIDxqYmV1bGljaEBz dXNlLmNvbT47IElhbiBKYWNrc29uCj4+IDxJYW4uSmFja3NvbkBjaXRyaXguY29tPgo+PiBTdWJq ZWN0OiBSZTogW1hlbi1kZXZlbF0gW1JGQyBQYXRjaCB2NCAyLzhdIGlvcmVxOiBidW1wIHRoZSBu dW1iZXIgb2YKPj4gSU9SRVEgcGFnZSB0byA0IHBhZ2VzCj4+IAo+PiA+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tCj4+ID4gRnJvbTogQ2hhbyBHYW8gW21haWx0bzpjaGFvLmdhb0BpbnRlbC5j b21dCj4+ID4gU2VudDogMDYgRGVjZW1iZXIgMjAxNyAwOTowMgo+PiA+IFRvOiBQYXVsIER1cnJh bnQgPFBhdWwuRHVycmFudEBjaXRyaXguY29tPgo+PiA+IENjOiB4ZW4tZGV2ZWxAbGlzdHMueGVu Lm9yZzsgVGltIChYZW4ub3JnKSA8dGltQHhlbi5vcmc+OyBTdGVmYW5vCj4+ID4gU3RhYmVsbGlu aSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz47IEtvbnJhZCBSemVzenV0ZWsgV2lsawo+PiA+IDxr b25yYWQud2lsa0BvcmFjbGUuY29tPjsgSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPjsg R2VvcmdlCj4+ID4gRHVubGFwIDxHZW9yZ2UuRHVubGFwQGNpdHJpeC5jb20+OyBBbmRyZXcgQ29v cGVyCj4+ID4gPEFuZHJldy5Db29wZXIzQGNpdHJpeC5jb20+OyBXZWkgTGl1IDx3ZWkubGl1MkBj aXRyaXguY29tPjsgSWFuIEphY2tzb24KPj4gPiA8SWFuLkphY2tzb25AY2l0cml4LmNvbT4KPj4g PiBTdWJqZWN0OiBSZTogW1JGQyBQYXRjaCB2NCAyLzhdIGlvcmVxOiBidW1wIHRoZSBudW1iZXIg b2YgSU9SRVEgcGFnZSB0byA0Cj4+ID4gcGFnZXMKPj4gPgo+PiA+IE9uIFdlZCwgRGVjIDA2LCAy MDE3IGF0IDAzOjA0OjExUE0gKzAwMDAsIFBhdWwgRHVycmFudCB3cm90ZToKPj4gPiA+PiAtLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+PiA+ID4+IEZyb206IENoYW8gR2FvIFttYWlsdG86Y2hh by5nYW9AaW50ZWwuY29tXQo+PiA+ID4+IFNlbnQ6IDA2IERlY2VtYmVyIDIwMTcgMDc6NTAKPj4g PiA+PiBUbzogeGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKPj4gPiA+PiBDYzogQ2hhbyBHYW8gPGNo YW8uZ2FvQGludGVsLmNvbT47IFBhdWwgRHVycmFudAo+PiA+ID4+IDxQYXVsLkR1cnJhbnRAY2l0 cml4LmNvbT47IFRpbSAoWGVuLm9yZykgPHRpbUB4ZW4ub3JnPjsgU3RlZmFubwo+PiA+IFN0YWJl bGxpbmkKPj4gPiA+PiA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz47IEtvbnJhZCBSemVzenV0ZWsg V2lsawo+PiA+ID4+IDxrb25yYWQud2lsa0BvcmFjbGUuY29tPjsgSmFuIEJldWxpY2ggPGpiZXVs aWNoQHN1c2UuY29tPjsgR2VvcmdlCj4+ID4gPj4gRHVubGFwIDxHZW9yZ2UuRHVubGFwQGNpdHJp eC5jb20+OyBBbmRyZXcgQ29vcGVyCj4+ID4gPj4gPEFuZHJldy5Db29wZXIzQGNpdHJpeC5jb20+ OyBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPjsgSWFuCj4+ID4gSmFja3Nvbgo+PiA+ID4+ IDxJYW4uSmFja3NvbkBjaXRyaXguY29tPgo+PiA+ID4+IFN1YmplY3Q6IFtSRkMgUGF0Y2ggdjQg Mi84XSBpb3JlcTogYnVtcCB0aGUgbnVtYmVyIG9mIElPUkVRIHBhZ2UgdG8gNAo+PiA+ID4+IHBh Z2VzCj4+ID4gPj4KPj4gPiA+PiBPbmUgNEstYnl0ZSBwYWdlIGF0IG1vc3QgY29udGFpbnMgMTI4 ICdpb3JlcV90Jy4gSW4gb3JkZXIgdG8gcmVtb3ZlIHRoZQo+PiA+IHZjcHUKPj4gPiA+PiBudW1i ZXIgY29uc3RyYWludCBpbXBvc2VkIGJ5IG9uZSBJT1JFUSBwYWdlLCBidW1wIHRoZSBudW1iZXIg b2YKPj4gPiBJT1JFUQo+PiA+ID4+IHBhZ2UgdG8KPj4gPiA+PiA0IHBhZ2VzLiBXaXRoIHRoaXMg cGF0Y2gsIG11bHRpcGxlIHBhZ2VzIGNhbiBiZSB1c2VkIGFzIElPUkVRIHBhZ2UuCj4+ID4gPj4K Pj4gPiA+PiBCYXNpY2FsbHksIHRoaXMgcGF0Y2ggZXh0ZW5kcyAnaW9yZXEnIGZpZWxkIGluIHN0 cnVjdCBodm1faW9yZXFfc2VydmVyIHRvCj4+IGFuCj4+ID4gPj4gYXJyYXkuIEFsbCBhY2Nlc3Nl cyB0byAnaW9yZXEnIGZpZWxkIHN1Y2ggYXMgJ3MtPmlvcmVxJyBhcmUgcmVwbGFjZWQgd2l0aAo+ PiA+ID4+IEZPUl9FQUNIX0lPUkVRX1BBR0UgbWFjcm8uCj4+ID4gPj4KPj4gPiA+PiBJbiBvcmRl ciB0byBhY2Nlc3MgYW4gSU9SRVEgcGFnZSwgUUVNVSBzaG91bGQgZ2V0IHRoZSBnbWZuIGFuZCBt YXAKPj4gPiB0aGlzCj4+ID4gPj4gZ21mbgo+PiA+ID4+IHRvIGl0cyB2aXJ0dWFsIGFkZHJlc3Mg c3BhY2UuCj4+ID4gPgo+PiA+ID5Oby4gVGhlcmUncyBubyBuZWVkIHRvIGV4dGVuZCB0aGUgJ2xl Z2FjeScgbWVjaGFuaXNtIG9mIHVzaW5nIG1hZ2ljCj4+IHBhZ2UKPj4gPiBnZm5zLiBZb3Ugc2hv dWxkIG9ubHkgaGFuZGxlIHRoZSBjYXNlIHdoZXJlIHRoZSBtZm5zIGFyZSBhbGxvY2F0ZWQgb24K Pj4gPiBkZW1hbmQgKHNlZSB0aGUgY2FsbCB0byBodm1faW9yZXFfc2VydmVyX2FsbG9jX3BhZ2Vz KCkgaW4KPj4gPiBodm1fZ2V0X2lvcmVxX3NlcnZlcl9mcmFtZSgpKS4gVGhlIG51bWJlciBvZiBn dWVzdCB2Y3B1cyBpcyBrbm93biBhdAo+PiA+IHRoaXMgcG9pbnQgc28gdGhlIGNvcnJlY3QgbnVt YmVyIG9mIHBhZ2VzIGNhbiBiZSBhbGxvY2F0ZWQuIElmIHRoZSBjcmVhdG9yIG9mCj4+ID4gdGhl IGlvcmVxIHNlcnZlciBhdHRlbXB0cyB0byB1c2UgdGhlIGxlZ2FjeSBodm1fZ2V0X2lvcmVxX3Nl cnZlcl9pbmZvKCkKPj4gPiBhbmQgdGhlIGd1ZXN0IGhhcyA+MTI4IHZjcHVzIHRoZW4gdGhlIGNh bGwgc2hvdWxkIGZhaWwuCj4+ID4KPj4gPiBHcmVhdCBzdWdnZXN0aW9uLiBJIHdpbGwgaW50cm9k dWNlIGEgbmV3IGRtb3AsIGEgdmFyaWFudCBvZgo+PiA+IGh2bV9nZXRfaW9yZXFfc2VydmVyX2Zy YW1lKCkgZm9yIGNyZWF0b3IgdG8gZ2V0IGFuIGFycmF5IG9mIGdmbnMgYW5kIHRoZQo+PiA+IHNp emUgb2YgYXJyYXkuIEFuZCB0aGUgbGVnYWN5IGludGVyZmFjZSB3aWxsIHJlcG9ydCBhbiBlcnJv ciBpZiBtb3JlCj4+ID4gdGhhbiBvbmUgSU9SRVEgUEFHRVMgYXJlIG5lZWRlZC4KPj4gCj4+IFlv dSBkb24ndCBuZWVkIGEgbmV3IGRtb3AgZm9yIG1hcHBpbmcgSSB0aGluay4gVGhlIG1lbSBvcCB0 byBtYXAgaW9yZXEKPj4gc2VydmVyIGZyYW1lcyBzaG91bGQgd29yay4gQWxsIHlvdSBzaG91bGQg bmVlZCB0byBkbyBpcyB1cGRhdGUKPj4gaHZtX2dldF9pb3JlcV9zZXJ2ZXJfZnJhbWUoKSB0byBk ZWFsIHdpdGggYW4gaW5kZXggPiAxLCBhbmQgcHJvdmlkZSBzb21lCj4+IG1lYW5zIGZvciB0aGUg aW9yZXEgc2VydmVyIGNyZWF0b3IgdG8gY29udmVydCB0aGUgbnVtYmVyIG9mIGd1ZXN0IHZjcHVz IGludG8KPj4gdGhlIGNvcnJlY3QgbnVtYmVyIG9mIHBhZ2VzIHRvIG1hcC4gKFRoYXQgbWlnaHQg bmVlZCBhIG5ldyBkbSBvcCkuCj4KPkkgcmVhbGlzZSBhZnRlciBzYXlpbmcgdGhpcyB0aGF0IGFu IGVtdWxhdG9yIGFscmVhZHkga25vd3MgdGhlIHNpemUgb2YgdGhlIGlvcmVxIHN0cnVjdHVyZSBh bmQgc28gY2FuIGVhc2lseSBjYWxjdWxhdGUgdGhlIGNvcnJlY3QgbnVtYmVyIG9mIHBhZ2VzIHRv IG1hcCwgZ2l2ZW4gdGhlIG51bWJlciBvZiBndWVzdCB2Y3B1cy4KCkhvdyBhYm91dCB0aGUgcGF0 Y2ggaW4gdGhlIGJvdHRvbT8gSXMgaXQgaW4gdGhlIHJpZ2h0IGRpcmVjdGlvbj8KRG8geW91IGhh dmUgdGhlIFFFTVUgcGF0Y2gsIHdoaWNoIHJlcGxhY2VzIHRoZSBvbGQgbWV0aG9kIHdpdGggdGhl IG5ldyBtZXRob2QKdG8gc2V0IHVwIG1hcHBpbmc/IEkgd2FudCB0byBpbnRlZ3JhdGUgdGhhdCBw YXRjaCBhbmQgZG8gc29tZSB0ZXN0cy4KClRoYW5rcwpDaGFvCgpGcm9tIDQ0OTE5ZTFlODBmMzY5 ODFkNmUyMTNmNzQzMDJjOGM4OWNjOWY4MjggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IENoYW8gR2FvIDxjaGFvLmdhb0BpbnRlbC5jb20+CkRhdGU6IFR1ZSwgNSBEZWMgMjAxNyAxNDoy MDoyNCArMDgwMApTdWJqZWN0OiBbUEFUQ0hdIGlvcmVxOiBhZGQgc3VwcG9ydCBvZiBtdWx0aXBs ZSBpb3JlcSBwYWdlcwoKRWFjaCB2Y3B1IHNob3VsZCBoYXZlIGFuIGNvcnJlc3BvbmRpbmcgJ2lv cmVxX3QnIHN0cnVjdHVyZSBpbiB0aGUgaW9yZXEgcGFnZS4KQ3VycmVudGx5LCBvbmx5IG9uZSA0 Sy1ieXRlIHBhZ2UgaXMgdXNlZCBhcyBpb3JlcSBwYWdlLiBUaHVzIGl0IGFsc28gbGltaXRzCnRo ZSBudW1iZXIgb2YgdmNwdSB0byAxMjggaWYgZGV2aWNlIG1vZGVsIGlzIGluIHVzZS4KClRoaXMg cGF0Y2ggY2hhbmdlcyAnaW9yZXEnIGZpZWxkIHRvIGFuIGFycmF5LiBBdCBtb3N0LCA0IHBhZ2Vz IGNhbiBiZSB1c2VkLgpXaGVuIGNyZWF0aW5nIElPIHNlcnZlciwgdGhlIGFjdHVhbCBudW1iZXIg b2YgaW9yZXEgcGFnZSBpcyBjYWxjdWxhdGVkCmFjY29yZGluZyB0byB0aGUgbnVtYmVyIG9mIHZj cHVzLiBBbGwgaW9yZXEgcGFnZXMgYXJlIGFsbG9jYXRlZCBvbiBkZW1hbmQuClRoZSBjcmVhdG9y IHNob3VsZCBwcm92aWRlIGVub3VnaCBudW1iZXIgb2YgZ2ZuIHRvIHNldCB1cCB0aGUgbWFwcGlu Zy4KCkZvciBjb21wYXRpYmlsaXR5LCBhbGwgbGVnYWN5IG9wZXJhdGlvbnMgdGFrZSBlZmZlY3Qg b24gaW9yZXFbMF0uCgpTaWduZWQtb2ZmLWJ5OiBDaGFvIEdhbyA8Y2hhby5nYW9AaW50ZWwuY29t PgotLS0KIHhlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYyAgICAgICAgIHwgODYgKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vZG9t YWluLmggfCAgNiArKy0KIDIgZmlsZXMgY2hhbmdlZCwgNjUgaW5zZXJ0aW9ucygrKSwgMjcgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9pb3JlcS5jIGIveGVuL2Fy Y2gveDg2L2h2bS9pb3JlcS5jCmluZGV4IGQ5OTFhYzkuLjU5OGFlZGIgMTAwNjQ0Ci0tLSBhL3hl bi9hcmNoL3g4Ni9odm0vaW9yZXEuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2lvcmVxLmMKQEAg LTY2LDEyICs2NiwxMiBAQCBzdGF0aWMgc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKmdldF9pb3Jl cV9zZXJ2ZXIoY29uc3Qgc3RydWN0IGRvbWFpbiAqZCwKIAogc3RhdGljIGlvcmVxX3QgKmdldF9p b3JlcShzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcywgc3RydWN0IHZjcHUgKnYpCiB7Ci0gICAg c2hhcmVkX2lvcGFnZV90ICpwID0gcy0+aW9yZXEudmE7CisgICAgc2hhcmVkX2lvcGFnZV90ICpw ID0gcy0+aW9yZXFbdi0+dmNwdV9pZCAvIE5SX0lPUkVRX1BFUl9QQUdFXS52YTsKIAogICAgIEFT U0VSVCgodiA9PSBjdXJyZW50KSB8fCAhdmNwdV9ydW5uYWJsZSh2KSk7CiAgICAgQVNTRVJUKHAg IT0gTlVMTCk7CiAKLSAgICByZXR1cm4gJnAtPnZjcHVfaW9yZXFbdi0+dmNwdV9pZF07CisgICAg cmV0dXJuICZwLT52Y3B1X2lvcmVxW3YtPnZjcHVfaWQgJSBOUl9JT1JFUV9QRVJfUEFHRV07CiB9 CiAKIGJvb2wgaHZtX2lvX3BlbmRpbmcoc3RydWN0IHZjcHUgKnYpCkBAIC0yMzksNyArMjM5LDcg QEAgc3RhdGljIHZvaWQgaHZtX2ZyZWVfaW9yZXFfZ2ZuKHN0cnVjdCBodm1faW9yZXFfc2VydmVy ICpzLCBnZm5fdCBnZm4pCiAKIHN0YXRpYyB2b2lkIGh2bV91bm1hcF9pb3JlcV9nZm4oc3RydWN0 IGh2bV9pb3JlcV9zZXJ2ZXIgKnMsIGJvb2wgYnVmKQogewotICAgIHN0cnVjdCBodm1faW9yZXFf cGFnZSAqaW9ycCA9IGJ1ZiA/ICZzLT5idWZpb3JlcSA6ICZzLT5pb3JlcTsKKyAgICBzdHJ1Y3Qg aHZtX2lvcmVxX3BhZ2UgKmlvcnAgPSBidWYgPyAmcy0+YnVmaW9yZXEgOiAmcy0+aW9yZXFbMF07 CiAKICAgICBpZiAoIGdmbl9lcShpb3JwLT5nZm4sIElOVkFMSURfR0ZOKSApCiAgICAgICAgIHJl dHVybjsKQEAgLTI1Niw3ICsyNTYsNyBAQCBzdGF0aWMgdm9pZCBodm1fdW5tYXBfaW9yZXFfZ2Zu KHN0cnVjdCBodm1faW9yZXFfc2VydmVyICpzLCBib29sIGJ1ZikKIHN0YXRpYyBpbnQgaHZtX21h cF9pb3JlcV9nZm4oc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMsIGJvb2wgYnVmKQogewogICAg IHN0cnVjdCBkb21haW4gKmQgPSBzLT5kb21haW47Ci0gICAgc3RydWN0IGh2bV9pb3JlcV9wYWdl ICppb3JwID0gYnVmID8gJnMtPmJ1ZmlvcmVxIDogJnMtPmlvcmVxOworICAgIHN0cnVjdCBodm1f aW9yZXFfcGFnZSAqaW9ycCA9IGJ1ZiA/ICZzLT5idWZpb3JlcSA6ICZzLT5pb3JlcVswXTsKICAg ICBpbnQgcmM7CiAKICAgICBpZiAoIGlvcnAtPnBhZ2UgKQpAQCAtMjk0LDEwICsyOTQsMTAgQEAg c3RhdGljIGludCBodm1fbWFwX2lvcmVxX2dmbihzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcywg Ym9vbCBidWYpCiAgICAgcmV0dXJuIHJjOwogfQogCi1zdGF0aWMgaW50IGh2bV9hbGxvY19pb3Jl cV9tZm4oc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMsIGJvb2wgYnVmKQorc3RhdGljIGludCBo dm1fYWxsb2NfaW9yZXFfbWZuKHN0cnVjdCBodm1faW9yZXFfc2VydmVyICpzLCB1aW50OF90IGlk eCkKIHsKICAgICBzdHJ1Y3QgZG9tYWluICpjdXJyZCA9IGN1cnJlbnQtPmRvbWFpbjsKLSAgICBz dHJ1Y3QgaHZtX2lvcmVxX3BhZ2UgKmlvcnAgPSBidWYgPyAmcy0+YnVmaW9yZXEgOiAmcy0+aW9y ZXE7CisgICAgc3RydWN0IGh2bV9pb3JlcV9wYWdlICppb3JwID0gaWR4ID8gJnMtPmlvcmVxW2lk eCAtIDFdIDogJnMtPmJ1ZmlvcmVxOwogCiAgICAgaWYgKCBpb3JwLT5wYWdlICkKICAgICB7CkBA IC0zNDQsOSArMzQ0LDkgQEAgc3RhdGljIGludCBodm1fYWxsb2NfaW9yZXFfbWZuKHN0cnVjdCBo dm1faW9yZXFfc2VydmVyICpzLCBib29sIGJ1ZikKICAgICByZXR1cm4gMDsKIH0KIAotc3RhdGlj IHZvaWQgaHZtX2ZyZWVfaW9yZXFfbWZuKHN0cnVjdCBodm1faW9yZXFfc2VydmVyICpzLCBib29s IGJ1ZikKK3N0YXRpYyB2b2lkIGh2bV9mcmVlX2lvcmVxX21mbihzdHJ1Y3QgaHZtX2lvcmVxX3Nl cnZlciAqcywgdWludDhfdCBpZHgpCiB7Ci0gICAgc3RydWN0IGh2bV9pb3JlcV9wYWdlICppb3Jw ID0gYnVmID8gJnMtPmJ1ZmlvcmVxIDogJnMtPmlvcmVxOworICAgIHN0cnVjdCBodm1faW9yZXFf cGFnZSAqaW9ycCA9IGlkeCA/ICZzLT5pb3JlcVtpZHggLSAxXSA6ICZzLT5idWZpb3JlcTsKIAog ICAgIGlmICggIWlvcnAtPnBhZ2UgKQogICAgICAgICByZXR1cm47CkBAIC0zNjgsNyArMzY4LDE4 IEBAIGJvb2wgaXNfaW9yZXFfc2VydmVyX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgY29uc3Qgc3Ry dWN0IHBhZ2VfaW5mbyAqcGFnZSkKIAogICAgIEZPUl9FQUNIX0lPUkVRX1NFUlZFUihkLCBpZCwg cykKICAgICB7Ci0gICAgICAgIGlmICggKHMtPmlvcmVxLnBhZ2UgPT0gcGFnZSkgfHwgKHMtPmJ1 ZmlvcmVxLnBhZ2UgPT0gcGFnZSkgKQorICAgICAgICBpbnQgaTsKKworICAgICAgICBmb3IgKCBp ID0gMDsgaSA8IHMtPm5yX2lvcmVxX3BhZ2U7IGkrKyApCisgICAgICAgIHsKKyAgICAgICAgICAg IGlmICggcy0+aW9yZXFbaV0ucGFnZSA9PSBwYWdlICkKKyAgICAgICAgICAgIHsKKyAgICAgICAg ICAgICAgICBmb3VuZCA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg ICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoICFmb3VuZCAmJiBzLT5idWZpb3JlcS5wYWdl ID09IHBhZ2UgKQogICAgICAgICB7CiAgICAgICAgICAgICBmb3VuZCA9IHRydWU7CiAgICAgICAg ICAgICBicmVhazsKQEAgLTM4NCw3ICszOTUsNyBAQCBzdGF0aWMgdm9pZCBodm1fcmVtb3ZlX2lv cmVxX2dmbihzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcywgYm9vbCBidWYpCiAKIHsKICAgICBz dHJ1Y3QgZG9tYWluICpkID0gcy0+ZG9tYWluOwotICAgIHN0cnVjdCBodm1faW9yZXFfcGFnZSAq aW9ycCA9IGJ1ZiA/ICZzLT5idWZpb3JlcSA6ICZzLT5pb3JlcTsKKyAgICBzdHJ1Y3QgaHZtX2lv cmVxX3BhZ2UgKmlvcnAgPSBidWYgPyAmcy0+YnVmaW9yZXEgOiAmcy0+aW9yZXFbMF07CiAKICAg ICBpZiAoIElTX0RFRkFVTFQocykgfHwgZ2ZuX2VxKGlvcnAtPmdmbiwgSU5WQUxJRF9HRk4pICkK ICAgICAgICAgcmV0dXJuOwpAQCAtMzk4LDcgKzQwOSw3IEBAIHN0YXRpYyB2b2lkIGh2bV9yZW1v dmVfaW9yZXFfZ2ZuKHN0cnVjdCBodm1faW9yZXFfc2VydmVyICpzLCBib29sIGJ1ZikKIHN0YXRp YyBpbnQgaHZtX2FkZF9pb3JlcV9nZm4oc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMsIGJvb2wg YnVmKQogewogICAgIHN0cnVjdCBkb21haW4gKmQgPSBzLT5kb21haW47Ci0gICAgc3RydWN0IGh2 bV9pb3JlcV9wYWdlICppb3JwID0gYnVmID8gJnMtPmJ1ZmlvcmVxIDogJnMtPmlvcmVxOworICAg IHN0cnVjdCBodm1faW9yZXFfcGFnZSAqaW9ycCA9IGJ1ZiA/ICZzLT5idWZpb3JlcSA6ICZzLT5p b3JlcVswXTsKICAgICBpbnQgcmM7CiAKICAgICBpZiAoIElTX0RFRkFVTFQocykgfHwgZ2ZuX2Vx KGlvcnAtPmdmbiwgSU5WQUxJRF9HRk4pICkKQEAgLTQxOSw3ICs0MzAsNyBAQCBzdGF0aWMgdm9p ZCBodm1fdXBkYXRlX2lvcmVxX2V2dGNobihzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcywKIHsK ICAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJnMtPmxvY2spKTsKIAotICAgIGlmICggcy0+aW9y ZXEudmEgIT0gTlVMTCApCisgICAgaWYgKCBzLT5pb3JlcVtzdi0+dmNwdS0+dmNwdV9pZCAvIE5S X0lPUkVRX1BFUl9QQUdFXS52YSApCiAgICAgewogICAgICAgICBpb3JlcV90ICpwID0gZ2V0X2lv cmVxKHMsIHN2LT52Y3B1KTsKIApAQCAtNTYzLDIzICs1NzQsMjcgQEAgc3RhdGljIHZvaWQgaHZt X2lvcmVxX3NlcnZlcl91bm1hcF9wYWdlcyhzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcykKIAog c3RhdGljIGludCBodm1faW9yZXFfc2VydmVyX2FsbG9jX3BhZ2VzKHN0cnVjdCBodm1faW9yZXFf c2VydmVyICpzKQogewotICAgIGludCByYzsKLQotICAgIHJjID0gaHZtX2FsbG9jX2lvcmVxX21m bihzLCBmYWxzZSk7CisgICAgaW50IHJjID0gMCwgaTsKIAotICAgIGlmICggIXJjICYmIChzLT5i dWZpb3JlcV9oYW5kbGluZyAhPSBIVk1fSU9SRVFTUlZfQlVGSU9SRVFfT0ZGKSApCi0gICAgICAg IHJjID0gaHZtX2FsbG9jX2lvcmVxX21mbihzLCB0cnVlKTsKKyAgICBmb3IgKCBpID0gIUhBTkRM RV9CVUZJT1JFUShzKTsgaSA8PSBzLT5ucl9pb3JlcV9wYWdlOyBpKysgKQorICAgIHsKKyAgICAg ICAgcmMgPSBodm1fYWxsb2NfaW9yZXFfbWZuKHMsIGkpOworICAgICAgICBicmVhazsKKyAgICB9 CiAKICAgICBpZiAoIHJjICkKLSAgICAgICAgaHZtX2ZyZWVfaW9yZXFfbWZuKHMsIGZhbHNlKTsK KyAgICAgICAgZm9yICggOyBpID49IDA7IGktLSApCisgICAgICAgICAgICBodm1fZnJlZV9pb3Jl cV9tZm4ocywgaSk7CiAKICAgICByZXR1cm4gcmM7CiB9CiAKIHN0YXRpYyB2b2lkIGh2bV9pb3Jl cV9zZXJ2ZXJfZnJlZV9wYWdlcyhzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcykKIHsKLSAgICBo dm1fZnJlZV9pb3JlcV9tZm4ocywgdHJ1ZSk7Ci0gICAgaHZtX2ZyZWVfaW9yZXFfbWZuKHMsIGZh bHNlKTsKKyAgICBpbnQgaTsKKworICAgIGZvciAoIGkgPSAwOyBpIDw9IHMtPm5yX2lvcmVxX3Bh Z2U7IGkrKyApCisgICAgICAgIGh2bV9mcmVlX2lvcmVxX21mbihzLCBpKTsKIH0KIAogc3RhdGlj IHZvaWQgaHZtX2lvcmVxX3NlcnZlcl9mcmVlX3Jhbmdlc2V0cyhzdHJ1Y3QgaHZtX2lvcmVxX3Nl cnZlciAqcykKQEAgLTY4MSw3ICs2OTYsNyBAQCBzdGF0aWMgaW50IGh2bV9pb3JlcV9zZXJ2ZXJf aW5pdChzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcywKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGludCBidWZpb3JlcV9oYW5kbGluZywgaW9zZXJ2aWRfdCBpZCkKIHsKICAgICBz dHJ1Y3QgdmNwdSAqdjsKLSAgICBpbnQgcmM7CisgICAgaW50IHJjLCBpOwogCiAgICAgcy0+ZG9t YWluID0gZDsKICAgICBzLT5kb21pZCA9IGRvbWlkOwpAQCAtNjkwLDcgKzcwNSwxMCBAQCBzdGF0 aWMgaW50IGh2bV9pb3JlcV9zZXJ2ZXJfaW5pdChzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcywK ICAgICBJTklUX0xJU1RfSEVBRCgmcy0+aW9yZXFfdmNwdV9saXN0KTsKICAgICBzcGluX2xvY2tf aW5pdCgmcy0+YnVmaW9yZXFfbG9jayk7CiAKLSAgICBzLT5pb3JlcS5nZm4gPSBJTlZBTElEX0dG TjsKKyAgICBzLT5ucl9pb3JlcV9wYWdlID0gKGQtPm1heF92Y3B1cyArIE5SX0lPUkVRX1BFUl9Q QUdFIC0gMSkgLworICAgICAgICAgICAgICAgICAgICAgICBOUl9JT1JFUV9QRVJfUEFHRTsKKyAg ICBmb3IgKCBpID0gMDsgaSA8IE1BWF9OUl9JT1JFUV9QQUdFOyBpKysgKQorICAgICAgICBzLT5p b3JlcVtpXS5nZm4gPSBJTlZBTElEX0dGTjsKICAgICBzLT5idWZpb3JlcS5nZm4gPSBJTlZBTElE X0dGTjsKIAogICAgIHJjID0gaHZtX2lvcmVxX3NlcnZlcl9hbGxvY19yYW5nZXNldHMocywgaWQp OwpAQCAtNzYwLDYgKzc3OCwxMCBAQCBpbnQgaHZtX2NyZWF0ZV9pb3JlcV9zZXJ2ZXIoc3RydWN0 IGRvbWFpbiAqZCwgZG9taWRfdCBkb21pZCwKICAgICAgICAgcmMgPSAtRUVYSVNUOwogICAgICAg ICBpZiAoIEdFVF9JT1JFUV9TRVJWRVIoZCwgaSkgKQogICAgICAgICAgICAgZ290byBmYWlsOwor CisgICAgICAgIC8qIERvbid0IGNyZWF0ZSBkZWZhdWx0IElPIHNlcnZlciBpZiA+IDEgaW9yZXEg cGFnZXMgYXJlIG5lZWRlZCAqLworICAgICAgICBpZiAoIGQtPm1heF92Y3B1cyA+IE5SX0lPUkVR X1BFUl9QQUdFICkKKyAgICAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAgICAgZWxzZQogICAg IHsKQEAgLTg1OCw2ICs4ODAsOSBAQCBpbnQgaHZtX2dldF9pb3JlcV9zZXJ2ZXJfaW5mbyhzdHJ1 Y3QgZG9tYWluICpkLCBpb3NlcnZpZF90IGlkLAogICAgIGlmICggIXMgKQogICAgICAgICBnb3Rv IG91dDsKIAorICAgIGlmICggcy0+bnJfaW9yZXFfcGFnZSA+IDEgKQorICAgICAgICByZXR1cm4g LUVJTlZBTDsKKwogICAgIEFTU0VSVCghSVNfREVGQVVMVChzKSk7CiAKICAgICBpZiAoIGlvcmVx X2dmbiB8fCBidWZpb3JlcV9nZm4gKQpAQCAtODY4LDcgKzg5Myw3IEBAIGludCBodm1fZ2V0X2lv cmVxX3NlcnZlcl9pbmZvKHN0cnVjdCBkb21haW4gKmQsIGlvc2VydmlkX3QgaWQsCiAgICAgfQog CiAgICAgaWYgKCBpb3JlcV9nZm4gKQotICAgICAgICAqaW9yZXFfZ2ZuID0gZ2ZuX3gocy0+aW9y ZXEuZ2ZuKTsKKyAgICAgICAgKmlvcmVxX2dmbiA9IGdmbl94KHMtPmlvcmVxWzBdLmdmbik7CiAK ICAgICBpZiAoIEhBTkRMRV9CVUZJT1JFUShzKSApCiAgICAgewpAQCAtOTE3LDEwICs5NDIsMTkg QEAgaW50IGh2bV9nZXRfaW9yZXFfc2VydmVyX2ZyYW1lKHN0cnVjdCBkb21haW4gKmQsIGlvc2Vy dmlkX3QgaWQsCiAgICAgICAgIHJjID0gMDsKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIFhF Tk1FTV9yZXNvdXJjZV9pb3JlcV9zZXJ2ZXJfZnJhbWVfaW9yZXEoMCk6Ci0gICAgICAgICptZm4g PSBfbWZuKHBhZ2VfdG9fbWZuKHMtPmlvcmVxLnBhZ2UpKTsKLSAgICAgICAgcmMgPSAwOworICAg IGNhc2UgWEVOTUVNX3Jlc291cmNlX2lvcmVxX3NlcnZlcl9mcmFtZV9pb3JlcSgwKSAuLi4gXAor ICAgICAgICAgWEVOTUVNX3Jlc291cmNlX2lvcmVxX3NlcnZlcl9mcmFtZV9pb3JlcShNQVhfTlJf SU9SRVFfUEFHRSk6CisgICAgeworICAgICAgICBpbnQgaSA9IGlkeCAtIFhFTk1FTV9yZXNvdXJj ZV9pb3JlcV9zZXJ2ZXJfZnJhbWVfaW9yZXEoMCk7CisKKyAgICAgICAgcmMgPSAtRUlOVkFMOwor ICAgICAgICBpZiAoIGkgPCBzLT5ucl9pb3JlcV9wYWdlICkKKyAgICAgICAgeworICAgICAgICAg ICAgKm1mbiA9IF9tZm4ocGFnZV90b19tZm4ocy0+aW9yZXFbaV0ucGFnZSkpOworICAgICAgICAg ICAgcmMgPSAwOworICAgICAgICB9CiAgICAgICAgIGJyZWFrOworICAgIH0KIAogICAgIGRlZmF1 bHQ6CiAgICAgICAgIHJjID0gLUVJTlZBTDsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14 ODYvaHZtL2RvbWFpbi5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vZG9tYWluLmgKaW5kZXgg ODdmNzk5NC4uMzIwMmY3NCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vZG9t YWluLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vZG9tYWluLmgKQEAgLTUxLDYgKzUx LDggQEAgc3RydWN0IGh2bV9pb3JlcV92Y3B1IHsKIAogI2RlZmluZSBOUl9JT19SQU5HRV9UWVBF UyAoWEVOX0RNT1BfSU9fUkFOR0VfUENJICsgMSkKICNkZWZpbmUgTUFYX05SX0lPX1JBTkdFUyAg MjU2CisjZGVmaW5lIE1BWF9OUl9JT1JFUV9QQUdFIDQKKyNkZWZpbmUgTlJfSU9SRVFfUEVSX1BB R0UgKFBBR0VfU0laRSAvIHNpemVvZihpb3JlcV90KSkKIAogc3RydWN0IGh2bV9pb3JlcV9zZXJ2 ZXIgewogICAgIHN0cnVjdCBsaXN0X2hlYWQgICAgICAgbGlzdF9lbnRyeTsKQEAgLTYxLDcgKzYz LDkgQEAgc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgewogCiAgICAgLyogRG9tYWluIGlkIG9mIGVt dWxhdGluZyBkb21haW4gKi8KICAgICBkb21pZF90ICAgICAgICAgICAgICAgIGRvbWlkOwotICAg IHN0cnVjdCBodm1faW9yZXFfcGFnZSAgaW9yZXE7CisgICAgLyogUGVyLUlPc2VydmVyIGxpbWl0 YXRpb24gb24gdGhlIHNpemUgb2YgJ2lvcmVxJyBhcnJheSAqLworICAgIHVpbnQ4X3QgICAgICAg ICAgICAgICAgbnJfaW9yZXFfcGFnZTsKKyAgICBzdHJ1Y3QgaHZtX2lvcmVxX3BhZ2UgIGlvcmVx W01BWF9OUl9JT1JFUV9QQUdFXTsKICAgICBzdHJ1Y3QgbGlzdF9oZWFkICAgICAgIGlvcmVxX3Zj cHVfbGlzdDsKICAgICBzdHJ1Y3QgaHZtX2lvcmVxX3BhZ2UgIGJ1ZmlvcmVxOwogCi0tIAoxLjgu My4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVu LWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6 Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==