From mboxrd@z Thu Jan 1 00:00:00 1970 From: jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org Subject: Re: [DPU PATCH 06/11] drm/msm: Remove msm_commit/kthread, use atomic helper commit Date: Wed, 28 Feb 2018 20:07:00 -0800 Message-ID: <82098cc2efdbf6b91f1e3009457eaccb@codeaurora.org> References: <20180228191906.185417-1-seanpaul@chromium.org> <20180228191906.185417-7-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: <20180228191906.185417-7-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Sean Paul Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, abhinavk-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, hoegsberg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org T24gMjAxOC0wMi0yOCAxMToxOSwgU2VhbiBQYXVsIHdyb3RlOgo+IE1vdmluZyBmdXJ0aGVyIHRv d2FyZHMgc3dpdGNoaW5nIGZ1bGx5IHRvIHRoZSB0aGUgYXRvbWljIGhlbHBlcnMsIHRoaXMKPiBw YXRjaCByZW1vdmVzIHRoZSBoYW5kLXJvbGxlZCBrdGhyZWFkIG5vbmJsb2NrIGNvbW1pdCBjb2Rl IGFuZCB1c2VzIHRoZQo+IGF0b21pYyBoZWxwZXJzIGNvbW1pdF93b3JrIG1vZGVsLgo+IAo+IFRo ZXJlJ3Mgc3RpbGwgYSBsb3Qgb2YgY29weXBhc3RhIGhlcmUsIGJ1dCBpdCdzIHN0aWxsIG5lZWRl ZCB0bwo+IGZhY2lsaXRhdGUgdGhlIHN3YXBfc3RhdGUgYW5kIHByZXBhcmVfZmVuY2UgcHJpdmF0 ZSBmdW5jdGlvbnMuIFRoZXNlCj4gd2lsbCBiZSBzb3J0ZWQgb3V0IGluIGEgZm9sbG93LW9uIHBh dGNoLgo+IAo+IENoYW5nZS1JZDogSTlmY2JhMjc4MjRiYTYzZDNmYWI5NmNiMmJjMTk0YmZhNmYz NDc1YjcKPiBTaWduZWQtb2ZmLWJ5OiBTZWFuIFBhdWwgPHNlYW5wYXVsQGNocm9taXVtLm9yZz4K PiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL21zbS9tc21fYXRvbWljLmMgfCAxOTkgKysrKysrLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYyAg ICB8ICAgMSAtCj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5oICAgIHwgICA0IC0KPiAg MyBmaWxlcyBjaGFuZ2VkLCAzNSBpbnNlcnRpb25zKCspLCAxNjkgZGVsZXRpb25zKC0pCj4gCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2F0b21pYy5jCj4gYi9kcml2ZXJz L2dwdS9kcm0vbXNtL21zbV9hdG9taWMuYwo+IGluZGV4IDNhMThiZDNkYzIxNS4uN2U1NGViNjVk MDk2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2F0b21pYy5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fYXRvbWljLmMKPiBAQCAtMjEsNTEgKzIxLDYgQEAK PiAgI2luY2x1ZGUgIm1zbV9nZW0uaCIKPiAgI2luY2x1ZGUgIm1zbV9mZW5jZS5oIgo+IAo+IC1z dHJ1Y3QgbXNtX2NvbW1pdCB7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2Owo+IC0Jc3RydWN0 IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlOwo+IC0JdWludDMyX3QgY3J0Y19tYXNrOwo+IC0JYm9v bCBub25ibG9jazsKPiAtCXN0cnVjdCBrdGhyZWFkX3dvcmsgY29tbWl0X3dvcms7Cj4gLX07Cj4g LQo+IC0vKiBibG9jayB1bnRpbCBzcGVjaWZpZWQgY3J0Y3MgYXJlIG5vIGxvbmdlciBwZW5kaW5n IHVwZGF0ZSwgYW5kCj4gLSAqIGF0b21pY2FsbHkgbWFyayB0aGVtIGFzIHBlbmRpbmcgdXBkYXRl Cj4gLSAqLwo+IC1zdGF0aWMgaW50IHN0YXJ0X2F0b21pYyhzdHJ1Y3QgbXNtX2RybV9wcml2YXRl ICpwcml2LCB1aW50MzJfdCAKPiBjcnRjX21hc2spCj4gLXsKPiAtCWludCByZXQ7Cj4gLQo+IC0J c3Bpbl9sb2NrKCZwcml2LT5wZW5kaW5nX2NydGNzX2V2ZW50LmxvY2spOwo+IC0JcmV0ID0gd2Fp dF9ldmVudF9pbnRlcnJ1cHRpYmxlX2xvY2tlZChwcml2LT5wZW5kaW5nX2NydGNzX2V2ZW50LAo+ IC0JCQkhKHByaXYtPnBlbmRpbmdfY3J0Y3MgJiBjcnRjX21hc2spKTsKPiAtCWlmIChyZXQgPT0g MCkgewo+IC0JCURCRygic3RhcnQ6ICUwOHgiLCBjcnRjX21hc2spOwo+IC0JCXByaXYtPnBlbmRp bmdfY3J0Y3MgfD0gY3J0Y19tYXNrOwo+IC0JfQo+IC0Jc3Bpbl91bmxvY2soJnByaXYtPnBlbmRp bmdfY3J0Y3NfZXZlbnQubG9jayk7Cj4gLQo+IC0JcmV0dXJuIHJldDsKPiAtfQo+IC0KPiAtLyog Y2xlYXIgc3BlY2lmaWVkIGNydGNzIChubyBsb25nZXIgcGVuZGluZyB1cGRhdGUpCj4gLSAqLwo+ IC1zdGF0aWMgdm9pZCBlbmRfYXRvbWljKHN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXYsIHVp bnQzMl90IAo+IGNydGNfbWFzaykKPiAtewo+IC0Jc3Bpbl9sb2NrKCZwcml2LT5wZW5kaW5nX2Ny dGNzX2V2ZW50LmxvY2spOwo+IC0JREJHKCJlbmQ6ICUwOHgiLCBjcnRjX21hc2spOwo+IC0JcHJp di0+cGVuZGluZ19jcnRjcyAmPSB+Y3J0Y19tYXNrOwo+IC0Jd2FrZV91cF9hbGxfbG9ja2VkKCZw cml2LT5wZW5kaW5nX2NydGNzX2V2ZW50KTsKPiAtCXNwaW5fdW5sb2NrKCZwcml2LT5wZW5kaW5n X2NydGNzX2V2ZW50LmxvY2spOwo+IC19Cj4gLQo+IC1zdGF0aWMgdm9pZCBjb21taXRfZGVzdHJv eShzdHJ1Y3QgbXNtX2NvbW1pdCAqYykKPiAtewo+IC0JZW5kX2F0b21pYyhjLT5kZXYtPmRldl9w cml2YXRlLCBjLT5jcnRjX21hc2spOwo+IC0JaWYgKGMtPm5vbmJsb2NrKQo+IC0JCWtmcmVlKGMp Owo+IC19Cj4gLQo+ICBzdGF0aWMgdm9pZCBtc21fYXRvbWljX3dhaXRfZm9yX2NvbW1pdF9kb25l KAo+ICAJCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJc3RydWN0IGRybV9hdG9taWNfc3Rh dGUgKm9sZF9zdGF0ZSkKPiBAQCAtMTE4LDYgKzczLDEwIEBAIHN0YXRpYyB2b2lkIG1zbV9hdG9t aWNfY29tbWl0X3RhaWwoc3RydWN0Cj4gZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gCj4gIAlt c21fYXRvbWljX3dhaXRfZm9yX2NvbW1pdF9kb25lKGRldiwgc3RhdGUpOwo+IAo+ICsJZHJtX2F0 b21pY19oZWxwZXJfY29tbWl0X2h3X2RvbmUoc3RhdGUpOwo+ICsKPiArCWRybV9hdG9taWNfaGVs cGVyX3dhaXRfZm9yX3ZibGFua3MoZGV2LCBzdGF0ZSk7Cj4gKwo+ICAJZHJtX2F0b21pY19oZWxw ZXJfY2xlYW51cF9wbGFuZXMoZGV2LCBzdGF0ZSk7Cj4gCj4gIAlrbXMtPmZ1bmNzLT5jb21wbGV0 ZV9jb21taXQoa21zLCBzdGF0ZSk7Cj4gQEAgLTEyNiwxMDkgKzg1LDI1IEBAIHN0YXRpYyB2b2lk IG1zbV9hdG9taWNfY29tbWl0X3RhaWwoc3RydWN0Cj4gZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUp Cj4gIC8qIFRoZSAocG90ZW50aWFsbHkpIGFzeW5jaHJvbm91cyBwYXJ0IG9mIHRoZSBjb21taXQu ICBBdCB0aGlzIHBvaW50Cj4gICAqIG5vdGhpbmcgY2FuIGZhaWwgc2hvcnQgb2YgYXJtYWdlZGRv bi4KPiAgICovCj4gLXN0YXRpYyB2b2lkIGNvbXBsZXRlX2NvbW1pdChzdHJ1Y3QgbXNtX2NvbW1p dCAqYykKPiArc3RhdGljIHZvaWQgY29tbWl0X3RhaWwoc3RydWN0IGRybV9hdG9taWNfc3RhdGUg KnN0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjLT5zdGF0 ZTsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzdGF0ZS0+ZGV2Owo+ICsJZHJtX2F0b21p Y19oZWxwZXJfd2FpdF9mb3JfZmVuY2VzKHN0YXRlLT5kZXYsIHN0YXRlLCBmYWxzZSk7Cj4gCj4g LQlkcm1fYXRvbWljX2hlbHBlcl93YWl0X2Zvcl9mZW5jZXMoZGV2LCBzdGF0ZSwgZmFsc2UpOwo+ ICsJZHJtX2F0b21pY19oZWxwZXJfd2FpdF9mb3JfZGVwZW5kZW5jaWVzKHN0YXRlKTsKPiAKPiAg CW1zbV9hdG9taWNfY29tbWl0X3RhaWwoc3RhdGUpOwo+IAo+IC0JZHJtX2F0b21pY19zdGF0ZV9w dXQoc3RhdGUpOwo+IC19Cj4gLQo+IC1zdGF0aWMgdm9pZCBfbXNtX2RybV9jb21taXRfd29ya19j YihzdHJ1Y3Qga3RocmVhZF93b3JrICp3b3JrKQo+IC17Cj4gLQlzdHJ1Y3QgbXNtX2NvbW1pdCAq Y29tbWl0ID0gIE5VTEw7Cj4gLQo+IC0JaWYgKCF3b3JrKSB7Cj4gLQkJRFJNX0VSUk9SKCIlczog SW52YWxpZCBjb21taXQgd29yayBkYXRhIVxuIiwgX19mdW5jX18pOwo+IC0JCXJldHVybjsKPiAt CX0KPiAtCj4gLQljb21taXQgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IG1zbV9jb21taXQs IGNvbW1pdF93b3JrKTsKPiAtCj4gLQljb21wbGV0ZV9jb21taXQoY29tbWl0KTsKPiAtCj4gLQlj b21taXRfZGVzdHJveShjb21taXQpOwo+IC19Cj4gLQo+IC1zdGF0aWMgc3RydWN0IG1zbV9jb21t aXQgKmNvbW1pdF9pbml0KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKPiAtCQlib29s IG5vbmJsb2NrKQo+IC17Cj4gLQlzdHJ1Y3QgbXNtX2NvbW1pdCAqYyA9IGt6YWxsb2Moc2l6ZW9m KCpjKSwgR0ZQX0tFUk5FTCk7Cj4gKwlkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfY2xlYW51cF9k b25lKHN0YXRlKTsKPiAKPiAtCWlmICghYykKPiAtCQlyZXR1cm4gTlVMTDsKPiAtCj4gLQljLT5k ZXYgPSBzdGF0ZS0+ZGV2Owo+IC0JYy0+c3RhdGUgPSBzdGF0ZTsKPiAtCWMtPm5vbmJsb2NrID0g bm9uYmxvY2s7Cj4gLQo+IC0Ja3RocmVhZF9pbml0X3dvcmsoJmMtPmNvbW1pdF93b3JrLCBfbXNt X2RybV9jb21taXRfd29ya19jYik7Cj4gLQo+IC0JcmV0dXJuIGM7Cj4gKwlkcm1fYXRvbWljX3N0 YXRlX3B1dChzdGF0ZSk7Cj4gIH0KPiAKPiAtLyogU3RhcnQgZGlzcGxheSB0aHJlYWQgZnVuY3Rp b24gKi8KPiAtc3RhdGljIHZvaWQgbXNtX2F0b21pY19jb21taXRfZGlzcGF0Y2goc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKPiAtCQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsIHN0cnVj dCBtc21fY29tbWl0ICpjb21taXQpCj4gK3N0YXRpYyB2b2lkIGNvbW1pdF93b3JrKHN0cnVjdCB3 b3JrX3N0cnVjdCAqd29yaykKPiAgewo+IC0Jc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdiA9 IGRldi0+ZGV2X3ByaXZhdGU7Cj4gLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBOVUxMOwo+IC0J c3RydWN0IGRybV9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSA9IE5VTEw7Cj4gLQlpbnQgcmV0 ID0gLUVJTlZBTCwgaSA9IDAsIGogPSAwOwo+IC0JYm9vbCBub25ibG9jazsKPiAtCj4gLQkvKiBj YWNoZSBzaW5jZSB3b3JrIHdpbGwga2ZyZWUgY29tbWl0IGluIG5vbi1ibG9ja2luZyBjYXNlICov Cj4gLQlub25ibG9jayA9IGNvbW1pdC0+bm9uYmxvY2s7Cj4gLQo+IC0JZm9yX2VhY2hfbmV3X2Ny dGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIG5ld19jcnRjX3N0YXRlLCBpKSB7Cj4gLQkJZm9yIChq ID0gMDsgaiA8IHByaXYtPm51bV9jcnRjczsgaisrKSB7Cj4gLQkJCWlmIChwcml2LT5kaXNwX3Ro cmVhZFtqXS5jcnRjX2lkID09Cj4gLQkJCQkJCWNydGMtPmJhc2UuaWQpIHsKPiAtCQkJCWlmIChw cml2LT5kaXNwX3RocmVhZFtqXS50aHJlYWQpIHsKPiAtCQkJCQlrdGhyZWFkX3F1ZXVlX3dvcmso Cj4gLQo+ICZwcml2LT5kaXNwX3RocmVhZFtqXS53b3JrZXIsCj4gLQo+ICZjb21taXQtPmNvbW1p dF93b3JrKTsKQXJlIHRoZXJlIGFueSBrbm93biBwcm9wb3NhbHMgZmxvYXRpbmcgYXJvdW5kIHRv IHN1cHBvcnQgQVNZTkMgY29tbWl0cyAKZm9yIGNvbmN1cnJlbnQgZGlzcGxheXMgcmVuZGVyaW5n IGF0IGRpZmZlcmVudCBGUFM/IFRoZSBhYm92ZSBrdGhyZWFkIAptb2RlbCBpcyBpbnRyb2R1Y2Vk IHdoZW4gd2UgZmFjZWQgc29tZSBwZXJmb3JtYW5jZSByb2FkIGJsb2NrZXJzIHdoZW4gYSAKZGlz cGxheSBoYXMgdG8gd2FpdCBmb3IgYW4gb25nb2luZyBkaXNwbGF5IGNvbW1pdCB0byBjb21wbGV0 ZS4KPiAtCQkJCQkvKiBvbmx5IHJldHVybiB6ZXJvIGlmIHdvcmsgaXMKPiAtCQkJCQkgKiBxdWV1 ZWQgc3VjY2Vzc2Z1bGx5Lgo+IC0JCQkJCSAqLwo+IC0JCQkJCXJldCA9IDA7Cj4gLQkJCQl9IGVs c2Ugewo+IC0JCQkJCURSTV9FUlJPUigiIEVycm9yIGZvciBjcnRjX2lkOgo+ICVkXG4iLAo+IC0K PiBwcml2LT5kaXNwX3RocmVhZFtqXS5jcnRjX2lkKTsKPiAtCQkJCX0KPiAtCQkJCWJyZWFrOwo+ IC0JCQl9Cj4gLQkJfQo+IC0JCS8qCj4gLQkJICogVE9ETzogaGFuZGxlIGNhc2VzIHdoZXJlIHRo ZXJlIHdpbGwgYmUgbW9yZSB0aGFuCj4gLQkJICogb25lIGNydGMgcGVyIGNvbW1pdCBjeWNsZS4g UmVtb3ZlIHRoaXMgY2hlY2sgdGhlbi4KPiAtCQkgKiBDdXJyZW50IGFzc3VtcHRpb24gaXMgdGhl cmUgd2lsbCBiZSBvbmx5IG9uZSBjcnRjCj4gLQkJICogcGVyIGNvbW1pdCBjeWNsZS4KPiAtCQkg Ki8KPiAtCQlpZiAoaiA8IHByaXYtPm51bV9jcnRjcykKPiAtCQkJYnJlYWs7Cj4gLQl9Cj4gLQo+ IC0JaWYgKHJldCkgewo+IC0JCS8qKgo+IC0JCSAqIHRoaXMgaXMgbm90IGV4cGVjdGVkIHRvIGhh cHBlbiwgYnV0IGF0IHRoaXMgcG9pbnQgdGhlCj4gc3RhdGUKPiAtCQkgKiBoYXMgYmVlbiBzd2Fw cGVkLCBidXQgd2UgY291bGRuJ3QgZGlzcGF0Y2ggdG8gYSBjcnRjCj4gdGhyZWFkLgo+IC0JCSAq IGZhbGxiYWNrIG5vdyB0byBhIHN5bmNocm9ub3VzIGNvbXBsZXRlX2NvbW1pdCB0byB0cnkKPiBh bmQKPiAtCQkgKiBlbnN1cmUgdGhhdCBTVyBhbmQgSFcgc3RhdGUgZG9uJ3QgZ2V0IG91dCBvZiBz eW5jLgo+IC0JCSAqLwo+IC0JCURSTV9FUlJPUigiZmFpbGVkIHRvIGRpc3BhdGNoIGNvbW1pdCB0 byBhbnkgQ1JUQ1xuIik7Cj4gLQkJY29tcGxldGVfY29tbWl0KGNvbW1pdCk7Cj4gLQl9IGVsc2Ug aWYgKCFub25ibG9jaykgewo+IC0JCWt0aHJlYWRfZmx1c2hfd29yaygmY29tbWl0LT5jb21taXRf d29yayk7Cj4gLQl9Cj4gLQo+IC0JLyogZnJlZSBub25ibG9ja2luZyBjb21taXRzIGluIHRoaXMg Y29udGV4dCwgYWZ0ZXIgcHJvY2Vzc2luZyAqLwo+IC0JaWYgKCFub25ibG9jaykKPiAtCQlrZnJl ZShjb21taXQpOwo+ICsJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gY29udGFpbmVy X29mKHdvcmssCj4gKwkJCQkJCSAgICAgIHN0cnVjdAo+IGRybV9hdG9taWNfc3RhdGUsCj4gKwkJ CQkJCSAgICAgIGNvbW1pdF93b3JrKTsKPiArCWNvbW1pdF90YWlsKHN0YXRlKTsKPiAgfQo+IAo+ ICAvKioKPiBAQCAtMjQ3LDE3ICsxMjIsMTIgQEAgaW50IG1zbV9hdG9taWNfY29tbWl0KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLCBi b29sIG5vbmJsb2NrKQo+ICB7Cj4gIAlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0gZGV2 LT5kZXZfcHJpdmF0ZTsKPiAtCXN0cnVjdCBtc21fY29tbWl0ICpjOwo+ICAJc3RydWN0IGRybV9j cnRjICpjcnRjOwo+ICAJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwo+ICAJc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4gIAlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfcGxh bmVfc3RhdGUsICpuZXdfcGxhbmVfc3RhdGU7Cj4gIAlpbnQgaSwgcmV0Owo+IAo+IC0JcmV0ID0g ZHJtX2F0b21pY19oZWxwZXJfcHJlcGFyZV9wbGFuZXMoZGV2LCBzdGF0ZSk7Cj4gLQlpZiAocmV0 KQo+IC0JCXJldHVybiByZXQ7Cj4gLQo+ICAJLyoKPiAgCSAqIE5vdGUgdGhhdCBwbGFuZS0+YXRv bWljX2FzeW5jX2NoZWNrKCkgc2hvdWxkIGZhaWwgaWYgd2UgbmVlZAo+ICAJICogdG8gcmUtYXNz aWduIGh3cGlwZSBvciBhbnl0aGluZyB0aGF0IHRvdWNoZXMgZ2xvYmFsIGF0b21pYwo+IEBAIC0y NjUsMzIgKzEzNSwzMCBAQCBpbnQgbXNtX2F0b21pY19jb21taXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKPiAgCSAqIGNhc2VzLgo+ICAJICovCj4gIAlpZiAoc3RhdGUtPmFzeW5jX3VwZGF0ZSkg ewo+ICsJCXJldCA9IGRybV9hdG9taWNfaGVscGVyX3ByZXBhcmVfcGxhbmVzKGRldiwgc3RhdGUp Owo+ICsJCWlmIChyZXQpCj4gKwkJCXJldHVybiByZXQ7Cj4gKwo+ICAJCWRybV9hdG9taWNfaGVs cGVyX2FzeW5jX2NvbW1pdChkZXYsIHN0YXRlKTsKPiAgCQlkcm1fYXRvbWljX2hlbHBlcl9jbGVh bnVwX3BsYW5lcyhkZXYsIHN0YXRlKTsKPiAgCQlyZXR1cm4gMDsKPiAgCX0KPiAKPiAtCWMgPSBj b21taXRfaW5pdChzdGF0ZSwgbm9uYmxvY2spOwo+IC0JaWYgKCFjKSB7Cj4gLQkJcmV0ID0gLUVO T01FTTsKPiAtCQlnb3RvIGVycm9yOwo+IC0JfQo+ICsJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJf c2V0dXBfY29tbWl0KHN0YXRlLCBub25ibG9jayk7Cj4gKwlpZiAocmV0KQo+ICsJCXJldHVybiBy ZXQ7Cj4gCj4gLQkvKgo+IC0JICogRmlndXJlIG91dCB3aGF0IGNydGNzIHdlIGhhdmU6Cj4gLQkg Ki8KPiAtCWZvcl9lYWNoX25ld19jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRl LCBpKQo+IC0JCWMtPmNydGNfbWFzayB8PSBkcm1fY3J0Y19tYXNrKGNydGMpOwo+ICsJSU5JVF9X T1JLKCZzdGF0ZS0+Y29tbWl0X3dvcmssIGNvbW1pdF93b3JrKTsKPiAKPiAtCS8qCj4gLQkgKiBX YWl0IGZvciBwZW5kaW5nIHVwZGF0ZXMgb24gYW55IG9mIHRoZSBzYW1lIGNydGMncyBhbmQgdGhl bgo+IC0JICogbWFyayBvdXIgc2V0IG9mIGNydGMncyBhcyBidXN5Ogo+IC0JICovCj4gLQlyZXQg PSBzdGFydF9hdG9taWMoZGV2LT5kZXZfcHJpdmF0ZSwgYy0+Y3J0Y19tYXNrKTsKPiArCXJldCA9 IGRybV9hdG9taWNfaGVscGVyX3ByZXBhcmVfcGxhbmVzKGRldiwgc3RhdGUpOwo+ICAJaWYgKHJl dCkKPiAtCQlnb3RvIGVycl9mcmVlOwo+ICsJCXJldHVybiByZXQ7Cj4gCj4gLQlCVUdfT04oZHJt X2F0b21pY19oZWxwZXJfc3dhcF9zdGF0ZShzdGF0ZSwgZmFsc2UpIDwgMCk7Cj4gKwlpZiAoIW5v bmJsb2NrKSB7Cj4gKwkJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfd2FpdF9mb3JfZmVuY2VzKGRl diwgc3RhdGUsIHRydWUpOwo+ICsJCWlmIChyZXQpCj4gKwkJCWdvdG8gZXJyb3I7Cj4gKwl9Cj4g Cj4gIAkvKgo+ICAJICogVGhpcyBpcyB0aGUgcG9pbnQgb2Ygbm8gcmV0dXJuIC0gZXZlcnl0aGlu ZyBiZWxvdyBuZXZlciBmYWlscwo+IGV4Y2VwdAo+IEBAIC0yOTksNiArMTY3LDggQEAgaW50IG1z bV9hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkgKgo+ICAJICogc3dh cCBkcml2ZXIgcHJpdmF0ZSBzdGF0ZSB3aGlsZSBzdGlsbCBob2xkaW5nIHN0YXRlX2xvY2sKPiAg CSAqLwo+ICsJQlVHX09OKGRybV9hdG9taWNfaGVscGVyX3N3YXBfc3RhdGUoc3RhdGUsIGZhbHNl KSA8IDApOwo+ICsKPiAgCWlmICh0b19rbXNfc3RhdGUoc3RhdGUpLT5zdGF0ZSkKPiAgCQlwcml2 LT5rbXMtPmZ1bmNzLT5zd2FwX3N0YXRlKHByaXYtPmttcywgc3RhdGUpOwo+IAo+IEBAIC0zMjks MTIgKzE5OSwxMyBAQCBpbnQgbXNtX2F0b21pY19jb21taXQoc3RydWN0IGRybV9kZXZpY2UgKmRl diwKPiAgCSAqLwo+IAo+ICAJZHJtX2F0b21pY19zdGF0ZV9nZXQoc3RhdGUpOwo+IC0JbXNtX2F0 b21pY19jb21taXRfZGlzcGF0Y2goZGV2LCBzdGF0ZSwgYyk7Cj4gKwlpZiAobm9uYmxvY2spCj4g KwkJcXVldWVfd29yayhzeXN0ZW1fdW5ib3VuZF93cSwgJnN0YXRlLT5jb21taXRfd29yayk7Cj4g KwllbHNlCj4gKwkJY29tbWl0X3RhaWwoc3RhdGUpOwo+IAo+ICAJcmV0dXJuIDA7Cj4gCj4gLWVy cl9mcmVlOgo+IC0Ja2ZyZWUoYyk7Cj4gIGVycm9yOgo+ICAJZHJtX2F0b21pY19oZWxwZXJfY2xl YW51cF9wbGFuZXMoZGV2LCBzdGF0ZSk7Cj4gIAlyZXR1cm4gcmV0Owo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYyAKPiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNt X2Rydi5jCj4gaW5kZXggZWRhNGEyMzQwZjkzLi5iMzU0NDI0Y2NjYjUgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNt L21zbV9kcnYuYwo+IEBAIC01NDksNyArNTQ5LDYgQEAgc3RhdGljIGludCBtc21fZHJtX2luaXQo c3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QKPiBkcm1fZHJpdmVyICpkcnYpCj4gIAkJZ290byBt ZHNzX2luaXRfZmFpbDsKPiAKPiAgCXByaXYtPndxID0gYWxsb2Nfb3JkZXJlZF93b3JrcXVldWUo Im1zbV9kcm0iLCAwKTsKPiAtCWluaXRfd2FpdHF1ZXVlX2hlYWQoJnByaXYtPnBlbmRpbmdfY3J0 Y3NfZXZlbnQpOwo+IAo+ICAJSU5JVF9MSVNUX0hFQUQoJnByaXYtPmNsaWVudF9ldmVudF9saXN0 KTsKPiAgCUlOSVRfTElTVF9IRUFEKCZwcml2LT5pbmFjdGl2ZV9saXN0KTsKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmggCj4gYi9kcml2ZXJzL2dwdS9kcm0vbXNt L21zbV9kcnYuaAo+IGluZGV4IGNmOTZhODVmNGI1NS4uMjkyNDk2YjY4MmU4IDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L21zbS9tc21fZHJ2LmgKPiBAQCAtNTM2LDEwICs1MzYsNiBAQCBzdHJ1Y3QgbXNtX2RybV9wcml2 YXRlIHsKPiAKPiAgCXN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICp3cTsKPiAKPiAtCS8qIGNydGNz IHBlbmRpbmcgYXN5bmMgYXRvbWljIHVwZGF0ZXM6ICovCj4gLQl1aW50MzJfdCBwZW5kaW5nX2Ny dGNzOwo+IC0Jd2FpdF9xdWV1ZV9oZWFkX3QgcGVuZGluZ19jcnRjc19ldmVudDsKPiAtCj4gIAl1 bnNpZ25lZCBpbnQgbnVtX3BsYW5lczsKPiAgCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lc1tNQVhf UExBTkVTXTsKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K RnJlZWRyZW5vIG1haWxpbmcgbGlzdApGcmVlZHJlbm9AbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZWRyZW5vCg==