From mboxrd@z Thu Jan 1 00:00:00 1970 From: Guido =?iso-8859-1?Q?G=FCnther?= Subject: Re: [PATCH v2 2/8] drm/etnaviv: split out cmdbuf mapping into address space Date: Fri, 2 Aug 2019 15:39:00 +0200 Message-ID: <20190802133900.GA3251@bogon.m.sigxcpu.org> References: <20190705171727.27501-1-l.stach@pengutronix.de> <20190705171727.27501-2-l.stach@pengutronix.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20190705171727.27501-2-l.stach@pengutronix.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Lucas Stach Cc: etnaviv@lists.freedesktop.org, dri-devel@lists.freedesktop.org, patchwork-lst@pengutronix.de, kernel@pengutronix.de, Russell King List-Id: dri-devel@lists.freedesktop.org SGkgTHVjYXMsCk9uIEZyaSwgSnVsIDA1LCAyMDE5IGF0IDA3OjE3OjIxUE0gKzAyMDAsIEx1Y2Fz IFN0YWNoIHdyb3RlOgo+IFRoaXMgYWxsb3dzIHRvIGRlY291cGxlIHRoZSBjbWRidWYgc3ViYWxs b2NhdG9yIGNyZWF0ZSBhbmQgbWFwcGluZwo+IHRoZSByZWdpb24gaW50byB0aGUgR1BVIGFkZHJl c3Mgc3BhY2UuIEFsbG93aW5nIG11bHRpcGxlIEFTIHRvIHNoYXJlCj4gYSBzaW5nbGUgY21kYnVm IHN1YmFsbG9jLgoKQ2FuIHlvdSB0ZWxsIG1lIHdoZXJlIHRoaXMgd291bGQgYXBwbHk/IEkgdHJp ZWQgNS4yIGFuZCBuZXh0LTIwMTkwNzI2CndpdGggYW5kIHdpdGhvdXQKCiAgIFtQQVRDSCAxLzJd IGRybS9ldG5hdml2OiBmaXggZXRuYXZpdl9jbWRidWZfc3ViYWxsb2NfbmV3IHJldHVybiB2YWx1 ZQoKYXBwbGllZC4KQ2hlZXJzLAogLS0gR3VpZG8KCj4gU2lnbmVkLW9mZi1ieTogTHVjYXMgU3Rh Y2ggPGwuc3RhY2hAcGVuZ3V0cm9uaXguZGU+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9ldG5h dml2L2V0bmF2aXZfYnVmZmVyLmMgfCAyMyArKysrLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZXRu YXZpdi9ldG5hdml2X2NtZGJ1Zi5jIHwgMzUgKysrKysrLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2Ry bS9ldG5hdml2L2V0bmF2aXZfY21kYnVmLmggfCAxMSArKystCj4gIGRyaXZlcnMvZ3B1L2RybS9l dG5hdml2L2V0bmF2aXZfZHVtcC5jICAgfCAgNiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vZXRuYXZp di9ldG5hdml2X2dwdS5jICAgIHwgMTkgKysrKystLQo+ICBkcml2ZXJzL2dwdS9kcm0vZXRuYXZp di9ldG5hdml2X2dwdS5oICAgIHwgIDMgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRu YXZpdl9tbXUuYyAgICB8IDcwICsrKysrKysrKysrKysrKy0tLS0tLS0tLQo+ICBkcml2ZXJzL2dw dS9kcm0vZXRuYXZpdi9ldG5hdml2X21tdS5oICAgIHwgMTIgKystLQo+ICA4IGZpbGVzIGNoYW5n ZWQsIDExNCBpbnNlcnRpb25zKCspLCA2NSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9idWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9ldG5hdml2L2V0bmF2aXZfYnVmZmVyLmMKPiBpbmRleCBmZTBkMmQ2NzAwN2QuLjY0MDBhODhj ZDc3OCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2J1ZmZl ci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9idWZmZXIuYwo+IEBA IC0xMTgsNyArMTE4LDggQEAgc3RhdGljIHZvaWQgZXRuYXZpdl9idWZmZXJfZHVtcChzdHJ1Y3Qg ZXRuYXZpdl9ncHUgKmdwdSwKPiAgCXUzMiAqcHRyID0gYnVmLT52YWRkciArIG9mZjsKPiAgCj4g IAlkZXZfaW5mbyhncHUtPmRldiwgInZpcnQgJXAgcGh5cyAweCUwOHggZnJlZSAweCUwOHhcbiIs Cj4gLQkJCXB0ciwgZXRuYXZpdl9jbWRidWZfZ2V0X3ZhKGJ1ZikgKyBvZmYsIHNpemUgLSBsZW4g KiA0IC0gb2ZmKTsKPiArCQkJcHRyLCBldG5hdml2X2NtZGJ1Zl9nZXRfdmEoYnVmLCAmZ3B1LT5j bWRidWZfbWFwcGluZykgKwo+ICsJCQlvZmYsIHNpemUgLSBsZW4gKiA0IC0gb2ZmKTsKPiAgCj4g IAlwcmludF9oZXhfZHVtcChLRVJOX0lORk8sICJjbWQgIiwgRFVNUF9QUkVGSVhfT0ZGU0VULCAx NiwgNCwKPiAgCQkJcHRyLCBsZW4gKiA0LCAwKTsKPiBAQCAtMTUxLDcgKzE1Miw4IEBAIHN0YXRp YyB1MzIgZXRuYXZpdl9idWZmZXJfcmVzZXJ2ZShzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSwKPiAg CWlmIChidWZmZXItPnVzZXJfc2l6ZSArIGNtZF9kd29yZHMgKiBzaXplb2YodTY0KSA+IGJ1ZmZl ci0+c2l6ZSkKPiAgCQlidWZmZXItPnVzZXJfc2l6ZSA9IDA7Cj4gIAo+IC0JcmV0dXJuIGV0bmF2 aXZfY21kYnVmX2dldF92YShidWZmZXIpICsgYnVmZmVyLT51c2VyX3NpemU7Cj4gKwlyZXR1cm4g ZXRuYXZpdl9jbWRidWZfZ2V0X3ZhKGJ1ZmZlciwgJmdwdS0+Y21kYnVmX21hcHBpbmcpICsKPiAr CSAgICAgICBidWZmZXItPnVzZXJfc2l6ZTsKPiAgfQo+ICAKPiAgdTE2IGV0bmF2aXZfYnVmZmVy X2luaXQoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUpCj4gQEAgLTE2NCw4ICsxNjYsOCBAQCB1MTYg ZXRuYXZpdl9idWZmZXJfaW5pdChzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSkKPiAgCWJ1ZmZlci0+ dXNlcl9zaXplID0gMDsKPiAgCj4gIAlDTURfV0FJVChidWZmZXIpOwo+IC0JQ01EX0xJTksoYnVm ZmVyLCAyLCBldG5hdml2X2NtZGJ1Zl9nZXRfdmEoYnVmZmVyKSArCj4gLQkJIGJ1ZmZlci0+dXNl cl9zaXplIC0gNCk7Cj4gKwlDTURfTElOSyhidWZmZXIsIDIsIGV0bmF2aXZfY21kYnVmX2dldF92 YShidWZmZXIsICZncHUtPmNtZGJ1Zl9tYXBwaW5nKQo+ICsJCSArIGJ1ZmZlci0+dXNlcl9zaXpl IC0gNCk7Cj4gIAo+ICAJcmV0dXJuIGJ1ZmZlci0+dXNlcl9zaXplIC8gODsKPiAgfQo+IEBAIC0y OTEsOCArMjkzLDggQEAgdm9pZCBldG5hdml2X3N5bmNfcG9pbnRfcXVldWUoc3RydWN0IGV0bmF2 aXZfZ3B1ICpncHUsIHVuc2lnbmVkIGludCBldmVudCkKPiAgCj4gIAkvKiBBcHBlbmQgd2FpdGxp bmsgKi8KPiAgCUNNRF9XQUlUKGJ1ZmZlcik7Cj4gLQlDTURfTElOSyhidWZmZXIsIDIsIGV0bmF2 aXZfY21kYnVmX2dldF92YShidWZmZXIpICsKPiAtCQkJICAgIGJ1ZmZlci0+dXNlcl9zaXplIC0g NCk7Cj4gKwlDTURfTElOSyhidWZmZXIsIDIsIGV0bmF2aXZfY21kYnVmX2dldF92YShidWZmZXIs ICZncHUtPmNtZGJ1Zl9tYXBwaW5nKQo+ICsJCSArIGJ1ZmZlci0+dXNlcl9zaXplIC0gNCk7Cj4g IAo+ICAJLyoKPiAgCSAqIEtpY2sgb2ZmIHRoZSAnc3luYyBwb2ludCcgY29tbWFuZCBieSByZXBs YWNpbmcgdGhlIHByZXZpb3VzCj4gQEAgLTMxOSw3ICszMjEsNyBAQCB2b2lkIGV0bmF2aXZfYnVm ZmVyX3F1ZXVlKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1LCB1MzIgZXhlY19zdGF0ZSwKPiAgCWlm IChkcm1fZGVidWcgJiBEUk1fVVRfRFJJVkVSKQo+ICAJCWV0bmF2aXZfYnVmZmVyX2R1bXAoZ3B1 LCBidWZmZXIsIDAsIDB4NTApOwo+ICAKPiAtCWxpbmtfdGFyZ2V0ID0gZXRuYXZpdl9jbWRidWZf Z2V0X3ZhKGNtZGJ1Zik7Cj4gKwlsaW5rX3RhcmdldCA9IGV0bmF2aXZfY21kYnVmX2dldF92YShj bWRidWYsICZncHUtPmNtZGJ1Zl9tYXBwaW5nKTsKPiAgCWxpbmtfZHdvcmRzID0gY21kYnVmLT5z aXplIC8gODsKPiAgCj4gIAkvKgo+IEBAIC00MTIsMTIgKzQxNCwxMyBAQCB2b2lkIGV0bmF2aXZf YnVmZmVyX3F1ZXVlKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1LCB1MzIgZXhlY19zdGF0ZSwKPiAg CUNNRF9MT0FEX1NUQVRFKGJ1ZmZlciwgVklWU19HTF9FVkVOVCwgVklWU19HTF9FVkVOVF9FVkVO VF9JRChldmVudCkgfAo+ICAJCSAgICAgICBWSVZTX0dMX0VWRU5UX0ZST01fUEUpOwo+ICAJQ01E X1dBSVQoYnVmZmVyKTsKPiAtCUNNRF9MSU5LKGJ1ZmZlciwgMiwgZXRuYXZpdl9jbWRidWZfZ2V0 X3ZhKGJ1ZmZlcikgKwo+IC0JCQkgICAgYnVmZmVyLT51c2VyX3NpemUgLSA0KTsKPiArCUNNRF9M SU5LKGJ1ZmZlciwgMiwgZXRuYXZpdl9jbWRidWZfZ2V0X3ZhKGJ1ZmZlciwgJmdwdS0+Y21kYnVm X21hcHBpbmcpCj4gKwkJICsgYnVmZmVyLT51c2VyX3NpemUgLSA0KTsKPiAgCj4gIAlpZiAoZHJt X2RlYnVnICYgRFJNX1VUX0RSSVZFUikKPiAgCQlwcl9pbmZvKCJzdHJlYW0gbGluayB0byAweCUw OHggQCAweCUwOHggJXBcbiIsCj4gLQkJCXJldHVybl90YXJnZXQsIGV0bmF2aXZfY21kYnVmX2dl dF92YShjbWRidWYpLAo+ICsJCQlyZXR1cm5fdGFyZ2V0LAo+ICsJCQlldG5hdml2X2NtZGJ1Zl9n ZXRfdmEoY21kYnVmLCAmZ3B1LT5jbWRidWZfbWFwcGluZyksCj4gIAkJCWNtZGJ1Zi0+dmFkZHIp Owo+ICAKPiAgCWlmIChkcm1fZGVidWcgJiBEUk1fVVRfRFJJVkVSKSB7Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfY21kYnVmLmMgYi9kcml2ZXJzL2dwdS9k cm0vZXRuYXZpdi9ldG5hdml2X2NtZGJ1Zi5jCj4gaW5kZXggN2I3Nzk5MmYzMWM0Li44OTE1ZDlk MDU2YTYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9jbWRi dWYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfY21kYnVmLmMKPiBA QCAtOCw2ICs4LDcgQEAKPiAgI2luY2x1ZGUgPGRybS9kcm1fbW0uaD4KPiAgCj4gICNpbmNsdWRl ICJldG5hdml2X2NtZGJ1Zi5oIgo+ICsjaW5jbHVkZSAiZXRuYXZpdl9nZW0uaCIKPiAgI2luY2x1 ZGUgImV0bmF2aXZfZ3B1LmgiCj4gICNpbmNsdWRlICJldG5hdml2X21tdS5oIgo+ICAKPiBAQCAt MjEsMTAgKzIyLDYgQEAgc3RydWN0IGV0bmF2aXZfY21kYnVmX3N1YmFsbG9jIHsKPiAgCXZvaWQg KnZhZGRyOwo+ICAJZG1hX2FkZHJfdCBwYWRkcjsKPiAgCj4gLQkvKiBHUFUgbWFwcGluZyAqLwo+ IC0JdTMyIGlvdmE7Cj4gLQlzdHJ1Y3QgZHJtX21tX25vZGUgdnJhbV9ub2RlOyAvKiBvbmx5IHVz ZWQgb24gTU1VdjIgKi8KPiAtCj4gIAkvKiBhbGxvY2F0aW9uIG1hbmFnZW1lbnQgKi8KPiAgCXN0 cnVjdCBtdXRleCBsb2NrOwo+ICAJREVDTEFSRV9CSVRNQVAoZ3JhbnVsZV9tYXAsIFNVQkFMTE9D X0dSQU5VTEVTKTsKPiBAQCAtNTMsMjYgKzUwLDMxIEBAIGV0bmF2aXZfY21kYnVmX3N1YmFsbG9j X25ldyhzdHJ1Y3QgZXRuYXZpdl9ncHUgKiBncHUpCj4gIAkJZ290byBmcmVlX3N1YmFsbG9jOwo+ ICAJfQo+ICAKPiAtCXJldCA9IGV0bmF2aXZfaW9tbXVfZ2V0X3N1YmFsbG9jX3ZhKGdwdSwgc3Vi YWxsb2MtPnBhZGRyLAo+IC0JCQkJCSAgICAmc3ViYWxsb2MtPnZyYW1fbm9kZSwgU1VCQUxMT0Nf U0laRSwKPiAtCQkJCQkgICAgJnN1YmFsbG9jLT5pb3ZhKTsKPiAtCWlmIChyZXQpCj4gLQkJZ290 byBmcmVlX2RtYTsKPiAtCj4gIAlyZXR1cm4gc3ViYWxsb2M7Cj4gIAo+IC1mcmVlX2RtYToKPiAt CWRtYV9mcmVlX3djKGdwdS0+ZGV2LCBTVUJBTExPQ19TSVpFLCBzdWJhbGxvYy0+dmFkZHIsIHN1 YmFsbG9jLT5wYWRkcik7Cj4gIGZyZWVfc3ViYWxsb2M6Cj4gIAlrZnJlZShzdWJhbGxvYyk7Cj4g IAo+ICAJcmV0dXJuIEVSUl9QVFIocmV0KTsKPiAgfQo+ICAKPiAraW50IGV0bmF2aXZfY21kYnVm X3N1YmFsbG9jX21hcChzdHJ1Y3QgZXRuYXZpdl9jbWRidWZfc3ViYWxsb2MgKnN1YmFsbG9jLAo+ ICsJCQkJc3RydWN0IGV0bmF2aXZfaW9tbXUgKm1tdSwKPiArCQkJCXN0cnVjdCBldG5hdml2X3Zy YW1fbWFwcGluZyAqbWFwcGluZywKPiArCQkJCXUzMiBtZW1vcnlfYmFzZSkKPiArewo+ICsJcmV0 dXJuIGV0bmF2aXZfaW9tbXVfZ2V0X3N1YmFsbG9jX3ZhKG1tdSwgbWFwcGluZywgbWVtb3J5X2Jh c2UsCj4gKwkJCQkJICAgICBzdWJhbGxvYy0+cGFkZHIsIFNVQkFMTE9DX1NJWkUpOwo+ICt9Cj4g Kwo+ICt2b2lkIGV0bmF2aXZfY21kYnVmX3N1YmFsbG9jX3VubWFwKHN0cnVjdCBldG5hdml2X2lv bW11ICptbXUsCj4gKwkJCQkgICBzdHJ1Y3QgZXRuYXZpdl92cmFtX21hcHBpbmcgKm1hcHBpbmcp Cj4gK3sKPiArCWV0bmF2aXZfaW9tbXVfcHV0X3N1YmFsbG9jX3ZhKG1tdSwgbWFwcGluZyk7Cj4g K30KPiArCj4gIHZvaWQgZXRuYXZpdl9jbWRidWZfc3ViYWxsb2NfZGVzdHJveShzdHJ1Y3QgZXRu YXZpdl9jbWRidWZfc3ViYWxsb2MgKnN1YmFsbG9jKQo+ICB7Cj4gLQlldG5hdml2X2lvbW11X3B1 dF9zdWJhbGxvY192YShzdWJhbGxvYy0+Z3B1LCAmc3ViYWxsb2MtPnZyYW1fbm9kZSwKPiAtCQkJ CSAgICAgIFNVQkFMTE9DX1NJWkUsIHN1YmFsbG9jLT5pb3ZhKTsKPiAgCWRtYV9mcmVlX3djKHN1 YmFsbG9jLT5ncHUtPmRldiwgU1VCQUxMT0NfU0laRSwgc3ViYWxsb2MtPnZhZGRyLAo+ICAJCSAg ICBzdWJhbGxvYy0+cGFkZHIpOwo+ICAJa2ZyZWUoc3ViYWxsb2MpOwo+IEBAIC0xMjYsOSArMTI4 LDEwIEBAIHZvaWQgZXRuYXZpdl9jbWRidWZfZnJlZShzdHJ1Y3QgZXRuYXZpdl9jbWRidWYgKmNt ZGJ1ZikKPiAgCXdha2VfdXBfYWxsKCZzdWJhbGxvYy0+ZnJlZV9ldmVudCk7Cj4gIH0KPiAgCj4g LXUzMiBldG5hdml2X2NtZGJ1Zl9nZXRfdmEoc3RydWN0IGV0bmF2aXZfY21kYnVmICpidWYpCj4g K3UzMiBldG5hdml2X2NtZGJ1Zl9nZXRfdmEoc3RydWN0IGV0bmF2aXZfY21kYnVmICpidWYsCj4g KwkJCSAgc3RydWN0IGV0bmF2aXZfdnJhbV9tYXBwaW5nICptYXBwaW5nKQo+ICB7Cj4gLQlyZXR1 cm4gYnVmLT5zdWJhbGxvYy0+aW92YSArIGJ1Zi0+c3ViYWxsb2Nfb2Zmc2V0Owo+ICsJcmV0dXJu IG1hcHBpbmctPmlvdmEgKyBidWYtPnN1YmFsbG9jX29mZnNldDsKPiAgfQo+ICAKPiAgZG1hX2Fk ZHJfdCBldG5hdml2X2NtZGJ1Zl9nZXRfcGEoc3RydWN0IGV0bmF2aXZfY21kYnVmICpidWYpCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfY21kYnVmLmggYi9k cml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2NtZGJ1Zi5oCj4gaW5kZXggNDk5MDg3OTc0 NTZlLi4xMWQ5NWYwNWMwMTcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYv ZXRuYXZpdl9jbWRidWYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZf Y21kYnVmLmgKPiBAQCAtOSw2ICs5LDggQEAKPiAgI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Cj4g IAo+ICBzdHJ1Y3QgZXRuYXZpdl9ncHU7Cj4gK3N0cnVjdCBldG5hdml2X2lvbW11Owo+ICtzdHJ1 Y3QgZXRuYXZpdl92cmFtX21hcHBpbmc7Cj4gIHN0cnVjdCBldG5hdml2X2NtZGJ1Zl9zdWJhbGxv YzsKPiAgCj4gIHN0cnVjdCBldG5hdml2X2NtZGJ1ZiB7Cj4gQEAgLTI0LDEzICsyNiwyMCBAQCBz dHJ1Y3QgZXRuYXZpdl9jbWRidWYgewo+ICBzdHJ1Y3QgZXRuYXZpdl9jbWRidWZfc3ViYWxsb2Mg Kgo+ICBldG5hdml2X2NtZGJ1Zl9zdWJhbGxvY19uZXcoc3RydWN0IGV0bmF2aXZfZ3B1ICogZ3B1 KTsKPiAgdm9pZCBldG5hdml2X2NtZGJ1Zl9zdWJhbGxvY19kZXN0cm95KHN0cnVjdCBldG5hdml2 X2NtZGJ1Zl9zdWJhbGxvYyAqc3ViYWxsb2MpOwo+ICtpbnQgZXRuYXZpdl9jbWRidWZfc3ViYWxs b2NfbWFwKHN0cnVjdCBldG5hdml2X2NtZGJ1Zl9zdWJhbGxvYyAqc3ViYWxsb2MsCj4gKwkJCQlz dHJ1Y3QgZXRuYXZpdl9pb21tdSAqbW11LAo+ICsJCQkJc3RydWN0IGV0bmF2aXZfdnJhbV9tYXBw aW5nICptYXBwaW5nLAo+ICsJCQkJdTMyIG1lbW9yeV9iYXNlKTsKPiArdm9pZCBldG5hdml2X2Nt ZGJ1Zl9zdWJhbGxvY191bm1hcChzdHJ1Y3QgZXRuYXZpdl9pb21tdSAqbW11LAo+ICsJCQkJICAg c3RydWN0IGV0bmF2aXZfdnJhbV9tYXBwaW5nICptYXBwaW5nKTsKPiAgCj4gIAo+ICBpbnQgZXRu YXZpdl9jbWRidWZfaW5pdChzdHJ1Y3QgZXRuYXZpdl9jbWRidWZfc3ViYWxsb2MgKnN1YmFsbG9j LAo+ICAJCXN0cnVjdCBldG5hdml2X2NtZGJ1ZiAqY21kYnVmLCB1MzIgc2l6ZSk7Cj4gIHZvaWQg ZXRuYXZpdl9jbWRidWZfZnJlZShzdHJ1Y3QgZXRuYXZpdl9jbWRidWYgKmNtZGJ1Zik7Cj4gIAo+ IC11MzIgZXRuYXZpdl9jbWRidWZfZ2V0X3ZhKHN0cnVjdCBldG5hdml2X2NtZGJ1ZiAqYnVmKTsK PiArdTMyIGV0bmF2aXZfY21kYnVmX2dldF92YShzdHJ1Y3QgZXRuYXZpdl9jbWRidWYgKmJ1ZiwK PiArCQkJICBzdHJ1Y3QgZXRuYXZpdl92cmFtX21hcHBpbmcgKm1hcHBpbmcpOwo+ICBkbWFfYWRk cl90IGV0bmF2aXZfY21kYnVmX2dldF9wYShzdHJ1Y3QgZXRuYXZpdl9jbWRidWYgKmJ1Zik7Cj4g IAo+ICAjZW5kaWYgLyogX19FVE5BVklWX0NNREJVRl9IX18gKi8KPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9kdW1wLmMgYi9kcml2ZXJzL2dwdS9kcm0vZXRu YXZpdi9ldG5hdml2X2R1bXAuYwo+IGluZGV4IDBhYThjZGU2ODU5My4uMTNhNjNkOWRjZjU0IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZHVtcC5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9kdW1wLmMKPiBAQCAtMTczLDExICsx NzMsMTMgQEAgdm9pZCBldG5hdml2X2NvcmVfZHVtcChzdHJ1Y3QgZXRuYXZpdl9nZW1fc3VibWl0 ICpzdWJtaXQpCj4gIAo+ICAJZXRuYXZpdl9jb3JlX2R1bXBfbWVtKCZpdGVyLCBFVERVTVBfQlVG X1JJTkcsIGdwdS0+YnVmZmVyLnZhZGRyLAo+ICAJCQkgICAgICBncHUtPmJ1ZmZlci5zaXplLAo+ IC0JCQkgICAgICBldG5hdml2X2NtZGJ1Zl9nZXRfdmEoJmdwdS0+YnVmZmVyKSk7Cj4gKwkJCSAg ICAgIGV0bmF2aXZfY21kYnVmX2dldF92YSgmZ3B1LT5idWZmZXIsCj4gKwkJCQkJCSAgICAmZ3B1 LT5jbWRidWZfbWFwcGluZykpOwo+ICAKPiAgCWV0bmF2aXZfY29yZV9kdW1wX21lbSgmaXRlciwg RVREVU1QX0JVRl9DTUQsCj4gIAkJCSAgICAgIHN1Ym1pdC0+Y21kYnVmLnZhZGRyLCBzdWJtaXQt PmNtZGJ1Zi5zaXplLAo+IC0JCQkgICAgICBldG5hdml2X2NtZGJ1Zl9nZXRfdmEoJnN1Ym1pdC0+ Y21kYnVmKSk7Cj4gKwkJCSAgICAgIGV0bmF2aXZfY21kYnVmX2dldF92YSgmc3VibWl0LT5jbWRi dWYsCj4gKwkJCQkJCSAgICAmZ3B1LT5jbWRidWZfbWFwcGluZykpOwo+ICAKPiAgCS8qIFJlc2Vy dmUgc3BhY2UgZm9yIHRoZSBib21hcCAqLwo+ICAJaWYgKG5fYm9tYXBfcGFnZXMpIHsKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9ncHUuYyBiL2RyaXZlcnMv Z3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ3B1LmMKPiBpbmRleCBlODRhMGVkOTA0YWEuLjYyYTM4 YTYzZTRlYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dw dS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9ncHUuYwo+IEBAIC02 ODcsOCArNjg3LDggQEAgc3RhdGljIHZvaWQgZXRuYXZpdl9ncHVfaHdfaW5pdChzdHJ1Y3QgZXRu YXZpdl9ncHUgKmdwdSkKPiAgCXByZWZldGNoID0gZXRuYXZpdl9idWZmZXJfaW5pdChncHUpOwo+ ICAKPiAgCWdwdV93cml0ZShncHUsIFZJVlNfSElfSU5UUl9FTkJMLCB+MFUpOwo+IC0JZXRuYXZp dl9ncHVfc3RhcnRfZmUoZ3B1LCBldG5hdml2X2NtZGJ1Zl9nZXRfdmEoJmdwdS0+YnVmZmVyKSwK PiAtCQkJICAgICBwcmVmZXRjaCk7Cj4gKwlldG5hdml2X2dwdV9zdGFydF9mZShncHUsIGV0bmF2 aXZfY21kYnVmX2dldF92YSgmZ3B1LT5idWZmZXIsCj4gKwkJCSAgICAgJmdwdS0+Y21kYnVmX21h cHBpbmcpLCBwcmVmZXRjaCk7Cj4gIH0KPiAgCj4gIGludCBldG5hdml2X2dwdV9pbml0KHN0cnVj dCBldG5hdml2X2dwdSAqZ3B1KQo+IEBAIC03NjcsMTYgKzc2NywyNCBAQCBpbnQgZXRuYXZpdl9n cHVfaW5pdChzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSkKPiAgCQlnb3RvIGRlc3Ryb3lfaW9tbXU7 Cj4gIAl9Cj4gIAo+ICsJcmV0ID0gZXRuYXZpdl9jbWRidWZfc3ViYWxsb2NfbWFwKGdwdS0+Y21k YnVmX3N1YmFsbG9jLCBncHUtPm1tdSwKPiArCQkJCQkgICZncHUtPmNtZGJ1Zl9tYXBwaW5nLAo+ ICsJCQkJCSAgZ3B1LT5tZW1vcnlfYmFzZSk7Cj4gKwlpZiAocmV0KSB7Cj4gKwkJZGV2X2Vycihn cHUtPmRldiwgImZhaWxlZCB0byBtYXAgY21kYnVmIHN1YmFsbG9jXG4iKTsKPiArCQlnb3RvIGRl c3Ryb3lfc3ViYWxsb2M7Cj4gKwl9Cj4gKwo+ICAJLyogQ3JlYXRlIGJ1ZmZlcjogKi8KPiAgCXJl dCA9IGV0bmF2aXZfY21kYnVmX2luaXQoZ3B1LT5jbWRidWZfc3ViYWxsb2MsICZncHUtPmJ1ZmZl ciwKPiAgCQkJCSAgUEFHRV9TSVpFKTsKPiAgCWlmIChyZXQpIHsKPiAgCQlkZXZfZXJyKGdwdS0+ ZGV2LCAiY291bGQgbm90IGNyZWF0ZSBjb21tYW5kIGJ1ZmZlclxuIik7Cj4gLQkJZ290byBkZXN0 cm95X3N1YmFsbG9jOwo+ICsJCWdvdG8gdW5tYXBfc3ViYWxsb2M7Cj4gIAl9Cj4gIAo+ICAJaWYg KGdwdS0+bW11LT52ZXJzaW9uID09IEVUTkFWSVZfSU9NTVVfVjEgJiYKPiAtCSAgICBldG5hdml2 X2NtZGJ1Zl9nZXRfdmEoJmdwdS0+YnVmZmVyKSA+IDB4ODAwMDAwMDApIHsKPiArCSAgICBldG5h dml2X2NtZGJ1Zl9nZXRfdmEoJmdwdS0+YnVmZmVyLCAmZ3B1LT5jbWRidWZfbWFwcGluZykgPiAw eDgwMDAwMDAwKSB7Cj4gIAkJcmV0ID0gLUVJTlZBTDsKPiAgCQlkZXZfZXJyKGdwdS0+ZGV2LAo+ ICAJCQkiY29tbWFuZCBidWZmZXIgb3V0c2lkZSB2YWxpZCBtZW1vcnkgd2luZG93XG4iKTsKPiBA QCAtODA1LDYgKzgxMyw4IEBAIGludCBldG5hdml2X2dwdV9pbml0KHN0cnVjdCBldG5hdml2X2dw dSAqZ3B1KQo+ICAKPiAgZnJlZV9idWZmZXI6Cj4gIAlldG5hdml2X2NtZGJ1Zl9mcmVlKCZncHUt PmJ1ZmZlcik7Cj4gK3VubWFwX3N1YmFsbG9jOgo+ICsJZXRuYXZpdl9jbWRidWZfc3ViYWxsb2Nf dW5tYXAoZ3B1LT5tbXUsICZncHUtPmNtZGJ1Zl9tYXBwaW5nKTsKPiAgZGVzdHJveV9zdWJhbGxv YzoKPiAgCWV0bmF2aXZfY21kYnVmX3N1YmFsbG9jX2Rlc3Ryb3koZ3B1LT5jbWRidWZfc3ViYWxs b2MpOwo+ICBkZXN0cm95X2lvbW11Ogo+IEBAIC0xNjgxLDYgKzE2OTEsNyBAQCBzdGF0aWMgdm9p ZCBldG5hdml2X2dwdV91bmJpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICpt YXN0ZXIsCj4gIAo+ICAJaWYgKGdwdS0+aW5pdGlhbGl6ZWQpIHsKPiAgCQlldG5hdml2X2NtZGJ1 Zl9mcmVlKCZncHUtPmJ1ZmZlcik7Cj4gKwkJZXRuYXZpdl9jbWRidWZfc3ViYWxsb2NfdW5tYXAo Z3B1LT5tbXUsICZncHUtPmNtZGJ1Zl9tYXBwaW5nKTsKPiAgCQlldG5hdml2X2NtZGJ1Zl9zdWJh bGxvY19kZXN0cm95KGdwdS0+Y21kYnVmX3N1YmFsbG9jKTsKPiAgCQlldG5hdml2X2lvbW11X2Rl c3Ryb3koZ3B1LT5tbXUpOwo+ICAJCWdwdS0+aW5pdGlhbGl6ZWQgPSBmYWxzZTsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9ncHUuaCBiL2RyaXZlcnMvZ3B1 L2RybS9ldG5hdml2L2V0bmF2aXZfZ3B1LmgKPiBpbmRleCBiMDZjN2M5OGQ1MjIuLjZhNmFkZDM1 MGQyZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dwdS5o Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9ncHUuaAo+IEBAIC03LDYg KzcsNyBAQAo+ICAjZGVmaW5lIF9fRVROQVZJVl9HUFVfSF9fCj4gIAo+ICAjaW5jbHVkZSAiZXRu YXZpdl9jbWRidWYuaCIKPiArI2luY2x1ZGUgImV0bmF2aXZfZ2VtLmgiCj4gICNpbmNsdWRlICJl dG5hdml2X2Rydi5oIgo+ICAKPiAgc3RydWN0IGV0bmF2aXZfZ2VtX3N1Ym1pdDsKPiBAQCAtODQs NyArODUsNiBAQCBzdHJ1Y3QgZXRuYXZpdl9ldmVudCB7Cj4gIH07Cj4gIAo+ICBzdHJ1Y3QgZXRu YXZpdl9jbWRidWZfc3ViYWxsb2M7Cj4gLXN0cnVjdCBldG5hdml2X2NtZGJ1ZjsKPiAgc3RydWN0 IHJlZ3VsYXRvcjsKPiAgc3RydWN0IGNsazsKPiAgCj4gQEAgLTEwMiw2ICsxMDIsNyBAQCBzdHJ1 Y3QgZXRuYXZpdl9ncHUgewo+ICAJYm9vbCBpbml0aWFsaXplZDsKPiAgCj4gIAkvKiAncmluZyct YnVmZmVyOiAqLwo+ICsJc3RydWN0IGV0bmF2aXZfdnJhbV9tYXBwaW5nIGNtZGJ1Zl9tYXBwaW5n Owo+ICAJc3RydWN0IGV0bmF2aXZfY21kYnVmIGJ1ZmZlcjsKPiAgCWludCBleGVjX3N0YXRlOwo+ ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9tbXUuYyBi L2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfbW11LmMKPiBpbmRleCA3MzEyNzU5OTlh NTcuLmRkODEzNzY3MjRkNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9l dG5hdml2X21tdS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9tbXUu Ywo+IEBAIC0zMzQsNTIgKzMzNCw3MiBAQCB2b2lkIGV0bmF2aXZfaW9tbXVfcmVzdG9yZShzdHJ1 Y3QgZXRuYXZpdl9ncHUgKmdwdSkKPiAgCQlldG5hdml2X2lvbW11djJfcmVzdG9yZShncHUpOwo+ ICB9Cj4gIAo+IC1pbnQgZXRuYXZpdl9pb21tdV9nZXRfc3ViYWxsb2NfdmEoc3RydWN0IGV0bmF2 aXZfZ3B1ICpncHUsIGRtYV9hZGRyX3QgcGFkZHIsCj4gLQkJCQkgIHN0cnVjdCBkcm1fbW1fbm9k ZSAqdnJhbV9ub2RlLCBzaXplX3Qgc2l6ZSwKPiAtCQkJCSAgdTMyICppb3ZhKQo+ICtpbnQgZXRu YXZpdl9pb21tdV9nZXRfc3ViYWxsb2NfdmEoc3RydWN0IGV0bmF2aXZfaW9tbXUgKm1tdSwKPiAr CQkJCSAgc3RydWN0IGV0bmF2aXZfdnJhbV9tYXBwaW5nICptYXBwaW5nLAo+ICsJCQkJICB1MzIg bWVtb3J5X2Jhc2UsIGRtYV9hZGRyX3QgcGFkZHIsCj4gKwkJCQkgIHNpemVfdCBzaXplKQo+ICB7 Cj4gLQlzdHJ1Y3QgZXRuYXZpdl9pb21tdSAqbW11ID0gZ3B1LT5tbXU7Cj4gKwltdXRleF9sb2Nr KCZtbXUtPmxvY2spOwo+ICAKPiArCS8qCj4gKwkgKiBGb3IgTU1VdjEgd2UgZG9uJ3QgYWRkIHRo ZSBzdWJhbGxvYyByZWdpb24gdG8gdGhlIHBhZ2V0YWJsZXMsIGFzCj4gKwkgKiB0aG9zZSBHUFVz IGNhbiBvbmx5IHdvcmsgd2l0aCBjbWRidWZzIGFjY2Vzc2VkIHRocm91Z2ggdGhlIGxpbmVhcgo+ ICsJICogd2luZG93LiBJbnN0ZWFkIHdlIG1hbnVmYWN0dXJlIGEgbWFwcGluZyB0byBtYWtlIGl0 IGxvb2sgdW5pZm9ybQo+ICsJICogdG8gdGhlIHVwcGVyIGxheWVycy4KPiArCSAqLwo+ICAJaWYg KG1tdS0+dmVyc2lvbiA9PSBFVE5BVklWX0lPTU1VX1YxKSB7Cj4gLQkJKmlvdmEgPSBwYWRkciAt IGdwdS0+bWVtb3J5X2Jhc2U7Cj4gLQkJcmV0dXJuIDA7Cj4gKwkJbWFwcGluZy0+aW92YSA9IHBh ZGRyIC0gbWVtb3J5X2Jhc2U7Cj4gKwkJbGlzdF9hZGRfdGFpbCgmbWFwcGluZy0+bW11X25vZGUs ICZtbXUtPm1hcHBpbmdzKTsKPiAgCX0gZWxzZSB7Cj4gKwkJc3RydWN0IGRybV9tbV9ub2RlICpu b2RlID0gJm1hcHBpbmctPnZyYW1fbm9kZTsKPiAgCQlpbnQgcmV0Owo+ICAKPiAtCQltdXRleF9s b2NrKCZtbXUtPmxvY2spOwo+IC0JCXJldCA9IGV0bmF2aXZfaW9tbXVfZmluZF9pb3ZhKG1tdSwg dnJhbV9ub2RlLCBzaXplKTsKPiArCQlyZXQgPSBldG5hdml2X2lvbW11X2ZpbmRfaW92YShtbXUs IG5vZGUsIHNpemUpOwo+ICAJCWlmIChyZXQgPCAwKSB7Cj4gIAkJCW11dGV4X3VubG9jaygmbW11 LT5sb2NrKTsKPiAgCQkJcmV0dXJuIHJldDsKPiAgCQl9Cj4gLQkJcmV0ID0gZXRuYXZpdl9kb21h aW5fbWFwKG1tdS0+ZG9tYWluLCB2cmFtX25vZGUtPnN0YXJ0LCBwYWRkciwKPiAtCQkJCQkgc2l6 ZSwgRVROQVZJVl9QUk9UX1JFQUQpOwo+ICsKPiArCQltYXBwaW5nLT5pb3ZhID0gbm9kZS0+c3Rh cnQ7Cj4gKwkJcmV0ID0gZXRuYXZpdl9kb21haW5fbWFwKG1tdS0+ZG9tYWluLCBub2RlLT5zdGFy dCwgcGFkZHIsIHNpemUsCj4gKwkJCQkJIEVUTkFWSVZfUFJPVF9SRUFEKTsKPiArCj4gIAkJaWYg KHJldCA8IDApIHsKPiAtCQkJZHJtX21tX3JlbW92ZV9ub2RlKHZyYW1fbm9kZSk7Cj4gKwkJCWRy bV9tbV9yZW1vdmVfbm9kZShub2RlKTsKPiAgCQkJbXV0ZXhfdW5sb2NrKCZtbXUtPmxvY2spOwo+ ICAJCQlyZXR1cm4gcmV0Owo+ICAJCX0KPiAtCQlncHUtPm1tdS0+bmVlZF9mbHVzaCA9IHRydWU7 Cj4gLQkJbXV0ZXhfdW5sb2NrKCZtbXUtPmxvY2spOwo+ICAKPiAtCQkqaW92YSA9ICh1MzIpdnJh bV9ub2RlLT5zdGFydDsKPiAtCQlyZXR1cm4gMDsKPiArCQlsaXN0X2FkZF90YWlsKCZtYXBwaW5n LT5tbXVfbm9kZSwgJm1tdS0+bWFwcGluZ3MpOwo+ICsJCW1tdS0+bmVlZF9mbHVzaCA9IHRydWU7 Cj4gIAl9Cj4gKwo+ICsJbWFwcGluZy0+dXNlID0gMTsKPiArCj4gKwltdXRleF91bmxvY2soJm1t dS0+bG9jayk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gLXZvaWQgZXRuYXZpdl9pb21t dV9wdXRfc3ViYWxsb2NfdmEoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUsCj4gLQkJCQkgICBzdHJ1 Y3QgZHJtX21tX25vZGUgKnZyYW1fbm9kZSwgc2l6ZV90IHNpemUsCj4gLQkJCQkgICB1MzIgaW92 YSkKPiArdm9pZCBldG5hdml2X2lvbW11X3B1dF9zdWJhbGxvY192YShzdHJ1Y3QgZXRuYXZpdl9p b21tdSAqbW11LAo+ICsJCSAgc3RydWN0IGV0bmF2aXZfdnJhbV9tYXBwaW5nICptYXBwaW5nKQo+ ICB7Cj4gLQlzdHJ1Y3QgZXRuYXZpdl9pb21tdSAqbW11ID0gZ3B1LT5tbXU7Cj4gKwlzdHJ1Y3Qg ZHJtX21tX25vZGUgKm5vZGUgPSAmbWFwcGluZy0+dnJhbV9ub2RlOwo+ICAKPiAtCWlmIChtbXUt PnZlcnNpb24gPT0gRVROQVZJVl9JT01NVV9WMikgewo+IC0JCW11dGV4X2xvY2soJm1tdS0+bG9j ayk7Cj4gLQkJZXRuYXZpdl9kb21haW5fdW5tYXAobW11LT5kb21haW4sIGlvdmEsIHNpemUpOwo+ IC0JCWRybV9tbV9yZW1vdmVfbm9kZSh2cmFtX25vZGUpOwo+IC0JCW11dGV4X3VubG9jaygmbW11 LT5sb2NrKTsKPiAtCX0KPiArCWlmICghbWFwcGluZy0+dXNlKQo+ICsJCXJldHVybjsKPiArCj4g KwltYXBwaW5nLT51c2UgPSAwOwo+ICsKPiArCWlmIChtbXUtPnZlcnNpb24gPT0gRVROQVZJVl9J T01NVV9WMSkKPiArCQlyZXR1cm47Cj4gKwo+ICsJbXV0ZXhfbG9jaygmbW11LT5sb2NrKTsKPiAr CWV0bmF2aXZfZG9tYWluX3VubWFwKG1tdS0+ZG9tYWluLCBub2RlLT5zdGFydCwgbm9kZS0+c2l6 ZSk7Cj4gKwlkcm1fbW1fcmVtb3ZlX25vZGUobm9kZSk7Cj4gKwltdXRleF91bmxvY2soJm1tdS0+ bG9jayk7Cj4gIH0KPiArCj4gIHNpemVfdCBldG5hdml2X2lvbW11X2R1bXBfc2l6ZShzdHJ1Y3Qg ZXRuYXZpdl9pb21tdSAqaW9tbXUpCj4gIHsKPiAgCXJldHVybiBpb21tdS0+ZG9tYWluLT5vcHMt PmR1bXBfc2l6ZShpb21tdS0+ZG9tYWluKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2V0bmF2aXYvZXRuYXZpdl9tbXUuaCBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZf bW11LmgKPiBpbmRleCBhMGRiMTdmZmI2ODYuLmZlMWM5ZDZiOTMzNCAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X21tdS5oCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2V0bmF2aXYvZXRuYXZpdl9tbXUuaAo+IEBAIC01OSwxMiArNTksMTIgQEAgaW50IGV0bmF2 aXZfaW9tbXVfbWFwX2dlbShzdHJ1Y3QgZXRuYXZpdl9pb21tdSAqbW11LAo+ICB2b2lkIGV0bmF2 aXZfaW9tbXVfdW5tYXBfZ2VtKHN0cnVjdCBldG5hdml2X2lvbW11ICptbXUsCj4gIAlzdHJ1Y3Qg ZXRuYXZpdl92cmFtX21hcHBpbmcgKm1hcHBpbmcpOwo+ICAKPiAtaW50IGV0bmF2aXZfaW9tbXVf Z2V0X3N1YmFsbG9jX3ZhKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1LCBkbWFfYWRkcl90IHBhZGRy LAo+IC0JCQkJICBzdHJ1Y3QgZHJtX21tX25vZGUgKnZyYW1fbm9kZSwgc2l6ZV90IHNpemUsCj4g LQkJCQkgIHUzMiAqaW92YSk7Cj4gLXZvaWQgZXRuYXZpdl9pb21tdV9wdXRfc3ViYWxsb2NfdmEo c3RydWN0IGV0bmF2aXZfZ3B1ICpncHUsCj4gLQkJCQkgICBzdHJ1Y3QgZHJtX21tX25vZGUgKnZy YW1fbm9kZSwgc2l6ZV90IHNpemUsCj4gLQkJCQkgICB1MzIgaW92YSk7Cj4gK2ludCBldG5hdml2 X2lvbW11X2dldF9zdWJhbGxvY192YShzdHJ1Y3QgZXRuYXZpdl9pb21tdSAqbW11LAo+ICsJCQkJ ICBzdHJ1Y3QgZXRuYXZpdl92cmFtX21hcHBpbmcgKm1hcHBpbmcsCj4gKwkJCQkgIHUzMiBtZW1v cnlfYmFzZSwgZG1hX2FkZHJfdCBwYWRkciwKPiArCQkJCSAgc2l6ZV90IHNpemUpOwo+ICt2b2lk IGV0bmF2aXZfaW9tbXVfcHV0X3N1YmFsbG9jX3ZhKHN0cnVjdCBldG5hdml2X2lvbW11ICptbXUs Cj4gKwkJCQkgICBzdHJ1Y3QgZXRuYXZpdl92cmFtX21hcHBpbmcgKm1hcHBpbmcpOwo+ICAKPiAg c2l6ZV90IGV0bmF2aXZfaW9tbXVfZHVtcF9zaXplKHN0cnVjdCBldG5hdml2X2lvbW11ICppb21t dSk7Cj4gIHZvaWQgZXRuYXZpdl9pb21tdV9kdW1wKHN0cnVjdCBldG5hdml2X2lvbW11ICppb21t dSwgdm9pZCAqYnVmKTsKPiAtLSAKPiAyLjIwLjEKPiAKPiBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwo+IGV0bmF2aXYgbWFpbGluZyBsaXN0Cj4gZXRuYXZp dkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2V0bmF2aXYKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vZHJpLWRldmVs