From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeykumar Sankaran Subject: Re: [DPU PATCH v3] drm/msm: Use atomic private_obj instead of subclassing Date: Thu, 24 May 2018 18:16:41 -0700 Message-ID: References: <20180319195853.49006-1-seanpaul@chromium.org> <41aebf2e-48a0-a2e2-167c-70da912353f4@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <41aebf2e-48a0-a2e2-167c-70da912353f4-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Archit Taneja Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, Sean Paul , abhinavk-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, hoegsberg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org T24gMjAxOC0wMy0yMCAwNDowMSwgQXJjaGl0IFRhbmVqYSB3cm90ZToKPiBIaSwKPiAKPiBPbiBU dWVzZGF5IDIwIE1hcmNoIDIwMTggMDE6MjggQU0sIFNlYW4gUGF1bCB3cm90ZToKPj4gSW5zdGVh ZCBvZiBzdWJjbGFzc2luZyBhdG9taWMgc3RhdGUsIHN0b3JlIGRyaXZlciBwcml2YXRlIGRhdGEg aW4KPj4gcHJpdmF0ZV9vYmovc3RhdGUuIFRoaXMgYWxsb3dzIHVzIHRvIHJlbW92ZSB0aGUgc3dh cF9zdGF0ZSBkcml2ZXIgaG9vawo+PiBmb3IgbWRwNSBhbmQgZ2V0IGNsb3NlciB0byB1c2luZyB0 aGUgYXRvbWljIGhlbHBlcnMgZW50aXJlbHkuCj4+IAo+PiBDaGFuZ2VzIGluIHYyOgo+PiAgIC0g VXNlIHN0YXRlLT5zdGF0ZSBpbiBkaXNwIGR1cGxpY2F0ZV9zdGF0ZSBjYWxsYmFjayAoSmV5a3Vt YXIpCj4+IENoYW5nZXMgaW4gdjM6Cj4+ICAgLSBVcGRhdGUgY29tbWVudCBkZXNjcmliaW5nIG1z bV9rbXNfc3RhdGUgKEpleWt1bWFyKQo+PiAKPiAKPiBPbmUgZGlmZmVyZW5jZSB3LnIudCB0aGUg cGF0Y2hzZXQKPiAiZHJtL21zbS9tZHA1OiBVc2UgdGhlIG5ldyBwcml2YXRlX29iaiBzdGF0ZSIg aXMgdGhhdCB0aGlzCj4gYWRkcyB0aGUgYXRvbWljIHByaXZhdGVfb2JqIGZvciBhbGwga21zIGJh Y2tlbmRzLCB3aGVyZWFzIHRoZSBvbmUKPiBJJ2QgZG9uZSBvcmlnaW5hbGx5IGp1c3QgYWRkZWQg aXQgZm9yIG1kcDUsIHNvIHRoaXMgcGF0Y2ggc2V0Cj4gaXMgYmV0dGVyIGluIHRoYXQgcmVzcGVj dC4KPiAKPiBUaGUgb3RoZXIgZGlmZmVyZW5jZSBpcyBob3cgd2UgJ2dldCcgdGhlIHByaXZhdGUg c3RhdGUuIEluIHRoaXMgcGF0Y2gsCj4gdGhlIGhlbHBlciBkcm1fYXRvbWljX2dldF9wcml2YXRl X29ial9zdGF0ZSgpIGlzIHVzZWQgZXZlcnkgdGltZSB0bwo+IGdldCB0aGUgcHJpdmF0ZSBvYmpl Y3Qgc3RhdGUuCj4gCj4gSSdkIHRyaWVkIHRvIGRvIHRoZSBzYW1lIGluaXRpYWxseSwgYnV0IEkg bm90aWNlZCB0aGF0Cj4gZHJtX2F0b21pY19nZXRfcHJpdmF0ZV9vYmpfc3RhdGUoKSBkb2Vzbid0 IHJldHVybiB0aGUgY29ycmVjdAo+IHN0YXRlIHBvc3Qgc3dhcHBpbmcgb2Ygc3RhdGVzLiBTbywg aW5zdGVhZCBvZiByZWx5aW5nIG9uIHRoZSBoZWxwZXIsCj4gSSBjcmVhdGVkIGEgaGVscGVyIGNh bGxlZCBtZHA1X2dldF9leGlzdGluZ19nbG9iYWxfc3RhdGUoKSB0aGF0Cj4gcmV0dXJucyB0aGUg ZGVzaXJlZCBzdGF0ZSh0aGUgc3RhdGUgcG9pbnRlciBpbiAKPiBtc21fa21zPnN0YXRlLT5iYXNl LnN0YXRlCj4gaW4gdGhpcyBwYXRjaCkgaW4gYWxsIGZ1bmNzIHRoYXQgYXJlIGNhbGxlZCBwb3N0 LXN3YXAuCj4gCj4gCj4gWW91IGNvdWxkIHJlYWQgYWJvdXQgdGhlIGlzc3VlIG9uIHRoZSB0aGUg dGhyZWFkOiAiW1JGQyAxLzNdCj4gZHJtL21zbS9tZHA1OiBBZGQgZ2xvYmFsIHN0YXRlIGFzIGEg cHJpdmF0ZSBhdG9taWMgb2JqZWN0Igo+IAo+IFRoZSBwcm9ibGVtIHdhcyBxdWl0ZSBhcHBhcmVu dCB3aXRoIGRiNDEwYywgd2hlcmUgU01QIGJsb2NrcyBhcmUKPiBhc3NpZ25lZCB0byBwbGFuZXMu IElmIHRoZSBsYXRlc3QgU01QIHN0YXRlIGlzbid0IHJlZmVycmVkIHdoZW4KPiBjb25maWd1cmlu ZyBTTVAgcmVnaXN0ZXJzLCB3ZSBzZWUgdW5kZXJydW5zIGltbWVkaWF0ZWx5Lgo+IAo+IEFuIGVh c3kgd2F5IHRvIHJlcHJvZHVjZSB0aGlzIGlzIHRvIHVzZSBtb2RzZXQgb24gZGI0MTBjLiBJIHRo aW5rCj4gaXQgbWlnaHQgb2NjdXIgd2l0aCB0aGlzIHBhdGNoIHRvby4gSXQgbWlnaHQgYmUgd29y dGggdHJ5aW5nIGl0Cj4gb3V0Lgo+IAo+IFRoYW5rcywKPiBBcmNoaXQKPiAKSGVsbG8gQXJjaGl0 LCBOb3cgdGhhdCBJIGFtIHRyeWluZyB0byB1c2UgdGhlIHByaXZhdGUgb2JqIHRvIG1haW50YWlu IApyZXNvdXJjZSBwb29sIGluIERQVSwgSSByZWFsaXplIHRoZSBuZWVkIGZvciByZXRyaWV2aW5n IGV4aXN0aW5nIC8gbmV3IApzdGF0ZSBBUEkncy4gRG9uJ3QgeW91IHRoaW5rIHRoaXMgc3VwcG9y dCBpcyBtaXNzaW5nIGluIHRoZSBEUk0gY29yZSAKZndrLCBjb25zaWRlcmluZyBob3cgZHJtX2F0 b21pY19nZXRfZXhpc3RpbmdfWFhYWF9zdGF0ZSwgCmRybV9hdG9taWNfZ2V0X29sZF9YWFhYX3N0 YXRlLCBkcm1fYXRvbWljX2dldF9uZXdfWFhYWF9zdGF0ZSBBUEkncyBhcmUgCmF2YWlsYWJsZSBm b3IgQ1JUQy9QTEFORSBhbmQgQ09OTkVDVE9SUyBidXQgbm90IGZvciBwcml2YXRlX29iaidzPwoK VGhhbmtzLApKZXlrdW1hciBTLgo+PiBDYzogSmV5a3VtYXIgU2Fua2FyYW4gPGpzYW5rYUBjb2Rl YXVyb3JhLm9yZz4KPj4gUmV2aWV3ZWQtYnk6IEpleWt1bWFyIFNhbmthcmFuIDxqc2Fua2FAY29k ZWF1cm9yYS5vcmc+Cj4+IFNpZ25lZC1vZmYtYnk6IFNlYW4gUGF1bCA8c2VhbnBhdWxAY2hyb21p dW0ub3JnPgo+PiAtLS0KPj4gICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvbWRwNS9tZHA1X2tt cy5jIHwgMzcgKysrKysrLS0tLS0tLS0KPj4gICBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9hdG9t aWMuYyAgICAgICAgIHwgMzAgLS0tLS0tLS0tLS0KPj4gICBkcml2ZXJzL2dwdS9kcm0vbXNtL21z bV9kcnYuYyAgICAgICAgICAgIHwgNjUgCj4+ICsrKysrKysrKysrKysrKysrKysrKystLQo+PiAg IGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5oICAgICAgICAgICAgfCAgNCArLQo+PiAgIGRy aXZlcnMvZ3B1L2RybS9tc20vbXNtX2ttcy5oICAgICAgICAgICAgfCAyNyArKysrKy0tLS0tCj4+ ICAgNSBmaWxlcyBjaGFuZ2VkLCA5NCBpbnNlcnRpb25zKCspLCA2OSBkZWxldGlvbnMoLSkKPj4g Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvbWRwNS9tZHA1X2ttcy5j IAo+PiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA1L21kcDVfa21zLmMKPj4gaW5kZXgg NmQ4ZTNhOWE2ZmMwLi5mMWEyNDg0MTk2NTUgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9tZHA1L21kcDVfa21zLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9k aXNwL21kcDUvbWRwNV9rbXMuYwo+PiBAQCAtNzQsMzYgKzc0LDMyIEBAIHN0cnVjdCBtZHA1X3N0 YXRlICptZHA1X2dldF9zdGF0ZShzdHJ1Y3QgCj4+IGRybV9hdG9taWNfc3RhdGUgKnMpCj4+ICAg ewo+PiAgIAlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0gcy0+ZGV2LT5kZXZfcHJpdmF0 ZTsKPj4gICAJc3RydWN0IG1kcDVfa21zICptZHA1X2ttcyA9IHRvX21kcDVfa21zKHRvX21kcF9r bXMocHJpdi0+a21zKSk7Cj4+IC0Jc3RydWN0IG1zbV9rbXNfc3RhdGUgKnN0YXRlID0gdG9fa21z X3N0YXRlKHMpOwo+PiAtCXN0cnVjdCBtZHA1X3N0YXRlICpuZXdfc3RhdGU7Cj4+ICsJc3RydWN0 IG1zbV9rbXNfc3RhdGUgKmttc19zdGF0ZTsKPj4gICAJaW50IHJldDsKPj4gCj4+IC0JaWYgKHN0 YXRlLT5zdGF0ZSkKPj4gLQkJcmV0dXJuIHN0YXRlLT5zdGF0ZTsKPj4gLQo+PiAgIAlyZXQgPSBk cm1fbW9kZXNldF9sb2NrKCZtZHA1X2ttcy0+c3RhdGVfbG9jaywgcy0+YWNxdWlyZV9jdHgpOwo+ PiAgIAlpZiAocmV0KQo+PiAgIAkJcmV0dXJuIEVSUl9QVFIocmV0KTsKPj4gCj4+IC0JbmV3X3N0 YXRlID0ga21hbGxvYyhzaXplb2YoKm1kcDVfa21zLT5zdGF0ZSksIEdGUF9LRVJORUwpOwo+PiAt CWlmICghbmV3X3N0YXRlKQo+PiAtCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKPj4gKwlrbXNf c3RhdGUgPSBtc21fa21zX2dldF9zdGF0ZShzKTsKPj4gKwlpZiAoSVNfRVJSX09SX05VTEwoa21z X3N0YXRlKSkKPj4gKwkJcmV0dXJuIChzdHJ1Y3QgbWRwNV9zdGF0ZSAqKWttc19zdGF0ZTsgLyog Y2FzdGluZyBFUlJfUFRSICovCj4+IAo+PiAtCS8qIENvcHkgc3RhdGU6ICovCj4+IC0JbmV3X3N0 YXRlLT5od3BpcGUgPSBtZHA1X2ttcy0+c3RhdGUtPmh3cGlwZTsKPj4gLQluZXdfc3RhdGUtPmh3 bWl4ZXIgPSBtZHA1X2ttcy0+c3RhdGUtPmh3bWl4ZXI7Cj4+IC0JaWYgKG1kcDVfa21zLT5zbXAp Cj4+IC0JCW5ld19zdGF0ZS0+c21wID0gbWRwNV9rbXMtPnN0YXRlLT5zbXA7Cj4+ICsJcmV0dXJu IGttc19zdGF0ZS0+c3RhdGU7Cj4+ICt9Cj4+IAo+PiAtCXN0YXRlLT5zdGF0ZSA9IG5ld19zdGF0 ZTsKPj4gK3N0YXRpYyB2b2lkICptZHA1X2R1cGxpY2F0ZV9zdGF0ZSh2b2lkICpzdGF0ZSkKPj4g K3sKPj4gKwlpZiAoIXN0YXRlKQo+PiArCQlyZXR1cm4ga3phbGxvYyhzaXplb2Yoc3RydWN0IG1k cDVfc3RhdGUpLCBHRlBfS0VSTkVMKTsKPj4gCj4+IC0JcmV0dXJuIG5ld19zdGF0ZTsKPj4gKwly ZXR1cm4ga21lbWR1cChzdGF0ZSwgc2l6ZW9mKHN0cnVjdCBtZHA1X3N0YXRlKSwgR0ZQX0tFUk5F TCk7Cj4+ICAgfQo+PiAKPj4gLXN0YXRpYyB2b2lkIG1kcDVfc3dhcF9zdGF0ZShzdHJ1Y3QgbXNt X2ttcyAqa21zLCBzdHJ1Y3QgCj4+IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+PiArc3RhdGlj IHZvaWQgbWRwNV9kZXN0cm95X3N0YXRlKHZvaWQgKnN0YXRlKQo+PiAgIHsKPj4gLQlzdHJ1Y3Qg bWRwNV9rbXMgKm1kcDVfa21zID0gdG9fbWRwNV9rbXModG9fbWRwX2ttcyhrbXMpKTsKPj4gLQlz d2FwKHRvX2ttc19zdGF0ZShzdGF0ZSktPnN0YXRlLCBtZHA1X2ttcy0+c3RhdGUpOwo+PiArCXN0 cnVjdCBtZHA1X3N0YXRlICptZHBfc3RhdGUgPSBzdGF0ZTsKPj4gKwlrZnJlZShtZHBfc3RhdGUp Owo+PiAgIH0KPj4gCj4+ICAgc3RhdGljIHZvaWQgbWRwNV9wcmVwYXJlX2NvbW1pdChzdHJ1Y3Qg bXNtX2ttcyAqa21zLCBzdHJ1Y3QgCj4+IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+PiBAQCAt MjI5LDcgKzIyNSw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbWRwX2ttc19mdW5jcyBrbXNfZnVu Y3MgPSB7Cj4+ICAgCQkuaXJxICAgICAgICAgICAgID0gbWRwNV9pcnEsCj4+ICAgCQkuZW5hYmxl X3ZibGFuayAgID0gbWRwNV9lbmFibGVfdmJsYW5rLAo+PiAgIAkJLmRpc2FibGVfdmJsYW5rICA9 IG1kcDVfZGlzYWJsZV92YmxhbmssCj4+IC0JCS5zd2FwX3N0YXRlICAgICAgPSBtZHA1X3N3YXBf c3RhdGUsCj4+ICsJCS5kdXBsaWNhdGVfc3RhdGUgPSBtZHA1X2R1cGxpY2F0ZV9zdGF0ZSwKPj4g KwkJLmRlc3Ryb3lfc3RhdGUJID0gbWRwNV9kZXN0cm95X3N0YXRlLAo+PiAgIAkJLnByZXBhcmVf Y29tbWl0ICA9IG1kcDVfcHJlcGFyZV9jb21taXQsCj4+ICAgCQkuY29tcGxldGVfY29tbWl0ID0g bWRwNV9jb21wbGV0ZV9jb21taXQsCj4+ICAgCQkud2FpdF9mb3JfY3J0Y19jb21taXRfZG9uZSA9 IG1kcDVfd2FpdF9mb3JfY3J0Y19jb21taXRfZG9uZSwKPj4gQEAgLTcyNiw4ICs3MjMsNiBAQCBz dGF0aWMgdm9pZCBtZHA1X2Rlc3Ryb3koc3RydWN0IHBsYXRmb3JtX2RldmljZSAKPj4gKnBkZXYp Cj4+IAo+PiAgIAlpZiAobWRwNV9rbXMtPnJwbV9lbmFibGVkKQo+PiAgIAkJcG1fcnVudGltZV9k aXNhYmxlKCZwZGV2LT5kZXYpOwo+PiAtCj4+IC0Ja2ZyZWUobWRwNV9rbXMtPnN0YXRlKTsKPj4g ICB9Cj4+IAo+PiAgIHN0YXRpYyBpbnQgY29uc3RydWN0X3BpcGVzKHN0cnVjdCBtZHA1X2ttcyAq bWRwNV9rbXMsIGludCBjbnQsCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21z bV9hdG9taWMuYyAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9hdG9taWMuYwo+PiBpbmRl eCA3ZTU0ZWI2NWQwOTYuLjFmNTMyNjJlYTQ2YiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL21zbS9tc21fYXRvbWljLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fYXRv bWljLmMKPj4gQEAgLTE2OSw5ICsxNjksNiBAQCBpbnQgbXNtX2F0b21pY19jb21taXQoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKPj4gICAJICovCj4+ICAgCUJVR19PTihkcm1fYXRvbWljX2hlbHBl cl9zd2FwX3N0YXRlKHN0YXRlLCBmYWxzZSkgPCAwKTsKPj4gCj4+IC0JaWYgKHRvX2ttc19zdGF0 ZShzdGF0ZSktPnN0YXRlKQo+PiAtCQlwcml2LT5rbXMtPmZ1bmNzLT5zd2FwX3N0YXRlKHByaXYt Pmttcywgc3RhdGUpOwo+PiAtCj4+ICAgCS8qCj4+ICAgCSAqIFByb3ZpZGUgdGhlIGRyaXZlciBh IGNoYW5jZSB0byBwcmVwYXJlIGZvciBvdXRwdXQgZmVuY2VzLiBUaGlzIAo+PiBpcwo+PiAgIAkg KiBkb25lIGFmdGVyIHRoZSBwb2ludCBvZiBubyByZXR1cm4sIGJ1dCBiZWZvcmUgYXN5bmNocm9u b3VzIAo+PiBjb21taXRzCj4+IEBAIC0yMTAsMzAgKzIwNywzIEBAIGludCBtc21fYXRvbWljX2Nv bW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+PiAgIAlkcm1fYXRvbWljX2hlbHBlcl9jbGVh bnVwX3BsYW5lcyhkZXYsIHN0YXRlKTsKPj4gICAJcmV0dXJuIHJldDsKPj4gICB9Cj4+IC0KPj4g LXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICptc21fYXRvbWljX3N0YXRlX2FsbG9jKHN0cnVjdCBk cm1fZGV2aWNlIAo+PiAqZGV2KQo+PiAtewo+PiAtCXN0cnVjdCBtc21fa21zX3N0YXRlICpzdGF0 ZSA9IGt6YWxsb2Moc2l6ZW9mKCpzdGF0ZSksIEdGUF9LRVJORUwpOwo+PiAtCj4+IC0JaWYgKCFz dGF0ZSB8fCBkcm1fYXRvbWljX3N0YXRlX2luaXQoZGV2LCAmc3RhdGUtPmJhc2UpIDwgMCkgewo+ PiAtCQlrZnJlZShzdGF0ZSk7Cj4+IC0JCXJldHVybiBOVUxMOwo+PiAtCX0KPj4gLQo+PiAtCXJl dHVybiAmc3RhdGUtPmJhc2U7Cj4+IC19Cj4+IC0KPj4gLXZvaWQgbXNtX2F0b21pY19zdGF0ZV9j bGVhcihzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqcykKPj4gLXsKPj4gLQlzdHJ1Y3QgbXNtX2tt c19zdGF0ZSAqc3RhdGUgPSB0b19rbXNfc3RhdGUocyk7Cj4+IC0JZHJtX2F0b21pY19zdGF0ZV9k ZWZhdWx0X2NsZWFyKCZzdGF0ZS0+YmFzZSk7Cj4+IC0Ja2ZyZWUoc3RhdGUtPnN0YXRlKTsKPj4g LQlzdGF0ZS0+c3RhdGUgPSBOVUxMOwo+PiAtfQo+PiAtCj4+IC12b2lkIG1zbV9hdG9taWNfc3Rh dGVfZnJlZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4+IC17Cj4+IC0Ja2ZyZWUo dG9fa21zX3N0YXRlKHN0YXRlKS0+c3RhdGUpOwo+PiAtCWRybV9hdG9taWNfc3RhdGVfZGVmYXVs dF9yZWxlYXNlKHN0YXRlKTsKPj4gLQlrZnJlZShzdGF0ZSk7Cj4+IC19Cj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYyAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vbXNt L21zbV9kcnYuYwo+PiBpbmRleCA1MjE5NzkyZTkzYmMuLjRjMDc0MGRjNzg1NCAxMDA2NDQKPj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmMKPj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL21zbS9tc21fZHJ2LmMKPj4gQEAgLTEyMSw5ICsxMjEsNjIgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBkcm1fbW9kZV9jb25maWdfZnVuY3MgCj4+IG1vZGVfY29uZmlnX2Z1bmNzID0gewo+PiAg IAkub3V0cHV0X3BvbGxfY2hhbmdlZCA9IG1zbV9mYl9vdXRwdXRfcG9sbF9jaGFuZ2VkLAo+PiAg IAkuYXRvbWljX2NoZWNrID0gZHJtX2F0b21pY19oZWxwZXJfY2hlY2ssCj4+ICAgCS5hdG9taWNf Y29tbWl0ID0gbXNtX2F0b21pY19jb21taXQsCj4+IC0JLmF0b21pY19zdGF0ZV9hbGxvYyA9IG1z bV9hdG9taWNfc3RhdGVfYWxsb2MsCj4+IC0JLmF0b21pY19zdGF0ZV9jbGVhciA9IG1zbV9hdG9t aWNfc3RhdGVfY2xlYXIsCj4+IC0JLmF0b21pY19zdGF0ZV9mcmVlID0gbXNtX2F0b21pY19zdGF0 ZV9mcmVlLAo+PiArfTsKPj4gKwo+PiArc3RhdGljIGlubGluZQo+PiArc3RydWN0IG1zbV9rbXMg Km9ial90b19rbXMoc3RydWN0IGRybV9wcml2YXRlX29iaiAqb2JqKQo+PiArewo+PiArCXJldHVy biBjb250YWluZXJfb2Yob2JqLCBzdHJ1Y3QgbXNtX2ttcywgYmFzZSk7Cj4+ICt9Cj4+ICsKPj4g K3N0YXRpYyBpbmxpbmUKPj4gK3N0cnVjdCBtc21fa21zX3N0YXRlICpzdGF0ZV90b19rbXNfc3Rh dGUoc3RydWN0IGRybV9wcml2YXRlX3N0YXRlIAo+PiAqc3RhdGUpCj4+ICt7Cj4+ICsJcmV0dXJu IGNvbnRhaW5lcl9vZihzdGF0ZSwgc3RydWN0IG1zbV9rbXNfc3RhdGUsIGJhc2UpOwo+PiArfQo+ PiArCj4+ICtzdHJ1Y3QgbXNtX2ttc19zdGF0ZSAqbXNtX2ttc19nZXRfc3RhdGUoc3RydWN0IGRy bV9hdG9taWNfc3RhdGUgKnMpCj4+ICt7Cj4+ICsJc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJp diA9IHMtPmRldi0+ZGV2X3ByaXZhdGU7Cj4+ICsJc3RydWN0IGRybV9wcml2YXRlX29iaiAqb2Jq ID0gJnByaXYtPmttcy0+YmFzZTsKPj4gKwlzdHJ1Y3QgZHJtX3ByaXZhdGVfc3RhdGUgKnN0YXRl Owo+PiArCj4+ICsJc3RhdGUgPSBkcm1fYXRvbWljX2dldF9wcml2YXRlX29ial9zdGF0ZShzLCBv YmopOwo+PiArCWlmIChJU19FUlJfT1JfTlVMTChzdGF0ZSkpCj4+ICsJCXJldHVybiAoc3RydWN0 IG1zbV9rbXNfc3RhdGUgKilzdGF0ZTsgLyogY2FzdGluZyBFUlJfUFRSICovCj4+ICsKPj4gKwly ZXR1cm4gc3RhdGVfdG9fa21zX3N0YXRlKHN0YXRlKTsKPj4gK30KPj4gKwo+PiArc3RhdGljIHN0 cnVjdCBkcm1fcHJpdmF0ZV9zdGF0ZSAqCj4+ICttc21fa21zX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1 Y3QgZHJtX3ByaXZhdGVfb2JqICpvYmopCj4+ICt7Cj4+ICsJc3RydWN0IG1zbV9rbXMgKmttcyA9 IG9ial90b19rbXMob2JqKTsKPj4gKwlzdHJ1Y3QgbXNtX2ttc19zdGF0ZSAqc3RhdGUgPSBzdGF0 ZV90b19rbXNfc3RhdGUob2JqLT5zdGF0ZSk7Cj4+ICsJc3RydWN0IG1zbV9rbXNfc3RhdGUgKm5l d19zdGF0ZTsKPj4gKwo+PiArCWlmIChrbXMtPmZ1bmNzLT5kdXBsaWNhdGVfc3RhdGUpCj4+ICsJ CW5ld19zdGF0ZSA9IGttcy0+ZnVuY3MtPmR1cGxpY2F0ZV9zdGF0ZShzdGF0ZS0+c3RhdGUpOwo+ PiArCj4+ICsJX19kcm1fYXRvbWljX2hlbHBlcl9wcml2YXRlX29ial9kdXBsaWNhdGVfc3RhdGUo b2JqLCAKPj4gJm5ld19zdGF0ZS0+YmFzZSk7Cj4+ICsKPj4gKwlyZXR1cm4gJm5ld19zdGF0ZS0+ YmFzZTsKPj4gK30KPj4gKwo+PiArc3RhdGljIHZvaWQgbXNtX2ttc19kZXN0cm95X3N0YXRlKHN0 cnVjdCBkcm1fcHJpdmF0ZV9vYmogKm9iaiwKPj4gKwkJCQkgIHN0cnVjdCBkcm1fcHJpdmF0ZV9z dGF0ZSAqc3RhdGUpCj4+ICt7Cj4+ICsJc3RydWN0IG1zbV9rbXMgKmttcyA9IG9ial90b19rbXMo b2JqKTsKPj4gKwlzdHJ1Y3QgbXNtX2ttc19zdGF0ZSAqa21zX3N0YXRlID0gc3RhdGVfdG9fa21z X3N0YXRlKG9iai0+c3RhdGUpOwo+PiArCj4+ICsJaWYgKGttcy0+ZnVuY3MtPmRlc3Ryb3lfc3Rh dGUpCj4+ICsJCWttcy0+ZnVuY3MtPmRlc3Ryb3lfc3RhdGUoa21zX3N0YXRlLT5zdGF0ZSk7Cj4+ ICsJa2ZyZWUoa21zX3N0YXRlKTsKPj4gK30KPj4gKwo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBk cm1fcHJpdmF0ZV9zdGF0ZV9mdW5jcyBrbXNfc3RhdGVfZnVuY3MgPSB7Cj4+ICsJLmF0b21pY19k dXBsaWNhdGVfc3RhdGUgPSBtc21fa21zX2R1cGxpY2F0ZV9zdGF0ZSwKPj4gKwkuYXRvbWljX2Rl c3Ryb3lfc3RhdGUgPSBtc21fa21zX2Rlc3Ryb3lfc3RhdGUsCj4+ICAgfTsKPj4gCj4+ICAgI2lm ZGVmIENPTkZJR19EUk1fTVNNX1JFR0lTVEVSX0xPR0dJTkcKPj4gQEAgLTM0MSw2ICszOTQsOCBA QCBzdGF0aWMgaW50IG1zbV9kcm1fdW5pbml0KHN0cnVjdCBkZXZpY2UgKmRldikKPj4gICAJCX0K Pj4gICAJfQo+PiAKPj4gKwlkcm1fYXRvbWljX3ByaXZhdGVfb2JqX2ZpbmkoJmttcy0+YmFzZSk7 Cj4+ICsKPj4gICAJbXNtX2dlbV9zaHJpbmtlcl9jbGVhbnVwKGRkZXYpOwo+PiAKPj4gICAJZHJt X2ttc19oZWxwZXJfcG9sbF9maW5pKGRkZXYpOwo+PiBAQCAtNzcwLDYgKzgyNSwxMCBAQCBzdGF0 aWMgaW50IG1zbV9kcm1faW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYsIAo+PiBzdHJ1Y3QgZHJtX2Ry aXZlciAqZHJ2KQo+PiAgIAl9Cj4+ICAgI2VuZGlmCj4+IAo+PiArCWRybV9hdG9taWNfcHJpdmF0 ZV9vYmpfaW5pdCgma21zLT5iYXNlLAo+PiArCQkJCSAgICAma21zLT5zdGF0ZS5iYXNlLAo+PiAr CQkJCSAgICAma21zX3N0YXRlX2Z1bmNzKTsKPj4gKwo+PiAgIAkvKiBwZXJmb3JtIHN1YmRyaXZl ciBwb3N0IGluaXRpYWxpemF0aW9uICovCj4+ICAgCWlmIChrbXMgJiYga21zLT5mdW5jcyAmJiBr bXMtPmZ1bmNzLT5wb3N0aW5pdCkgewo+PiAgIAkJcmV0ID0ga21zLT5mdW5jcy0+cG9zdGluaXQo a21zKTsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5oIAo+PiBi L2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5oCj4+IGluZGV4IDI5MjQ5NmI2ODJlOC4uOGNh YjMzM2RmNzE3IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuaAo+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuaAo+PiBAQCAtNTk4LDkgKzU5OCw3 IEBAIHN0cnVjdCBtc21fZm9ybWF0IHsKPj4gCj4+ICAgaW50IG1zbV9hdG9taWNfY29tbWl0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+ICAgCQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3Rh dGUsIGJvb2wgbm9uYmxvY2spOwo+PiAtc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm1zbV9hdG9t aWNfc3RhdGVfYWxsb2Moc3RydWN0IGRybV9kZXZpY2UgCj4+ICpkZXYpOwo+PiAtdm9pZCBtc21f YXRvbWljX3N0YXRlX2NsZWFyKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7Cj4+IC12 b2lkIG1zbV9hdG9taWNfc3RhdGVfZnJlZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUp Owo+PiArc3RydWN0IG1zbV9rbXNfc3RhdGUgKm1zbV9rbXNfZ2V0X3N0YXRlKHN0cnVjdCBkcm1f YXRvbWljX3N0YXRlIAo+PiAqc3RhdGUpOwo+PiAKPj4gICB2b2lkIG1zbV9nZW1fdW5tYXBfdm1h KHN0cnVjdCBtc21fZ2VtX2FkZHJlc3Nfc3BhY2UgKmFzcGFjZSwKPj4gICAJCXN0cnVjdCBtc21f Z2VtX3ZtYSAqdm1hLCBzdHJ1Y3Qgc2dfdGFibGUgKnNndCk7Cj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL21zbV9rbXMuaCAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9r bXMuaAo+PiBpbmRleCAwOWJhMWU3OWRiNTAuLjVjMWJjYWY2NWZkOSAxMDA2NDQKPj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL21zbS9tc21fa21zLmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21z bS9tc21fa21zLmgKPj4gQEAgLTU3LDYgKzU3LDggQEAgc3RydWN0IG1zbV9rbXNfZnVuY3Mgewo+ PiAgIAl2b2lkICgqZGlzYWJsZV92YmxhbmspKHN0cnVjdCBtc21fa21zICprbXMsIHN0cnVjdCBk cm1fY3J0YyAqY3J0Yyk7Cj4+ICAgCS8qIHN3YXAgZ2xvYmFsIGF0b21pYyBzdGF0ZTogKi8KPj4g ICAJdm9pZCAoKnN3YXBfc3RhdGUpKHN0cnVjdCBtc21fa21zICprbXMsIHN0cnVjdCBkcm1fYXRv bWljX3N0YXRlIAo+PiAqc3RhdGUpOwo+PiArCXZvaWQgKigqZHVwbGljYXRlX3N0YXRlKSh2b2lk ICpzdGF0ZSk7Cj4+ICsJdm9pZCAoKmRlc3Ryb3lfc3RhdGUpKHZvaWQgKnN0YXRlKTsKPj4gICAJ LyogbW9kZXNldCwgYnJhY2tldGluZyBhdG9taWNfY29tbWl0KCk6ICovCj4+ICAgCXZvaWQgKCpw cmVwYXJlX2ZlbmNlKShzdHJ1Y3QgbXNtX2ttcyAqa21zLAo+PiAgIAkJCXN0cnVjdCBkcm1fYXRv bWljX3N0YXRlICpzdGF0ZSk7Cj4+IEBAIC0xMTQsNyArMTE2LDIwIEBAIHN0cnVjdCBtc21fa21z X2Z1bmNzIHsKPj4gICAjZW5kaWYKPj4gICB9Owo+PiAKPj4gKy8qKgo+PiArICogU3ViY2xhc3Mg b2YgZHJtX3ByaXZhdGVfc3RhdGUsIHRvIGFsbG93IGttcyBiYWNrZW5kIHRvIGhhdmUgZHJpdmVy Cj4+ICsgKiBwcml2YXRlIGdsb2JhbCBzdGF0ZS4gIFRoZSBrbXMgYmFja2VuZCBjYW4gZG8gd2hh dGV2ZXIgaXQgd2FudHMKPj4gKyAqIHdpdGggdGhlIC0+c3RhdGUgcHRyLgo+PiArICovCj4+ICtz dHJ1Y3QgbXNtX2ttc19zdGF0ZSB7Cj4+ICsJc3RydWN0IGRybV9wcml2YXRlX3N0YXRlIGJhc2U7 Cj4+ICsJdm9pZCAqc3RhdGU7Cj4+ICt9Owo+PiArCj4+ICAgc3RydWN0IG1zbV9rbXMgewo+PiAr CXN0cnVjdCBkcm1fcHJpdmF0ZV9vYmogYmFzZTsKPj4gKwlzdHJ1Y3QgbXNtX2ttc19zdGF0ZSBz dGF0ZTsKPj4gKwo+PiAgIAljb25zdCBzdHJ1Y3QgbXNtX2ttc19mdW5jcyAqZnVuY3M7Cj4+IAo+ PiAgIAkvKiBpcnEgbnVtYmVyIHRvIGJlIHBhc3NlZCBvbiB0byBkcm1faXJxX2luc3RhbGwgKi8K Pj4gQEAgLTEyNCwxOCArMTM5LDYgQEAgc3RydWN0IG1zbV9rbXMgewo+PiAgIAlzdHJ1Y3QgbXNt X2dlbV9hZGRyZXNzX3NwYWNlICphc3BhY2U7Cj4+ICAgfTsKPj4gCj4+IC0vKioKPj4gLSAqIFN1 YmNsYXNzIG9mIGRybV9hdG9taWNfc3RhdGUsIHRvIGFsbG93IGttcyBiYWNrZW5kIHRvIGhhdmUg ZHJpdmVyCj4+IC0gKiBwcml2YXRlIGdsb2JhbCBzdGF0ZS4gIFRoZSBrbXMgYmFja2VuZCBjYW4g ZG8gd2hhdGV2ZXIgaXQgd2FudHMKPj4gLSAqIHdpdGggdGhlIC0+c3RhdGUgcHRyLiAgT24gLT5h dG9taWNfc3RhdGVfY2xlYXIoKSB0aGUgLT5zdGF0ZSBwdHIKPj4gLSAqIGlzIGtmcmVlJ2QgYW5k IHNldCBiYWNrIHRvIE5VTEwuCj4+IC0gKi8KPj4gLXN0cnVjdCBtc21fa21zX3N0YXRlIHsKPj4g LQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSBiYXNlOwo+PiAtCXZvaWQgKnN0YXRlOwo+PiAtfTsK Pj4gLSNkZWZpbmUgdG9fa21zX3N0YXRlKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgbXNtX2tt c19zdGF0ZSwgYmFzZSkKPj4gLQo+PiAgIHN0YXRpYyBpbmxpbmUgdm9pZCBtc21fa21zX2luaXQo c3RydWN0IG1zbV9rbXMgKmttcywKPj4gICAJCWNvbnN0IHN0cnVjdCBtc21fa21zX2Z1bmNzICpm dW5jcykKPj4gICB7Cj4+IAoKLS0gCkpleWt1bWFyIFMKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KRnJlZWRyZW5vIG1haWxpbmcgbGlzdApGcmVlZHJlbm9A bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vZnJlZWRyZW5vCg==