From mboxrd@z Thu Jan 1 00:00:00 1970 From: Archit Taneja Subject: Re: [DPU PATCH v3] drm/msm: Use atomic private_obj instead of subclassing Date: Tue, 20 Mar 2018 16:31:35 +0530 Message-ID: <41aebf2e-48a0-a2e2-167c-70da912353f4@codeaurora.org> References: <20180319195853.49006-1-seanpaul@chromium.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180319195853.49006-1-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Sean Paul , freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, hoegsberg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, abhinavk-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org List-Id: dri-devel@lists.freedesktop.org SGksCgpPbiBUdWVzZGF5IDIwIE1hcmNoIDIwMTggMDE6MjggQU0sIFNlYW4gUGF1bCB3cm90ZToK PiBJbnN0ZWFkIG9mIHN1YmNsYXNzaW5nIGF0b21pYyBzdGF0ZSwgc3RvcmUgZHJpdmVyIHByaXZh dGUgZGF0YSBpbgo+IHByaXZhdGVfb2JqL3N0YXRlLiBUaGlzIGFsbG93cyB1cyB0byByZW1vdmUg dGhlIHN3YXBfc3RhdGUgZHJpdmVyIGhvb2sKPiBmb3IgbWRwNSBhbmQgZ2V0IGNsb3NlciB0byB1 c2luZyB0aGUgYXRvbWljIGhlbHBlcnMgZW50aXJlbHkuCj4gCj4gQ2hhbmdlcyBpbiB2MjoKPiAg IC0gVXNlIHN0YXRlLT5zdGF0ZSBpbiBkaXNwIGR1cGxpY2F0ZV9zdGF0ZSBjYWxsYmFjayAoSmV5 a3VtYXIpCj4gQ2hhbmdlcyBpbiB2MzoKPiAgIC0gVXBkYXRlIGNvbW1lbnQgZGVzY3JpYmluZyBt c21fa21zX3N0YXRlIChKZXlrdW1hcikKPiAKCk9uZSBkaWZmZXJlbmNlIHcuci50IHRoZSBwYXRj aHNldAoiZHJtL21zbS9tZHA1OiBVc2UgdGhlIG5ldyBwcml2YXRlX29iaiBzdGF0ZSIgaXMgdGhh dCB0aGlzCmFkZHMgdGhlIGF0b21pYyBwcml2YXRlX29iaiBmb3IgYWxsIGttcyBiYWNrZW5kcywg d2hlcmVhcyB0aGUgb25lCkknZCBkb25lIG9yaWdpbmFsbHkganVzdCBhZGRlZCBpdCBmb3IgbWRw NSwgc28gdGhpcyBwYXRjaCBzZXQKaXMgYmV0dGVyIGluIHRoYXQgcmVzcGVjdC4KClRoZSBvdGhl ciBkaWZmZXJlbmNlIGlzIGhvdyB3ZSAnZ2V0JyB0aGUgcHJpdmF0ZSBzdGF0ZS4gSW4gdGhpcyBw YXRjaCwKdGhlIGhlbHBlciBkcm1fYXRvbWljX2dldF9wcml2YXRlX29ial9zdGF0ZSgpIGlzIHVz ZWQgZXZlcnkgdGltZSB0bwpnZXQgdGhlIHByaXZhdGUgb2JqZWN0IHN0YXRlLgoKSSdkIHRyaWVk IHRvIGRvIHRoZSBzYW1lIGluaXRpYWxseSwgYnV0IEkgbm90aWNlZCB0aGF0CmRybV9hdG9taWNf Z2V0X3ByaXZhdGVfb2JqX3N0YXRlKCkgZG9lc24ndCByZXR1cm4gdGhlIGNvcnJlY3QKc3RhdGUg cG9zdCBzd2FwcGluZyBvZiBzdGF0ZXMuIFNvLCBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gdGhlIGhl bHBlciwKSSBjcmVhdGVkIGEgaGVscGVyIGNhbGxlZCBtZHA1X2dldF9leGlzdGluZ19nbG9iYWxf c3RhdGUoKSB0aGF0CnJldHVybnMgdGhlIGRlc2lyZWQgc3RhdGUodGhlIHN0YXRlIHBvaW50ZXIg aW4gbXNtX2ttcz5zdGF0ZS0+YmFzZS5zdGF0ZSAKaW4gdGhpcyBwYXRjaCkgaW4gYWxsIGZ1bmNz IHRoYXQgYXJlIGNhbGxlZCBwb3N0LXN3YXAuCgoKWW91IGNvdWxkIHJlYWQgYWJvdXQgdGhlIGlz c3VlIG9uIHRoZSB0aGUgdGhyZWFkOiAiW1JGQyAxLzNdIApkcm0vbXNtL21kcDU6IEFkZCBnbG9i YWwgc3RhdGUgYXMgYSBwcml2YXRlIGF0b21pYyBvYmplY3QiCgpUaGUgcHJvYmxlbSB3YXMgcXVp dGUgYXBwYXJlbnQgd2l0aCBkYjQxMGMsIHdoZXJlIFNNUCBibG9ja3MgYXJlCmFzc2lnbmVkIHRv IHBsYW5lcy4gSWYgdGhlIGxhdGVzdCBTTVAgc3RhdGUgaXNuJ3QgcmVmZXJyZWQgd2hlbgpjb25m aWd1cmluZyBTTVAgcmVnaXN0ZXJzLCB3ZSBzZWUgdW5kZXJydW5zIGltbWVkaWF0ZWx5LgoKQW4g ZWFzeSB3YXkgdG8gcmVwcm9kdWNlIHRoaXMgaXMgdG8gdXNlIG1vZHNldCBvbiBkYjQxMGMuIEkg dGhpbmsKaXQgbWlnaHQgb2NjdXIgd2l0aCB0aGlzIHBhdGNoIHRvby4gSXQgbWlnaHQgYmUgd29y dGggdHJ5aW5nIGl0Cm91dC4KClRoYW5rcywKQXJjaGl0Cgo+IENjOiBKZXlrdW1hciBTYW5rYXJh biA8anNhbmthQGNvZGVhdXJvcmEub3JnPgo+IFJldmlld2VkLWJ5OiBKZXlrdW1hciBTYW5rYXJh biA8anNhbmthQGNvZGVhdXJvcmEub3JnPgo+IFNpZ25lZC1vZmYtYnk6IFNlYW4gUGF1bCA8c2Vh bnBhdWxAY2hyb21pdW0ub3JnPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL21k cDUvbWRwNV9rbXMuYyB8IDM3ICsrKysrKy0tLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vbXNt L21zbV9hdG9taWMuYyAgICAgICAgIHwgMzAgLS0tLS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2Ry bS9tc20vbXNtX2Rydi5jICAgICAgICAgICAgfCA2NSArKysrKysrKysrKysrKysrKysrKysrLS0K PiAgIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5oICAgICAgICAgICAgfCAgNCArLQo+ICAg ZHJpdmVycy9ncHUvZHJtL21zbS9tc21fa21zLmggICAgICAgICAgICB8IDI3ICsrKysrLS0tLS0K PiAgIDUgZmlsZXMgY2hhbmdlZCwgOTQgaW5zZXJ0aW9ucygrKSwgNjkgZGVsZXRpb25zKC0pCj4g Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA1L21kcDVfa21zLmMg Yi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvbWRwNS9tZHA1X2ttcy5jCj4gaW5kZXggNmQ4ZTNh OWE2ZmMwLi5mMWEyNDg0MTk2NTUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9k aXNwL21kcDUvbWRwNV9rbXMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA1 L21kcDVfa21zLmMKPiBAQCAtNzQsMzYgKzc0LDMyIEBAIHN0cnVjdCBtZHA1X3N0YXRlICptZHA1 X2dldF9zdGF0ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqcykKPiAgIHsKPiAgIAlzdHJ1Y3Qg bXNtX2RybV9wcml2YXRlICpwcml2ID0gcy0+ZGV2LT5kZXZfcHJpdmF0ZTsKPiAgIAlzdHJ1Y3Qg bWRwNV9rbXMgKm1kcDVfa21zID0gdG9fbWRwNV9rbXModG9fbWRwX2ttcyhwcml2LT5rbXMpKTsK PiAtCXN0cnVjdCBtc21fa21zX3N0YXRlICpzdGF0ZSA9IHRvX2ttc19zdGF0ZShzKTsKPiAtCXN0 cnVjdCBtZHA1X3N0YXRlICpuZXdfc3RhdGU7Cj4gKwlzdHJ1Y3QgbXNtX2ttc19zdGF0ZSAqa21z X3N0YXRlOwo+ICAgCWludCByZXQ7Cj4gICAKPiAtCWlmIChzdGF0ZS0+c3RhdGUpCj4gLQkJcmV0 dXJuIHN0YXRlLT5zdGF0ZTsKPiAtCj4gICAJcmV0ID0gZHJtX21vZGVzZXRfbG9jaygmbWRwNV9r bXMtPnN0YXRlX2xvY2ssIHMtPmFjcXVpcmVfY3R4KTsKPiAgIAlpZiAocmV0KQo+ICAgCQlyZXR1 cm4gRVJSX1BUUihyZXQpOwo+ICAgCj4gLQluZXdfc3RhdGUgPSBrbWFsbG9jKHNpemVvZigqbWRw NV9rbXMtPnN0YXRlKSwgR0ZQX0tFUk5FTCk7Cj4gLQlpZiAoIW5ld19zdGF0ZSkKPiAtCQlyZXR1 cm4gRVJSX1BUUigtRU5PTUVNKTsKPiArCWttc19zdGF0ZSA9IG1zbV9rbXNfZ2V0X3N0YXRlKHMp Owo+ICsJaWYgKElTX0VSUl9PUl9OVUxMKGttc19zdGF0ZSkpCj4gKwkJcmV0dXJuIChzdHJ1Y3Qg bWRwNV9zdGF0ZSAqKWttc19zdGF0ZTsgLyogY2FzdGluZyBFUlJfUFRSICovCj4gICAKPiAtCS8q IENvcHkgc3RhdGU6ICovCj4gLQluZXdfc3RhdGUtPmh3cGlwZSA9IG1kcDVfa21zLT5zdGF0ZS0+ aHdwaXBlOwo+IC0JbmV3X3N0YXRlLT5od21peGVyID0gbWRwNV9rbXMtPnN0YXRlLT5od21peGVy Owo+IC0JaWYgKG1kcDVfa21zLT5zbXApCj4gLQkJbmV3X3N0YXRlLT5zbXAgPSBtZHA1X2ttcy0+ c3RhdGUtPnNtcDsKPiArCXJldHVybiBrbXNfc3RhdGUtPnN0YXRlOwo+ICt9Cj4gICAKPiAtCXN0 YXRlLT5zdGF0ZSA9IG5ld19zdGF0ZTsKPiArc3RhdGljIHZvaWQgKm1kcDVfZHVwbGljYXRlX3N0 YXRlKHZvaWQgKnN0YXRlKQo+ICt7Cj4gKwlpZiAoIXN0YXRlKQo+ICsJCXJldHVybiBremFsbG9j KHNpemVvZihzdHJ1Y3QgbWRwNV9zdGF0ZSksIEdGUF9LRVJORUwpOwo+ICAgCj4gLQlyZXR1cm4g bmV3X3N0YXRlOwo+ICsJcmV0dXJuIGttZW1kdXAoc3RhdGUsIHNpemVvZihzdHJ1Y3QgbWRwNV9z dGF0ZSksIEdGUF9LRVJORUwpOwo+ICAgfQo+ICAgCj4gLXN0YXRpYyB2b2lkIG1kcDVfc3dhcF9z dGF0ZShzdHJ1Y3QgbXNtX2ttcyAqa21zLCBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUp Cj4gK3N0YXRpYyB2b2lkIG1kcDVfZGVzdHJveV9zdGF0ZSh2b2lkICpzdGF0ZSkKPiAgIHsKPiAt CXN0cnVjdCBtZHA1X2ttcyAqbWRwNV9rbXMgPSB0b19tZHA1X2ttcyh0b19tZHBfa21zKGttcykp Owo+IC0Jc3dhcCh0b19rbXNfc3RhdGUoc3RhdGUpLT5zdGF0ZSwgbWRwNV9rbXMtPnN0YXRlKTsK PiArCXN0cnVjdCBtZHA1X3N0YXRlICptZHBfc3RhdGUgPSBzdGF0ZTsKPiArCWtmcmVlKG1kcF9z dGF0ZSk7Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyB2b2lkIG1kcDVfcHJlcGFyZV9jb21taXQoc3Ry dWN0IG1zbV9rbXMgKmttcywgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+IEBAIC0y MjksNyArMjI1LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtZHBfa21zX2Z1bmNzIGttc19mdW5j cyA9IHsKPiAgIAkJLmlycSAgICAgICAgICAgICA9IG1kcDVfaXJxLAo+ICAgCQkuZW5hYmxlX3Zi bGFuayAgID0gbWRwNV9lbmFibGVfdmJsYW5rLAo+ICAgCQkuZGlzYWJsZV92YmxhbmsgID0gbWRw NV9kaXNhYmxlX3ZibGFuaywKPiAtCQkuc3dhcF9zdGF0ZSAgICAgID0gbWRwNV9zd2FwX3N0YXRl LAo+ICsJCS5kdXBsaWNhdGVfc3RhdGUgPSBtZHA1X2R1cGxpY2F0ZV9zdGF0ZSwKPiArCQkuZGVz dHJveV9zdGF0ZQkgPSBtZHA1X2Rlc3Ryb3lfc3RhdGUsCj4gICAJCS5wcmVwYXJlX2NvbW1pdCAg PSBtZHA1X3ByZXBhcmVfY29tbWl0LAo+ICAgCQkuY29tcGxldGVfY29tbWl0ID0gbWRwNV9jb21w bGV0ZV9jb21taXQsCj4gICAJCS53YWl0X2Zvcl9jcnRjX2NvbW1pdF9kb25lID0gbWRwNV93YWl0 X2Zvcl9jcnRjX2NvbW1pdF9kb25lLAo+IEBAIC03MjYsOCArNzIzLDYgQEAgc3RhdGljIHZvaWQg bWRwNV9kZXN0cm95KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gICAKPiAgIAlpZiAo bWRwNV9rbXMtPnJwbV9lbmFibGVkKQo+ICAgCQlwbV9ydW50aW1lX2Rpc2FibGUoJnBkZXYtPmRl dik7Cj4gLQo+IC0Ja2ZyZWUobWRwNV9rbXMtPnN0YXRlKTsKPiAgIH0KPiAgIAo+ICAgc3RhdGlj IGludCBjb25zdHJ1Y3RfcGlwZXMoc3RydWN0IG1kcDVfa21zICptZHA1X2ttcywgaW50IGNudCwK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fYXRvbWljLmMgYi9kcml2ZXJz L2dwdS9kcm0vbXNtL21zbV9hdG9taWMuYwo+IGluZGV4IDdlNTRlYjY1ZDA5Ni4uMWY1MzI2MmVh NDZiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2F0b21pYy5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fYXRvbWljLmMKPiBAQCAtMTY5LDkgKzE2OSw2IEBA IGludCBtc21fYXRvbWljX2NvbW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgCSAqLwo+ ICAgCUJVR19PTihkcm1fYXRvbWljX2hlbHBlcl9zd2FwX3N0YXRlKHN0YXRlLCBmYWxzZSkgPCAw KTsKPiAgIAo+IC0JaWYgKHRvX2ttc19zdGF0ZShzdGF0ZSktPnN0YXRlKQo+IC0JCXByaXYtPmtt cy0+ZnVuY3MtPnN3YXBfc3RhdGUocHJpdi0+a21zLCBzdGF0ZSk7Cj4gLQo+ICAgCS8qCj4gICAJ ICogUHJvdmlkZSB0aGUgZHJpdmVyIGEgY2hhbmNlIHRvIHByZXBhcmUgZm9yIG91dHB1dCBmZW5j ZXMuIFRoaXMgaXMKPiAgIAkgKiBkb25lIGFmdGVyIHRoZSBwb2ludCBvZiBubyByZXR1cm4sIGJ1 dCBiZWZvcmUgYXN5bmNocm9ub3VzIGNvbW1pdHMKPiBAQCAtMjEwLDMwICsyMDcsMyBAQCBpbnQg bXNtX2F0b21pY19jb21taXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgIAlkcm1fYXRvbWlj X2hlbHBlcl9jbGVhbnVwX3BsYW5lcyhkZXYsIHN0YXRlKTsKPiAgIAlyZXR1cm4gcmV0Owo+ICAg fQo+IC0KPiAtc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm1zbV9hdG9taWNfc3RhdGVfYWxsb2Mo c3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAtewo+IC0Jc3RydWN0IG1zbV9rbXNfc3RhdGUgKnN0 YXRlID0ga3phbGxvYyhzaXplb2YoKnN0YXRlKSwgR0ZQX0tFUk5FTCk7Cj4gLQo+IC0JaWYgKCFz dGF0ZSB8fCBkcm1fYXRvbWljX3N0YXRlX2luaXQoZGV2LCAmc3RhdGUtPmJhc2UpIDwgMCkgewo+ IC0JCWtmcmVlKHN0YXRlKTsKPiAtCQlyZXR1cm4gTlVMTDsKPiAtCX0KPiAtCj4gLQlyZXR1cm4g JnN0YXRlLT5iYXNlOwo+IC19Cj4gLQo+IC12b2lkIG1zbV9hdG9taWNfc3RhdGVfY2xlYXIoc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnMpCj4gLXsKPiAtCXN0cnVjdCBtc21fa21zX3N0YXRlICpz dGF0ZSA9IHRvX2ttc19zdGF0ZShzKTsKPiAtCWRybV9hdG9taWNfc3RhdGVfZGVmYXVsdF9jbGVh cigmc3RhdGUtPmJhc2UpOwo+IC0Ja2ZyZWUoc3RhdGUtPnN0YXRlKTsKPiAtCXN0YXRlLT5zdGF0 ZSA9IE5VTEw7Cj4gLX0KPiAtCj4gLXZvaWQgbXNtX2F0b21pY19zdGF0ZV9mcmVlKHN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAtewo+IC0Ja2ZyZWUodG9fa21zX3N0YXRlKHN0YXRl KS0+c3RhdGUpOwo+IC0JZHJtX2F0b21pY19zdGF0ZV9kZWZhdWx0X3JlbGVhc2Uoc3RhdGUpOwo+ IC0Ja2ZyZWUoc3RhdGUpOwo+IC19Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20v bXNtX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmMKPiBpbmRleCA1MjE5Nzky ZTkzYmMuLjRjMDc0MGRjNzg1NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21z bV9kcnYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5jCj4gQEAgLTEyMSw5 ICsxMjEsNjIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9jb25maWdfZnVuY3MgbW9k ZV9jb25maWdfZnVuY3MgPSB7Cj4gICAJLm91dHB1dF9wb2xsX2NoYW5nZWQgPSBtc21fZmJfb3V0 cHV0X3BvbGxfY2hhbmdlZCwKPiAgIAkuYXRvbWljX2NoZWNrID0gZHJtX2F0b21pY19oZWxwZXJf Y2hlY2ssCj4gICAJLmF0b21pY19jb21taXQgPSBtc21fYXRvbWljX2NvbW1pdCwKPiAtCS5hdG9t aWNfc3RhdGVfYWxsb2MgPSBtc21fYXRvbWljX3N0YXRlX2FsbG9jLAo+IC0JLmF0b21pY19zdGF0 ZV9jbGVhciA9IG1zbV9hdG9taWNfc3RhdGVfY2xlYXIsCj4gLQkuYXRvbWljX3N0YXRlX2ZyZWUg PSBtc21fYXRvbWljX3N0YXRlX2ZyZWUsCj4gK307Cj4gKwo+ICtzdGF0aWMgaW5saW5lCj4gK3N0 cnVjdCBtc21fa21zICpvYmpfdG9fa21zKHN0cnVjdCBkcm1fcHJpdmF0ZV9vYmogKm9iaikKPiAr ewo+ICsJcmV0dXJuIGNvbnRhaW5lcl9vZihvYmosIHN0cnVjdCBtc21fa21zLCBiYXNlKTsKPiAr fQo+ICsKPiArc3RhdGljIGlubGluZQo+ICtzdHJ1Y3QgbXNtX2ttc19zdGF0ZSAqc3RhdGVfdG9f a21zX3N0YXRlKHN0cnVjdCBkcm1fcHJpdmF0ZV9zdGF0ZSAqc3RhdGUpCj4gK3sKPiArCXJldHVy biBjb250YWluZXJfb2Yoc3RhdGUsIHN0cnVjdCBtc21fa21zX3N0YXRlLCBiYXNlKTsKPiArfQo+ ICsKPiArc3RydWN0IG1zbV9rbXNfc3RhdGUgKm1zbV9rbXNfZ2V0X3N0YXRlKHN0cnVjdCBkcm1f YXRvbWljX3N0YXRlICpzKQo+ICt7Cj4gKwlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0g cy0+ZGV2LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBkcm1fcHJpdmF0ZV9vYmogKm9iaiA9ICZw cml2LT5rbXMtPmJhc2U7Cj4gKwlzdHJ1Y3QgZHJtX3ByaXZhdGVfc3RhdGUgKnN0YXRlOwo+ICsK PiArCXN0YXRlID0gZHJtX2F0b21pY19nZXRfcHJpdmF0ZV9vYmpfc3RhdGUocywgb2JqKTsKPiAr CWlmIChJU19FUlJfT1JfTlVMTChzdGF0ZSkpCj4gKwkJcmV0dXJuIChzdHJ1Y3QgbXNtX2ttc19z dGF0ZSAqKXN0YXRlOyAvKiBjYXN0aW5nIEVSUl9QVFIgKi8KPiArCj4gKwlyZXR1cm4gc3RhdGVf dG9fa21zX3N0YXRlKHN0YXRlKTsKPiArfQo+ICsKPiArc3RhdGljIHN0cnVjdCBkcm1fcHJpdmF0 ZV9zdGF0ZSAqCj4gK21zbV9rbXNfZHVwbGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fcHJpdmF0ZV9v YmogKm9iaikKPiArewo+ICsJc3RydWN0IG1zbV9rbXMgKmttcyA9IG9ial90b19rbXMob2JqKTsK PiArCXN0cnVjdCBtc21fa21zX3N0YXRlICpzdGF0ZSA9IHN0YXRlX3RvX2ttc19zdGF0ZShvYmot PnN0YXRlKTsKPiArCXN0cnVjdCBtc21fa21zX3N0YXRlICpuZXdfc3RhdGU7Cj4gKwo+ICsJaWYg KGttcy0+ZnVuY3MtPmR1cGxpY2F0ZV9zdGF0ZSkKPiArCQluZXdfc3RhdGUgPSBrbXMtPmZ1bmNz LT5kdXBsaWNhdGVfc3RhdGUoc3RhdGUtPnN0YXRlKTsKPiArCj4gKwlfX2RybV9hdG9taWNfaGVs cGVyX3ByaXZhdGVfb2JqX2R1cGxpY2F0ZV9zdGF0ZShvYmosICZuZXdfc3RhdGUtPmJhc2UpOwo+ ICsKPiArCXJldHVybiAmbmV3X3N0YXRlLT5iYXNlOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBt c21fa21zX2Rlc3Ryb3lfc3RhdGUoc3RydWN0IGRybV9wcml2YXRlX29iaiAqb2JqLAo+ICsJCQkJ ICBzdHJ1Y3QgZHJtX3ByaXZhdGVfc3RhdGUgKnN0YXRlKQo+ICt7Cj4gKwlzdHJ1Y3QgbXNtX2tt cyAqa21zID0gb2JqX3RvX2ttcyhvYmopOwo+ICsJc3RydWN0IG1zbV9rbXNfc3RhdGUgKmttc19z dGF0ZSA9IHN0YXRlX3RvX2ttc19zdGF0ZShvYmotPnN0YXRlKTsKPiArCj4gKwlpZiAoa21zLT5m dW5jcy0+ZGVzdHJveV9zdGF0ZSkKPiArCQlrbXMtPmZ1bmNzLT5kZXN0cm95X3N0YXRlKGttc19z dGF0ZS0+c3RhdGUpOwo+ICsJa2ZyZWUoa21zX3N0YXRlKTsKPiArfQo+ICsKPiArc3RhdGljIGNv bnN0IHN0cnVjdCBkcm1fcHJpdmF0ZV9zdGF0ZV9mdW5jcyBrbXNfc3RhdGVfZnVuY3MgPSB7Cj4g KwkuYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZSA9IG1zbV9rbXNfZHVwbGljYXRlX3N0YXRlLAo+ICsJ LmF0b21pY19kZXN0cm95X3N0YXRlID0gbXNtX2ttc19kZXN0cm95X3N0YXRlLAo+ICAgfTsKPiAg IAo+ICAgI2lmZGVmIENPTkZJR19EUk1fTVNNX1JFR0lTVEVSX0xPR0dJTkcKPiBAQCAtMzQxLDYg KzM5NCw4IEBAIHN0YXRpYyBpbnQgbXNtX2RybV91bmluaXQoc3RydWN0IGRldmljZSAqZGV2KQo+ ICAgCQl9Cj4gICAJfQo+ICAgCj4gKwlkcm1fYXRvbWljX3ByaXZhdGVfb2JqX2ZpbmkoJmttcy0+ YmFzZSk7Cj4gKwo+ICAgCW1zbV9nZW1fc2hyaW5rZXJfY2xlYW51cChkZGV2KTsKPiAgIAo+ICAg CWRybV9rbXNfaGVscGVyX3BvbGxfZmluaShkZGV2KTsKPiBAQCAtNzcwLDYgKzgyNSwxMCBAQCBz dGF0aWMgaW50IG1zbV9kcm1faW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZHJp dmVyICpkcnYpCj4gICAJfQo+ICAgI2VuZGlmCj4gICAKPiArCWRybV9hdG9taWNfcHJpdmF0ZV9v YmpfaW5pdCgma21zLT5iYXNlLAo+ICsJCQkJICAgICZrbXMtPnN0YXRlLmJhc2UsCj4gKwkJCQkg ICAgJmttc19zdGF0ZV9mdW5jcyk7Cj4gKwo+ICAgCS8qIHBlcmZvcm0gc3ViZHJpdmVyIHBvc3Qg aW5pdGlhbGl6YXRpb24gKi8KPiAgIAlpZiAoa21zICYmIGttcy0+ZnVuY3MgJiYga21zLT5mdW5j cy0+cG9zdGluaXQpIHsKPiAgIAkJcmV0ID0ga21zLT5mdW5jcy0+cG9zdGluaXQoa21zKTsKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmggYi9kcml2ZXJzL2dwdS9k cm0vbXNtL21zbV9kcnYuaAo+IGluZGV4IDI5MjQ5NmI2ODJlOC4uOGNhYjMzM2RmNzE3IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5oCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL21zbS9tc21fZHJ2LmgKPiBAQCAtNTk4LDkgKzU5OCw3IEBAIHN0cnVjdCBtc21fZm9y bWF0IHsKPiAgIAo+ICAgaW50IG1zbV9hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCj4gICAJCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwgYm9vbCBub25ibG9jayk7 Cj4gLXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICptc21fYXRvbWljX3N0YXRlX2FsbG9jKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpOwo+IC12b2lkIG1zbV9hdG9taWNfc3RhdGVfY2xlYXIoc3RydWN0 IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKPiAtdm9pZCBtc21fYXRvbWljX3N0YXRlX2ZyZWUo c3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKPiArc3RydWN0IG1zbV9rbXNfc3RhdGUg Km1zbV9rbXNfZ2V0X3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7Cj4gICAK PiAgIHZvaWQgbXNtX2dlbV91bm1hcF92bWEoc3RydWN0IG1zbV9nZW1fYWRkcmVzc19zcGFjZSAq YXNwYWNlLAo+ICAgCQlzdHJ1Y3QgbXNtX2dlbV92bWEgKnZtYSwgc3RydWN0IHNnX3RhYmxlICpz Z3QpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9rbXMuaCBiL2RyaXZl cnMvZ3B1L2RybS9tc20vbXNtX2ttcy5oCj4gaW5kZXggMDliYTFlNzlkYjUwLi41YzFiY2FmNjVm ZDkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fa21zLmgKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vbXNtL21zbV9rbXMuaAo+IEBAIC01Nyw2ICs1Nyw4IEBAIHN0cnVjdCBt c21fa21zX2Z1bmNzIHsKPiAgIAl2b2lkICgqZGlzYWJsZV92YmxhbmspKHN0cnVjdCBtc21fa21z ICprbXMsIHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7Cj4gICAJLyogc3dhcCBnbG9iYWwgYXRvbWlj IHN0YXRlOiAqLwo+ICAgCXZvaWQgKCpzd2FwX3N0YXRlKShzdHJ1Y3QgbXNtX2ttcyAqa21zLCBz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwo+ICsJdm9pZCAqKCpkdXBsaWNhdGVfc3Rh dGUpKHZvaWQgKnN0YXRlKTsKPiArCXZvaWQgKCpkZXN0cm95X3N0YXRlKSh2b2lkICpzdGF0ZSk7 Cj4gICAJLyogbW9kZXNldCwgYnJhY2tldGluZyBhdG9taWNfY29tbWl0KCk6ICovCj4gICAJdm9p ZCAoKnByZXBhcmVfZmVuY2UpKHN0cnVjdCBtc21fa21zICprbXMsCj4gICAJCQlzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZSAqc3RhdGUpOwo+IEBAIC0xMTQsNyArMTE2LDIwIEBAIHN0cnVjdCBtc21f a21zX2Z1bmNzIHsKPiAgICNlbmRpZgo+ICAgfTsKPiAgIAo+ICsvKioKPiArICogU3ViY2xhc3Mg b2YgZHJtX3ByaXZhdGVfc3RhdGUsIHRvIGFsbG93IGttcyBiYWNrZW5kIHRvIGhhdmUgZHJpdmVy Cj4gKyAqIHByaXZhdGUgZ2xvYmFsIHN0YXRlLiAgVGhlIGttcyBiYWNrZW5kIGNhbiBkbyB3aGF0 ZXZlciBpdCB3YW50cwo+ICsgKiB3aXRoIHRoZSAtPnN0YXRlIHB0ci4KPiArICovCj4gK3N0cnVj dCBtc21fa21zX3N0YXRlIHsKPiArCXN0cnVjdCBkcm1fcHJpdmF0ZV9zdGF0ZSBiYXNlOwo+ICsJ dm9pZCAqc3RhdGU7Cj4gK307Cj4gKwo+ICAgc3RydWN0IG1zbV9rbXMgewo+ICsJc3RydWN0IGRy bV9wcml2YXRlX29iaiBiYXNlOwo+ICsJc3RydWN0IG1zbV9rbXNfc3RhdGUgc3RhdGU7Cj4gKwo+ ICAgCWNvbnN0IHN0cnVjdCBtc21fa21zX2Z1bmNzICpmdW5jczsKPiAgIAo+ICAgCS8qIGlycSBu dW1iZXIgdG8gYmUgcGFzc2VkIG9uIHRvIGRybV9pcnFfaW5zdGFsbCAqLwo+IEBAIC0xMjQsMTgg KzEzOSw2IEBAIHN0cnVjdCBtc21fa21zIHsKPiAgIAlzdHJ1Y3QgbXNtX2dlbV9hZGRyZXNzX3Nw YWNlICphc3BhY2U7Cj4gICB9Owo+ICAgCj4gLS8qKgo+IC0gKiBTdWJjbGFzcyBvZiBkcm1fYXRv bWljX3N0YXRlLCB0byBhbGxvdyBrbXMgYmFja2VuZCB0byBoYXZlIGRyaXZlcgo+IC0gKiBwcml2 YXRlIGdsb2JhbCBzdGF0ZS4gIFRoZSBrbXMgYmFja2VuZCBjYW4gZG8gd2hhdGV2ZXIgaXQgd2Fu dHMKPiAtICogd2l0aCB0aGUgLT5zdGF0ZSBwdHIuICBPbiAtPmF0b21pY19zdGF0ZV9jbGVhcigp IHRoZSAtPnN0YXRlIHB0cgo+IC0gKiBpcyBrZnJlZSdkIGFuZCBzZXQgYmFjayB0byBOVUxMLgo+ IC0gKi8KPiAtc3RydWN0IG1zbV9rbXNfc3RhdGUgewo+IC0Jc3RydWN0IGRybV9hdG9taWNfc3Rh dGUgYmFzZTsKPiAtCXZvaWQgKnN0YXRlOwo+IC19Owo+IC0jZGVmaW5lIHRvX2ttc19zdGF0ZSh4 KSBjb250YWluZXJfb2YoeCwgc3RydWN0IG1zbV9rbXNfc3RhdGUsIGJhc2UpCj4gLQo+ICAgc3Rh dGljIGlubGluZSB2b2lkIG1zbV9rbXNfaW5pdChzdHJ1Y3QgbXNtX2ttcyAqa21zLAo+ICAgCQlj b25zdCBzdHJ1Y3QgbXNtX2ttc19mdW5jcyAqZnVuY3MpCj4gICB7Cj4gCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkZyZWVkcmVubyBtYWlsaW5nIGxpc3QK RnJlZWRyZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVkcmVubwo=