From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= Subject: Re: [PATCH v2 15/20] block/xen-blkfront: Make it running on 64KB page granularity Date: Tue, 21 Jul 2015 13:06:42 +0200 Message-ID: <55AE27C2.8090803__23474.7242102914$1437476876$gmane$org@citrix.com> References: <1436474552-31789-1-git-send-email-julien.grall@citrix.com> <1436474552-31789-16-git-send-email-julien.grall@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1ZHVNq-0004Gj-QX for xen-devel@lists.xenproject.org; Tue, 21 Jul 2015 11:06:51 +0000 In-Reply-To: <1436474552-31789-16-git-send-email-julien.grall@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Julien Grall , xen-devel@lists.xenproject.org Cc: ian.campbell@citrix.com, stefano.stabellini@eu.citrix.com, Julien Grall , linux-kernel@vger.kernel.org, David Vrabel , Boris Ostrovsky , linux-arm-kernel@lists.infradead.org List-Id: xen-devel@lists.xenproject.org RWwgMDkvMDcvMTUgYSBsZXMgMjIuNDIsIEp1bGllbiBHcmFsbCBoYSBlc2NyaXQ6Cj4gRnJvbTog SnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAbGluYXJvLm9yZz4KPiAKPiBUaGUgUFYgYmxvY2sg cHJvdG9jb2wgaXMgdXNpbmcgNEtCIHBhZ2UgZ3JhbnVsYXJpdHkuIFRoZSBnb2FsIG9mIHRoaXMK PiBwYXRjaCBpcyB0byBhbGxvdyBhIExpbnV4IHVzaW5nIDY0S0IgcGFnZSBncmFudWxhcml0eSB1 c2luZyBibG9jawo+IGRldmljZSBvbiBhIG5vbi1tb2RpZmllZCBYZW4uCj4gCj4gVGhlIGJsb2Nr IEFQSSBpcyB1c2luZyBzZWdtZW50IHdoaWNoIHNob3VsZCBhdCBsZWFzdCBiZSB0aGUgc2l6ZSBv ZiBhCiAgICAgICAgICAgICAgICAgICAgICAgICBeIHNlZ21lbnRzCj4gTGludXggcGFnZS4gVGhl cmVmb3JlLCB0aGUgZHJpdmVyIHdpbGwgaGF2ZSB0byBicmVhayB0aGUgcGFnZSBpbiBjaHVuawog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjaHVua3MgXgo+IG9mIDRLIGJlZm9yZSBnaXZpbmcgdGhlIHBhZ2UgdG8gdGhlIGJhY2tlbmQu Cj4gCj4gQnJlYWtpbmcgYSA2NEtCIHNlZ21lbnQgaW4gNEtCIGNodW5rIHdpbGwgcmVzdWx0IHRv IGhhdmUgc29tZSBjaHVuayB3aXRoCj4gbm8gZGF0YS4KCkkgd291bGQgcmV3cml0ZSB0aGlzIGFz OgoKQnJlYWtpbmcgYSA2NEtCIHBhZ2UgaW50byA0S0IgY2h1bmtzIGNhbiByZXN1bHQgaW4gY2h1 bmtzIHdpdGggbm8gZGF0YS4KCj4gQXMgdGhlIFBWIHByb3RvY29sIGFsd2F5cyByZXF1aXJlIHRv IGhhdmUgZGF0YSBpbiB0aGUgY2h1bmssIHdlCj4gaGF2ZSB0byBjb3VudCB0aGUgbnVtYmVyIG9m IFhlbiBwYWdlIHdoaWNoIHdpbGwgYmUgaW4gdXNlIGFuZCBhdm9pZCB0bwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXiBwYWdlcyAgICAgICAgICAgICByZW1vdmUgdGhlICJ0byIg Xgo+IHNlbnQgZW1wdHkgY2h1bmsuCiAgXiBzZW5kaW5nIGVtcHR5IGNodW5rcwo+IAo+IE5vdGUg dGhhdCwgYSBwcmUtZGVmaW5lZCBudW1iZXIgb2YgZ3JhbnQgaXMgcmVzZXJ2ZWQgYmVmb3JlIHBy ZXBhcmluZwogICAgICAgICAgIF4gbm8gY29tYSAgICAgICAgICAgICAgICAgXiBncmFudHMgYXJl Cj4gdGhlIHJlcXVlc3QuIFRoaXMgcHJlLWRlZmluZWQgbnVtYmVyIGlzIGJhc2VkIG9uIHRoZSBu dW1iZXIgYW5kIHRoZQo+IG1heGltdW0gc2l6ZSBvZiB0aGUgc2VnbWVudHMuIElmIGVhY2ggc2Vn bWVudCBjb250YWluIGEgdmVyeSBzbWFsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeIGNvbnRhaW5zCj4gYW1vdW50IG9mIGRhdGEsIHRoZSBkcml2ZXIg bWF5IHJlc2VydmUgdG9vIG11Y2ggZ3JhbnQgKDE2IGdyYW50IGlzCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gbWFueSBncmFudHM/IF4gZ3JhbnRzIGFyZQo+ IHJlc2VydmVkIHBlciBzZWdtZW50IHdpdGggNjRLQiBwYWdlIGdyYW51bGFyaXR5KS4KPiAKPiBG dXRoZXJtb3JlLCBpbiB0aGUgY2FzZSBvZiBwZXJzaXN0ZW50IGdyYW50IHdlIGFsbG9jYXRlIG9u ZSBMaW51eCBwYWdlCiAgXiBGdXJ0aGVybW9yZSAgXiBjYXNlIG9mIHVzaW5nIHBlcnNpc3RlbnQg Z3JhbnRzCj4gcGVyIGdyYW50IGFsdGhvdWdoIG9ubHkgdGhlIDRLQiBvZiB0aGUgcGFnZSB3aWxs IGJlIGVmZmVjdGl2ZWx5IHVzZS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeIGluaXRp YWwgICAgICAgICAgICAgICAgXiB1c2VkLgo+IFRoaXMgY291bGQgYmUgaW1wcm92ZWQgYnkgc2hh cmUgdGhlIHBhZ2Ugd2l0aCBtdWx0aXBsZSBncmFudHMuCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeIHNoYXJpbmcgdGhlIHBhZ2UgYmV0d2Vlbgo+IAo+IFNpZ25lZC1vZmYtYnk6IEp1bGll biBHcmFsbCA8anVsaWVuLmdyYWxsQGNpdHJpeC5jb20+Cj4gQ2M6IEtvbnJhZCBSemVzenV0ZWsg V2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4KPiBDYzogUm9nZXIgUGF1IE1vbm7DqSA8cm9n ZXIucGF1QGNpdHJpeC5jb20+Cj4gQ2M6IEJvcmlzIE9zdHJvdnNreSA8Ym9yaXMub3N0cm92c2t5 QG9yYWNsZS5jb20+Cj4gQ2M6IERhdmlkIFZyYWJlbCA8ZGF2aWQudnJhYmVsQGNpdHJpeC5jb20+ CgpUaGlzIGxvb2tzIG11Y2ggYmV0dGVyIG5vdywgdGhhbmtzLgoKQWNrZWQtYnk6IFJvZ2VyIFBh dSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgoKPiAtLS0KPiAKPiBJbXByb3ZlbWVudCBz dWNoIGFzIHN1cHBvcnQgNjRLQiBncmFudCBpcyBub3QgdGFrZW4gaW50byBjb25zaWRlcmF0aW9u IGluCj4gdGhpcyBwYXRjaCBiZWNhdXNlIHdlIGhhdmUgdGhlIHJlcXVpcmVtZW50IHRvIHJ1biBh IExpbnV4IHVzaW5nIDY0S0IgcGFnZQo+IG9uIGEgbm9uLW1vZGlmaWVkIFhlbi4KPiAKPiAgICAg Q2hhbmdlcyBpbiB2MjoKPiAgICAgICAgIC0gVXNlIGdudHRhYl9mb3JlYWNoX2dyYW50IHRvIHNw bGl0IGEgTGludXggcGFnZSBpbnRvIGdyYW50Cj4gLS0tCj4gIGRyaXZlcnMvYmxvY2sveGVuLWJs a2Zyb250LmMgfCAzMDQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t LQo+ICAxIGZpbGUgY2hhbmdlZCwgMTk4IGluc2VydGlvbnMoKyksIDEwNiBkZWxldGlvbnMoLSkK PiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay94ZW4tYmxrZnJvbnQuYyBiL2RyaXZlcnMv YmxvY2sveGVuLWJsa2Zyb250LmMKPiBpbmRleCA5NWZkMDY3Li42NDRiYTc2IDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvYmxvY2sveGVuLWJsa2Zyb250LmMKPiArKysgYi9kcml2ZXJzL2Jsb2NrL3hl bi1ibGtmcm9udC5jCj4gQEAgLTc3LDYgKzc3LDcgQEAgc3RydWN0IGJsa19zaGFkb3cgewo+ICAJ c3RydWN0IGdyYW50ICoqZ3JhbnRzX3VzZWQ7Cj4gIAlzdHJ1Y3QgZ3JhbnQgKippbmRpcmVjdF9n cmFudHM7Cj4gIAlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnOwo+ICsJdW5zaWduZWQgaW50IG51bV9z ZzsKPiAgfTsKPiAgCj4gIHN0cnVjdCBzcGxpdF9iaW8gewo+IEBAIC0xMDYsOCArMTA3LDggQEAg c3RhdGljIHVuc2lnbmVkIGludCB4ZW5fYmxraWZfbWF4X3Jpbmdfb3JkZXI7Cj4gIG1vZHVsZV9w YXJhbV9uYW1lZChtYXhfcmluZ19wYWdlX29yZGVyLCB4ZW5fYmxraWZfbWF4X3Jpbmdfb3JkZXIs IGludCwgU19JUlVHTyk7Cj4gIE1PRFVMRV9QQVJNX0RFU0MobWF4X3JpbmdfcGFnZV9vcmRlciwg Ik1heGltdW0gb3JkZXIgb2YgcGFnZXMgdG8gYmUgdXNlZCBmb3IgdGhlIHNoYXJlZCByaW5nIik7 Cj4gIAo+IC0jZGVmaW5lIEJMS19SSU5HX1NJWkUoaW5mbykgX19DT05TVF9SSU5HX1NJWkUoYmxr aWYsIFBBR0VfU0laRSAqIChpbmZvKS0+bnJfcmluZ19wYWdlcykKPiAtI2RlZmluZSBCTEtfTUFY X1JJTkdfU0laRSBfX0NPTlNUX1JJTkdfU0laRShibGtpZiwgUEFHRV9TSVpFICogWEVOQlVTX01B WF9SSU5HX1BBR0VTKQo+ICsjZGVmaW5lIEJMS19SSU5HX1NJWkUoaW5mbykgX19DT05TVF9SSU5H X1NJWkUoYmxraWYsIFhFTl9QQUdFX1NJWkUgKiAoaW5mbyktPm5yX3JpbmdfcGFnZXMpCj4gKyNk ZWZpbmUgQkxLX01BWF9SSU5HX1NJWkUgX19DT05TVF9SSU5HX1NJWkUoYmxraWYsIFhFTl9QQUdF X1NJWkUgKiBYRU5CVVNfTUFYX1JJTkdfUEFHRVMpCj4gIC8qCj4gICAqIHJpbmctcmVmJWkgaT0o LTFVTCkgd291bGQgdGFrZSAxMSBjaGFyYWN0ZXJzICsgJ3JpbmctcmVmJyBpcyA4LCBzbyAxOQo+ ICAgKiBjaGFyYWN0ZXJzIGFyZSBlbm91Z2guIERlZmluZSB0byAyMCB0byBrZWVwIGNvbnNpc3Qg d2l0aCBiYWNrZW5kLgo+IEBAIC0xNDYsNiArMTQ3LDcgQEAgc3RydWN0IGJsa2Zyb250X2luZm8K PiAgCXVuc2lnbmVkIGludCBkaXNjYXJkX2dyYW51bGFyaXR5Owo+ICAJdW5zaWduZWQgaW50IGRp c2NhcmRfYWxpZ25tZW50Owo+ICAJdW5zaWduZWQgaW50IGZlYXR1cmVfcGVyc2lzdGVudDoxOwo+ ICsJLyogTnVtYmVyIG9mIDRLIHNlZ21lbnQgaGFuZGxlZCAqLwogICAgICAgICAgICAgICAgICAg ICAgICBeIHNlZ21lbnRzCj4gIAl1bnNpZ25lZCBpbnQgbWF4X2luZGlyZWN0X3NlZ21lbnRzOwo+ ICAJaW50IGlzX3JlYWR5Owo+ICB9Owo+IEBAIC0xNzMsMTAgKzE3NSwxOSBAQCBzdGF0aWMgREVG SU5FX1NQSU5MT0NLKG1pbm9yX2xvY2spOwo+ICAKPiAgI2RlZmluZSBERVZfTkFNRQkieHZkIgkv KiBuYW1lIGluIC9kZXYgKi8KPiAgCj4gLSNkZWZpbmUgU0VHU19QRVJfSU5ESVJFQ1RfRlJBTUUg XAo+IC0JKFBBR0VfU0laRS9zaXplb2Yoc3RydWN0IGJsa2lmX3JlcXVlc3Rfc2VnbWVudCkpCj4g LSNkZWZpbmUgSU5ESVJFQ1RfR1JFRlMoX3NlZ3MpIFwKPiAtCSgoX3NlZ3MgKyBTRUdTX1BFUl9J TkRJUkVDVF9GUkFNRSAtIDEpL1NFR1NfUEVSX0lORElSRUNUX0ZSQU1FKQo+ICsvKgo+ICsgKiBY ZW4gdXNlIDRLIHBhZ2VzLiBUaGUgZ3Vlc3QgbWF5IHVzZSBkaWZmZXJlbnQgcGFnZSBzaXplICg0 SyBvciA2NEspCj4gKyAqIE51bWJlciBvZiBYZW4gcGFnZXMgcGVyIHNlZ21lbnQKPiArICovCj4g KyNkZWZpbmUgWEVOX1BBR0VTX1BFUl9TRUdNRU5UICAgKFBBR0VfU0laRSAvIFhFTl9QQUdFX1NJ WkUpCj4gKwo+ICsjZGVmaW5lIFNFR1NfUEVSX0lORElSRUNUX0ZSQU1FCVwKPiArCShYRU5fUEFH RV9TSVpFL3NpemVvZihzdHJ1Y3QgYmxraWZfcmVxdWVzdF9zZWdtZW50KSAvIFhFTl9QQUdFU19Q RVJfU0VHTUVOVCkKPiArI2RlZmluZSBYRU5fUEFHRVNfUEVSX0lORElSRUNUX0ZSQU1FIFwKPiAr CShYRU5fUEFHRV9TSVpFL3NpemVvZihzdHJ1Y3QgYmxraWZfcmVxdWVzdF9zZWdtZW50KSkKPiAr Cj4gKyNkZWZpbmUgSU5ESVJFQ1RfR1JFRlMoX3BhZ2VzKSBcCj4gKwkoKF9wYWdlcyArIFhFTl9Q QUdFU19QRVJfSU5ESVJFQ1RfRlJBTUUgLSAxKS9YRU5fUEFHRVNfUEVSX0lORElSRUNUX0ZSQU1F KQo+ICAKPiAgc3RhdGljIGludCBibGtmcm9udF9zZXR1cF9pbmRpcmVjdChzdHJ1Y3QgYmxrZnJv bnRfaW5mbyAqaW5mbyk7Cj4gIAo+IEBAIC00NjMsMTQgKzQ3NCwxMDAgQEAgc3RhdGljIGludCBi bGtpZl9xdWV1ZV9kaXNjYXJkX3JlcShzdHJ1Y3QgcmVxdWVzdCAqcmVxKQo+ICAJcmV0dXJuIDA7 Cj4gIH0KPiAgCj4gK3N0cnVjdCBzZXR1cF9yd19yZXEgewo+ICsJdW5zaWduZWQgaW50IGdyYW50 X2lkeDsKPiArCXN0cnVjdCBibGtpZl9yZXF1ZXN0X3NlZ21lbnQgKnNlZ21lbnRzOwo+ICsJc3Ry dWN0IGJsa2Zyb250X2luZm8gKmluZm87Cj4gKwlzdHJ1Y3QgYmxraWZfcmVxdWVzdCAqcmluZ19y ZXE7Cj4gKwlncmFudF9yZWZfdCBncmVmX2hlYWQ7Cj4gKwl1bnNpZ25lZCBpbnQgaWQ7Cj4gKwkv KiBPbmx5IHVzZWQgd2hlbiBwZXJzaXN0ZW50IGdyYW50IGlzIHVzZWQgYW5kIGl0J3MgYSByZWFk IHJlcXVlc3QgKi8KPiArCWJvb2wgbmVlZF9jb3B5Owo+ICsJdW5zaWduZWQgaW50IGJ2ZWNfb2Zm Owo+ICsJY2hhciAqYnZlY19kYXRhOwo+ICt9Owo+ICsKPiArc3RhdGljIHZvaWQgYmxraWZfc2V0 dXBfcndfcmVxX2dyYW50KHVuc2lnbmVkIGxvbmcgbWZuLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAo+ ICsJCQkJICAgICB1bnNpZ25lZCBpbnQgKmxlbiwgdm9pZCAqZGF0YSkKPiArewo+ICsJc3RydWN0 IHNldHVwX3J3X3JlcSAqc2V0dXAgPSBkYXRhOwo+ICsJaW50IG4sIHJlZjsKPiArCXN0cnVjdCBn cmFudCAqZ250X2xpc3RfZW50cnk7Cj4gKwl1bnNpZ25lZCBpbnQgZnNlY3QsIGxzZWN0Owo+ICsJ LyogQ29udmVuaWVudCBhbGlhc2VzICovCj4gKwl1bnNpZ25lZCBpbnQgZ3JhbnRfaWR4ID0gc2V0 dXAtPmdyYW50X2lkeDsKPiArCXN0cnVjdCBibGtpZl9yZXF1ZXN0ICpyaW5nX3JlcSA9IHNldHVw LT5yaW5nX3JlcTsKPiArCXN0cnVjdCBibGtmcm9udF9pbmZvICppbmZvID0gc2V0dXAtPmluZm87 Cj4gKwlzdHJ1Y3QgYmxrX3NoYWRvdyAqc2hhZG93ID0gJmluZm8tPnNoYWRvd1tzZXR1cC0+aWRd Owo+ICsKPiArCWlmICgocmluZ19yZXEtPm9wZXJhdGlvbiA9PSBCTEtJRl9PUF9JTkRJUkVDVCkg JiYKPiArCSAgICAoZ3JhbnRfaWR4ICUgWEVOX1BBR0VTX1BFUl9JTkRJUkVDVF9GUkFNRSA9PSAw KSkgewo+ICsJCWlmIChzZXR1cC0+c2VnbWVudHMpCj4gKwkJCWt1bm1hcF9hdG9taWMoc2V0dXAt PnNlZ21lbnRzKTsKPiArCj4gKwkJbiA9IGdyYW50X2lkeCAvIFhFTl9QQUdFU19QRVJfSU5ESVJF Q1RfRlJBTUU7Cj4gKwkJZ250X2xpc3RfZW50cnkgPSBnZXRfaW5kaXJlY3RfZ3JhbnQoJnNldHVw LT5ncmVmX2hlYWQsIGluZm8pOwo+ICsJCXNoYWRvdy0+aW5kaXJlY3RfZ3JhbnRzW25dID0gZ250 X2xpc3RfZW50cnk7Cj4gKwkJc2V0dXAtPnNlZ21lbnRzID0ga21hcF9hdG9taWMoZ250X2xpc3Rf ZW50cnktPnBhZ2UpOwo+ICsJCXJpbmdfcmVxLT51LmluZGlyZWN0LmluZGlyZWN0X2dyZWZzW25d ID0gZ250X2xpc3RfZW50cnktPmdyZWY7Cj4gKwl9Cj4gKwo+ICsJZ250X2xpc3RfZW50cnkgPSBn ZXRfZ3JhbnQoJnNldHVwLT5ncmVmX2hlYWQsIG1mbiwgaW5mbyk7Cj4gKwlyZWYgPSBnbnRfbGlz dF9lbnRyeS0+Z3JlZjsKPiArCXNoYWRvdy0+Z3JhbnRzX3VzZWRbZ3JhbnRfaWR4XSA9IGdudF9s aXN0X2VudHJ5Owo+ICsKPiArCWlmIChzZXR1cC0+bmVlZF9jb3B5KSB7Cj4gKwkJdm9pZCAqc2hh cmVkX2RhdGE7Cj4gKwo+ICsJCXNoYXJlZF9kYXRhID0ga21hcF9hdG9taWMoZ250X2xpc3RfZW50 cnktPnBhZ2UpOwo+ICsJCS8qCj4gKwkJICogdGhpcyBkb2VzIG5vdCB3aXBlIGRhdGEgc3RvcmVk IG91dHNpZGUgdGhlCj4gKwkJICogcmFuZ2Ugc2ctPm9mZnNldC4uc2ctPm9mZnNldCtzZy0+bGVu Z3RoLgo+ICsJCSAqIFRoZXJlZm9yZSwgYmxrYmFjayAqY291bGQqIHNlZSBkYXRhIGZyb20KPiAr CQkgKiBwcmV2aW91cyByZXF1ZXN0cy4gVGhpcyBpcyBPSyBhcyBsb25nIGFzCj4gKwkJICogcGVy c2lzdGVudCBncmFudHMgYXJlIHNoYXJlZCB3aXRoIGp1c3Qgb25lCj4gKwkJICogZG9tYWluLiBJ dCBtYXkgbmVlZCByZWZhY3RvcmluZyBpZiB0aGlzCj4gKwkJICogY2hhbmdlcwo+ICsJCSAqLwo+ ICsJCW1lbWNweShzaGFyZWRfZGF0YSArIG9mZnNldCwKPiArCQkgICAgICAgc2V0dXAtPmJ2ZWNf ZGF0YSArIHNldHVwLT5idmVjX29mZiwKPiArCQkgICAgICAgKmxlbik7Cj4gKwo+ICsJCWt1bm1h cF9hdG9taWMoc2hhcmVkX2RhdGEpOwo+ICsJCXNldHVwLT5idmVjX29mZiArPSAqbGVuOwo+ICsJ fQo+ICsKPiArCWZzZWN0ID0gb2Zmc2V0ID4+IDk7Cj4gKwlsc2VjdCA9IGZzZWN0ICsgKCpsZW4g Pj4gOSkgLSAxOwo+ICsJaWYgKHJpbmdfcmVxLT5vcGVyYXRpb24gIT0gQkxLSUZfT1BfSU5ESVJF Q1QpIHsKPiArCQlyaW5nX3JlcS0+dS5ydy5zZWdbZ3JhbnRfaWR4XSA9Cj4gKwkJCShzdHJ1Y3Qg YmxraWZfcmVxdWVzdF9zZWdtZW50KSB7Cj4gKwkJCQkuZ3JlZiAgICAgICA9IHJlZiwKPiArCQkJ CS5maXJzdF9zZWN0ID0gZnNlY3QsCj4gKwkJCQkubGFzdF9zZWN0ICA9IGxzZWN0IH07Cj4gKwl9 IGVsc2Ugewo+ICsJCXNldHVwLT5zZWdtZW50c1tncmFudF9pZHggJSBYRU5fUEFHRVNfUEVSX0lO RElSRUNUX0ZSQU1FXSA9Cj4gKwkJCShzdHJ1Y3QgYmxraWZfcmVxdWVzdF9zZWdtZW50KSB7Cj4g KwkJCQkuZ3JlZiAgICAgICA9IHJlZiwKPiArCQkJCS5maXJzdF9zZWN0ID0gZnNlY3QsCj4gKwkJ CQkubGFzdF9zZWN0ICA9IGxzZWN0IH07Cj4gKwl9Cj4gKwo+ICsJKHNldHVwLT5ncmFudF9pZHgp Kys7Cj4gK30KPiArCj4gIHN0YXRpYyBpbnQgYmxraWZfcXVldWVfcndfcmVxKHN0cnVjdCByZXF1 ZXN0ICpyZXEpCj4gIHsKPiAgCXN0cnVjdCBibGtmcm9udF9pbmZvICppbmZvID0gcmVxLT5ycV9k aXNrLT5wcml2YXRlX2RhdGE7Cj4gIAlzdHJ1Y3QgYmxraWZfcmVxdWVzdCAqcmluZ19yZXE7Cj4g IAl1bnNpZ25lZCBsb25nIGlkOwo+IC0JdW5zaWduZWQgaW50IGZzZWN0LCBsc2VjdDsKPiAtCWlu dCBpLCByZWYsIG47Cj4gLQlzdHJ1Y3QgYmxraWZfcmVxdWVzdF9zZWdtZW50ICpzZWdtZW50cyA9 IE5VTEw7Cj4gKwlpbnQgaTsKPiArCXN0cnVjdCBzZXR1cF9yd19yZXEgc2V0dXAgPSB7Cj4gKwkJ LmdyYW50X2lkeCA9IDAsCj4gKwkJLnNlZ21lbnRzID0gTlVMTCwKPiArCQkuaW5mbyA9IGluZm8s Cj4gKwkJLm5lZWRfY29weSA9IHJxX2RhdGFfZGlyKHJlcSkgJiYgaW5mby0+ZmVhdHVyZV9wZXJz aXN0ZW50LAo+ICsJfTsKPiAgCj4gIAkvKgo+ICAJICogVXNlZCB0byBzdG9yZSBpZiB3ZSBhcmUg YWJsZSB0byBxdWV1ZSB0aGUgcmVxdWVzdCBieSBqdXN0IHVzaW5nCj4gQEAgLTQ3OCwyNSArNTc1 LDIzIEBAIHN0YXRpYyBpbnQgYmxraWZfcXVldWVfcndfcmVxKHN0cnVjdCByZXF1ZXN0ICpyZXEp Cj4gIAkgKiBhcyB0aGVyZSBhcmUgbm90IHN1ZmZpY2llbnRseSBtYW55IGZyZWUuCj4gIAkgKi8K PiAgCWJvb2wgbmV3X3BlcnNpc3RlbnRfZ250czsKPiAtCWdyYW50X3JlZl90IGdyZWZfaGVhZDsK PiAtCXN0cnVjdCBncmFudCAqZ250X2xpc3RfZW50cnkgPSBOVUxMOwo+ICAJc3RydWN0IHNjYXR0 ZXJsaXN0ICpzZzsKPiAtCWludCBuc2VnLCBtYXhfZ3JlZnM7Cj4gKwlpbnQgbnNlZywgbWF4X2dy ZWZzLCBucl9wYWdlOwo+ICAKPiAtCW1heF9ncmVmcyA9IHJlcS0+bnJfcGh5c19zZWdtZW50czsK PiArCW1heF9ncmVmcyA9IHJlcS0+bnJfcGh5c19zZWdtZW50cyAqIFhFTl9QQUdFU19QRVJfU0VH TUVOVDsKPiAgCWlmIChtYXhfZ3JlZnMgPiBCTEtJRl9NQVhfU0VHTUVOVFNfUEVSX1JFUVVFU1Qp Cj4gIAkJLyoKPiAgCQkgKiBJZiB3ZSBhcmUgdXNpbmcgaW5kaXJlY3Qgc2VnbWVudHMgd2UgbmVl ZCB0byBhY2NvdW50Cj4gIAkJICogZm9yIHRoZSBpbmRpcmVjdCBncmVmcyB1c2VkIGluIHRoZSBy ZXF1ZXN0Lgo+ICAJCSAqLwo+IC0JCW1heF9ncmVmcyArPSBJTkRJUkVDVF9HUkVGUyhyZXEtPm5y X3BoeXNfc2VnbWVudHMpOwo+ICsJCW1heF9ncmVmcyArPSBJTkRJUkVDVF9HUkVGUyhyZXEtPm5y X3BoeXNfc2VnbWVudHMgKiBYRU5fUEFHRVNfUEVSX1NFR01FTlQpOwo+ICAKPiAgCS8qIENoZWNr IGlmIHdlIGhhdmUgZW5vdWdoIGdyYW50cyB0byBhbGxvY2F0ZSBhIHJlcXVlc3RzICovCj4gIAlp ZiAoaW5mby0+cGVyc2lzdGVudF9nbnRzX2MgPCBtYXhfZ3JlZnMpIHsKPiAgCQluZXdfcGVyc2lz dGVudF9nbnRzID0gMTsKPiAgCQlpZiAoZ250dGFiX2FsbG9jX2dyYW50X3JlZmVyZW5jZXMoCj4g IAkJICAgIG1heF9ncmVmcyAtIGluZm8tPnBlcnNpc3RlbnRfZ250c19jLAo+IC0JCSAgICAmZ3Jl Zl9oZWFkKSA8IDApIHsKPiArCQkgICAgJnNldHVwLmdyZWZfaGVhZCkgPCAwKSB7Cj4gIAkJCWdu dHRhYl9yZXF1ZXN0X2ZyZWVfY2FsbGJhY2soCj4gIAkJCQkmaW5mby0+Y2FsbGJhY2ssCj4gIAkJ CQlibGtpZl9yZXN0YXJ0X3F1ZXVlX2NhbGxiYWNrLAo+IEBAIC01MTMsMTIgKzYwOCwxOCBAQCBz dGF0aWMgaW50IGJsa2lmX3F1ZXVlX3J3X3JlcShzdHJ1Y3QgcmVxdWVzdCAqcmVxKQo+ICAJaW5m by0+c2hhZG93W2lkXS5yZXF1ZXN0ID0gcmVxOwo+ICAKPiAgCUJVR19PTihpbmZvLT5tYXhfaW5k aXJlY3Rfc2VnbWVudHMgPT0gMCAmJgo+IC0JICAgICAgIHJlcS0+bnJfcGh5c19zZWdtZW50cyA+ IEJMS0lGX01BWF9TRUdNRU5UU19QRVJfUkVRVUVTVCk7Cj4gKwkgICAgICAgKFhFTl9QQUdFU19Q RVJfU0VHTUVOVCAqIHJlcS0+bnJfcGh5c19zZWdtZW50cykgPiBCTEtJRl9NQVhfU0VHTUVOVFNf UEVSX1JFUVVFU1QpOwo+ICAJQlVHX09OKGluZm8tPm1heF9pbmRpcmVjdF9zZWdtZW50cyAmJgo+ IC0JICAgICAgIHJlcS0+bnJfcGh5c19zZWdtZW50cyA+IGluZm8tPm1heF9pbmRpcmVjdF9zZWdt ZW50cyk7Cj4gKwkJKHJlcS0+bnJfcGh5c19zZWdtZW50cyAqIFhFTl9QQUdFU19QRVJfU0VHTUVO VCkgPiBpbmZvLT5tYXhfaW5kaXJlY3Rfc2VnbWVudHMpOwo+ICAJbnNlZyA9IGJsa19ycV9tYXBf c2cocmVxLT5xLCByZXEsIGluZm8tPnNoYWRvd1tpZF0uc2cpOwo+ICsJbnJfcGFnZSA9IDA7Cj4g KwkvKiBDYWxjdWxhdGUgdGhlIG51bWJlciBvZiBYZW4gcGFnZXMgdXNlZCAqLwo+ICsJZm9yX2Vh Y2hfc2coaW5mby0+c2hhZG93W2lkXS5zZywgc2csIG5zZWcsIGkpIHsKPiArCQlucl9wYWdlICs9 IChyb3VuZF91cChzZy0+b2Zmc2V0ICsgc2ctPmxlbmd0aCwgWEVOX1BBR0VfU0laRSkgLSByb3Vu ZF9kb3duKHNnLT5vZmZzZXQsIFhFTl9QQUdFX1NJWkUpKSA+PiBYRU5fUEFHRV9TSElGVDsKCkkg aGF2ZW4ndCBjb3VudGVkIHRoZSBjaGFyYWN0ZXJzLCBidXQgdGhpcyBsaW5lIGxvb2tzIHRvbyBs b25nLCBhbHNvIHlvdQpjYW4gZ2V0IHJpZCBvZiB0aGUgYnJhY2VzIHNpbmNlIGl0J3MgYSBzaW5n bGUgbGluZSBzdGF0ZW1lbnQuCgpSb2dlci4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3Rz Lnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==