From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [DPU PATCH 06/11] drm/msm: Remove msm_commit/kthread, use atomic helper commit Date: Thu, 1 Mar 2018 10:27:24 -0500 Message-ID: <20180301152724.GM223881@art_vandelay> References: <20180228191906.185417-1-seanpaul@chromium.org> <20180228191906.185417-7-seanpaul@chromium.org> <82098cc2efdbf6b91f1e3009457eaccb@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <82098cc2efdbf6b91f1e3009457eaccb@codeaurora.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: jsanka@codeaurora.org Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, abhinavk@codeaurora.org, hoegsberg@chromium.org, freedreno@lists.freedesktop.org List-Id: linux-arm-msm@vger.kernel.org T24gV2VkLCBGZWIgMjgsIDIwMTggYXQgMDg6MDc6MDBQTSAtMDgwMCwganNhbmthQGNvZGVhdXJv cmEub3JnIHdyb3RlOgo+IE9uIDIwMTgtMDItMjggMTE6MTksIFNlYW4gUGF1bCB3cm90ZToKPiA+ IE1vdmluZyBmdXJ0aGVyIHRvd2FyZHMgc3dpdGNoaW5nIGZ1bGx5IHRvIHRoZSB0aGUgYXRvbWlj IGhlbHBlcnMsIHRoaXMKPiA+IHBhdGNoIHJlbW92ZXMgdGhlIGhhbmQtcm9sbGVkIGt0aHJlYWQg bm9uYmxvY2sgY29tbWl0IGNvZGUgYW5kIHVzZXMgdGhlCj4gPiBhdG9taWMgaGVscGVycyBjb21t aXRfd29yayBtb2RlbC4KPiA+IAo+ID4gVGhlcmUncyBzdGlsbCBhIGxvdCBvZiBjb3B5cGFzdGEg aGVyZSwgYnV0IGl0J3Mgc3RpbGwgbmVlZGVkIHRvCj4gPiBmYWNpbGl0YXRlIHRoZSBzd2FwX3N0 YXRlIGFuZCBwcmVwYXJlX2ZlbmNlIHByaXZhdGUgZnVuY3Rpb25zLiBUaGVzZQo+ID4gd2lsbCBi ZSBzb3J0ZWQgb3V0IGluIGEgZm9sbG93LW9uIHBhdGNoLgo+ID4gCj4gPiBDaGFuZ2UtSWQ6IEk5 ZmNiYTI3ODI0YmE2M2QzZmFiOTZjYjJiYzE5NGJmYTZmMzQ3NWI3Cj4gPiBTaWduZWQtb2ZmLWJ5 OiBTZWFuIFBhdWwgPHNlYW5wYXVsQGNocm9taXVtLm9yZz4KPiA+IC0tLQo+ID4gIGRyaXZlcnMv Z3B1L2RybS9tc20vbXNtX2F0b21pYy5jIHwgMTk5ICsrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYyAgICB8ICAgMSAtCj4gPiAg ZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmggICAgfCAgIDQgLQo+ID4gIDMgZmlsZXMgY2hh bmdlZCwgMzUgaW5zZXJ0aW9ucygrKSwgMTY5IGRlbGV0aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fYXRvbWljLmMKPiA+IGIvZHJpdmVycy9ncHUv ZHJtL21zbS9tc21fYXRvbWljLmMKPiA+IGluZGV4IDNhMThiZDNkYzIxNS4uN2U1NGViNjVkMDk2 IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fYXRvbWljLmMKPiA+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2F0b21pYy5jCj4gPiBAQCAtMjEsNTEgKzIxLDYg QEAKPiA+ICAjaW5jbHVkZSAibXNtX2dlbS5oIgo+ID4gICNpbmNsdWRlICJtc21fZmVuY2UuaCIK PiA+IAo+ID4gLXN0cnVjdCBtc21fY29tbWl0IHsKPiA+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRl djsKPiA+IC0Jc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlOwo+ID4gLQl1aW50MzJfdCBj cnRjX21hc2s7Cj4gPiAtCWJvb2wgbm9uYmxvY2s7Cj4gPiAtCXN0cnVjdCBrdGhyZWFkX3dvcmsg Y29tbWl0X3dvcms7Cj4gPiAtfTsKPiA+IC0KPiA+IC0vKiBibG9jayB1bnRpbCBzcGVjaWZpZWQg Y3J0Y3MgYXJlIG5vIGxvbmdlciBwZW5kaW5nIHVwZGF0ZSwgYW5kCj4gPiAtICogYXRvbWljYWxs eSBtYXJrIHRoZW0gYXMgcGVuZGluZyB1cGRhdGUKPiA+IC0gKi8KPiA+IC1zdGF0aWMgaW50IHN0 YXJ0X2F0b21pYyhzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2LCB1aW50MzJfdAo+ID4gY3J0 Y19tYXNrKQo+ID4gLXsKPiA+IC0JaW50IHJldDsKPiA+IC0KPiA+IC0Jc3Bpbl9sb2NrKCZwcml2 LT5wZW5kaW5nX2NydGNzX2V2ZW50LmxvY2spOwo+ID4gLQlyZXQgPSB3YWl0X2V2ZW50X2ludGVy cnVwdGlibGVfbG9ja2VkKHByaXYtPnBlbmRpbmdfY3J0Y3NfZXZlbnQsCj4gPiAtCQkJIShwcml2 LT5wZW5kaW5nX2NydGNzICYgY3J0Y19tYXNrKSk7Cj4gPiAtCWlmIChyZXQgPT0gMCkgewo+ID4g LQkJREJHKCJzdGFydDogJTA4eCIsIGNydGNfbWFzayk7Cj4gPiAtCQlwcml2LT5wZW5kaW5nX2Ny dGNzIHw9IGNydGNfbWFzazsKPiA+IC0JfQo+ID4gLQlzcGluX3VubG9jaygmcHJpdi0+cGVuZGlu Z19jcnRjc19ldmVudC5sb2NrKTsKPiA+IC0KPiA+IC0JcmV0dXJuIHJldDsKPiA+IC19Cj4gPiAt Cj4gPiAtLyogY2xlYXIgc3BlY2lmaWVkIGNydGNzIChubyBsb25nZXIgcGVuZGluZyB1cGRhdGUp Cj4gPiAtICovCj4gPiAtc3RhdGljIHZvaWQgZW5kX2F0b21pYyhzdHJ1Y3QgbXNtX2RybV9wcml2 YXRlICpwcml2LCB1aW50MzJfdAo+ID4gY3J0Y19tYXNrKQo+ID4gLXsKPiA+IC0Jc3Bpbl9sb2Nr KCZwcml2LT5wZW5kaW5nX2NydGNzX2V2ZW50LmxvY2spOwo+ID4gLQlEQkcoImVuZDogJTA4eCIs IGNydGNfbWFzayk7Cj4gPiAtCXByaXYtPnBlbmRpbmdfY3J0Y3MgJj0gfmNydGNfbWFzazsKPiA+ IC0Jd2FrZV91cF9hbGxfbG9ja2VkKCZwcml2LT5wZW5kaW5nX2NydGNzX2V2ZW50KTsKPiA+IC0J c3Bpbl91bmxvY2soJnByaXYtPnBlbmRpbmdfY3J0Y3NfZXZlbnQubG9jayk7Cj4gPiAtfQo+ID4g LQo+ID4gLXN0YXRpYyB2b2lkIGNvbW1pdF9kZXN0cm95KHN0cnVjdCBtc21fY29tbWl0ICpjKQo+ ID4gLXsKPiA+IC0JZW5kX2F0b21pYyhjLT5kZXYtPmRldl9wcml2YXRlLCBjLT5jcnRjX21hc2sp Owo+ID4gLQlpZiAoYy0+bm9uYmxvY2spCj4gPiAtCQlrZnJlZShjKTsKPiA+IC19Cj4gPiAtCj4g PiAgc3RhdGljIHZvaWQgbXNtX2F0b21pY193YWl0X2Zvcl9jb21taXRfZG9uZSgKPiA+ICAJCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPiAgCQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xk X3N0YXRlKQo+ID4gQEAgLTExOCw2ICs3MywxMCBAQCBzdGF0aWMgdm9pZCBtc21fYXRvbWljX2Nv bW1pdF90YWlsKHN0cnVjdAo+ID4gZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gPiAKPiA+ICAJ bXNtX2F0b21pY193YWl0X2Zvcl9jb21taXRfZG9uZShkZXYsIHN0YXRlKTsKPiA+IAo+ID4gKwlk cm1fYXRvbWljX2hlbHBlcl9jb21taXRfaHdfZG9uZShzdGF0ZSk7Cj4gPiArCj4gPiArCWRybV9h dG9taWNfaGVscGVyX3dhaXRfZm9yX3ZibGFua3MoZGV2LCBzdGF0ZSk7Cj4gPiArCj4gPiAgCWRy bV9hdG9taWNfaGVscGVyX2NsZWFudXBfcGxhbmVzKGRldiwgc3RhdGUpOwo+ID4gCj4gPiAgCWtt cy0+ZnVuY3MtPmNvbXBsZXRlX2NvbW1pdChrbXMsIHN0YXRlKTsKPiA+IEBAIC0xMjYsMTA5ICs4 NSwyNSBAQCBzdGF0aWMgdm9pZCBtc21fYXRvbWljX2NvbW1pdF90YWlsKHN0cnVjdAo+ID4gZHJt X2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gPiAgLyogVGhlIChwb3RlbnRpYWxseSkgYXN5bmNocm9u b3VzIHBhcnQgb2YgdGhlIGNvbW1pdC4gIEF0IHRoaXMgcG9pbnQKPiA+ICAgKiBub3RoaW5nIGNh biBmYWlsIHNob3J0IG9mIGFybWFnZWRkb24uCj4gPiAgICovCj4gPiAtc3RhdGljIHZvaWQgY29t cGxldGVfY29tbWl0KHN0cnVjdCBtc21fY29tbWl0ICpjKQo+ID4gK3N0YXRpYyB2b2lkIGNvbW1p dF90YWlsKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiA+ICB7Cj4gPiAtCXN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IGMtPnN0YXRlOwo+ID4gLQlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gc3RhdGUtPmRldjsKPiA+ICsJZHJtX2F0b21pY19oZWxwZXJfd2FpdF9mb3Jf ZmVuY2VzKHN0YXRlLT5kZXYsIHN0YXRlLCBmYWxzZSk7Cj4gPiAKPiA+IC0JZHJtX2F0b21pY19o ZWxwZXJfd2FpdF9mb3JfZmVuY2VzKGRldiwgc3RhdGUsIGZhbHNlKTsKPiA+ICsJZHJtX2F0b21p Y19oZWxwZXJfd2FpdF9mb3JfZGVwZW5kZW5jaWVzKHN0YXRlKTsKPiA+IAo+ID4gIAltc21fYXRv bWljX2NvbW1pdF90YWlsKHN0YXRlKTsKPiA+IAo+ID4gLQlkcm1fYXRvbWljX3N0YXRlX3B1dChz dGF0ZSk7Cj4gPiAtfQo+ID4gLQo+ID4gLXN0YXRpYyB2b2lkIF9tc21fZHJtX2NvbW1pdF93b3Jr X2NiKHN0cnVjdCBrdGhyZWFkX3dvcmsgKndvcmspCj4gPiAtewo+ID4gLQlzdHJ1Y3QgbXNtX2Nv bW1pdCAqY29tbWl0ID0gIE5VTEw7Cj4gPiAtCj4gPiAtCWlmICghd29yaykgewo+ID4gLQkJRFJN X0VSUk9SKCIlczogSW52YWxpZCBjb21taXQgd29yayBkYXRhIVxuIiwgX19mdW5jX18pOwo+ID4g LQkJcmV0dXJuOwo+ID4gLQl9Cj4gPiAtCj4gPiAtCWNvbW1pdCA9IGNvbnRhaW5lcl9vZih3b3Jr LCBzdHJ1Y3QgbXNtX2NvbW1pdCwgY29tbWl0X3dvcmspOwo+ID4gLQo+ID4gLQljb21wbGV0ZV9j b21taXQoY29tbWl0KTsKPiA+IC0KPiA+IC0JY29tbWl0X2Rlc3Ryb3koY29tbWl0KTsKPiA+IC19 Cj4gPiAtCj4gPiAtc3RhdGljIHN0cnVjdCBtc21fY29tbWl0ICpjb21taXRfaW5pdChzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gPiAtCQlib29sIG5vbmJsb2NrKQo+ID4gLXsKPiA+ IC0Jc3RydWN0IG1zbV9jb21taXQgKmMgPSBremFsbG9jKHNpemVvZigqYyksIEdGUF9LRVJORUwp Owo+ID4gKwlkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfY2xlYW51cF9kb25lKHN0YXRlKTsKPiA+ IAo+ID4gLQlpZiAoIWMpCj4gPiAtCQlyZXR1cm4gTlVMTDsKPiA+IC0KPiA+IC0JYy0+ZGV2ID0g c3RhdGUtPmRldjsKPiA+IC0JYy0+c3RhdGUgPSBzdGF0ZTsKPiA+IC0JYy0+bm9uYmxvY2sgPSBu b25ibG9jazsKPiA+IC0KPiA+IC0Ja3RocmVhZF9pbml0X3dvcmsoJmMtPmNvbW1pdF93b3JrLCBf bXNtX2RybV9jb21taXRfd29ya19jYik7Cj4gPiAtCj4gPiAtCXJldHVybiBjOwo+ID4gKwlkcm1f YXRvbWljX3N0YXRlX3B1dChzdGF0ZSk7Cj4gPiAgfQo+ID4gCj4gPiAtLyogU3RhcnQgZGlzcGxh eSB0aHJlYWQgZnVuY3Rpb24gKi8KPiA+IC1zdGF0aWMgdm9pZCBtc21fYXRvbWljX2NvbW1pdF9k aXNwYXRjaChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gLQkJc3RydWN0IGRybV9hdG9taWNf c3RhdGUgKnN0YXRlLCBzdHJ1Y3QgbXNtX2NvbW1pdCAqY29tbWl0KQo+ID4gK3N0YXRpYyB2b2lk IGNvbW1pdF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiA+ICB7Cj4gPiAtCXN0cnVj dCBtc21fZHJtX3ByaXZhdGUgKnByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ID4gLQlzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMgPSBOVUxMOwo+ID4gLQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm5ld19j cnRjX3N0YXRlID0gTlVMTDsKPiA+IC0JaW50IHJldCA9IC1FSU5WQUwsIGkgPSAwLCBqID0gMDsK PiA+IC0JYm9vbCBub25ibG9jazsKPiA+IC0KPiA+IC0JLyogY2FjaGUgc2luY2Ugd29yayB3aWxs IGtmcmVlIGNvbW1pdCBpbiBub24tYmxvY2tpbmcgY2FzZSAqLwo+ID4gLQlub25ibG9jayA9IGNv bW1pdC0+bm9uYmxvY2s7Cj4gPiAtCj4gPiAtCWZvcl9lYWNoX25ld19jcnRjX2luX3N0YXRlKHN0 YXRlLCBjcnRjLCBuZXdfY3J0Y19zdGF0ZSwgaSkgewo+ID4gLQkJZm9yIChqID0gMDsgaiA8IHBy aXYtPm51bV9jcnRjczsgaisrKSB7Cj4gPiAtCQkJaWYgKHByaXYtPmRpc3BfdGhyZWFkW2pdLmNy dGNfaWQgPT0KPiA+IC0JCQkJCQljcnRjLT5iYXNlLmlkKSB7Cj4gPiAtCQkJCWlmIChwcml2LT5k aXNwX3RocmVhZFtqXS50aHJlYWQpIHsKPiA+IC0JCQkJCWt0aHJlYWRfcXVldWVfd29yaygKPiA+ IC0KPiA+ICZwcml2LT5kaXNwX3RocmVhZFtqXS53b3JrZXIsCj4gPiAtCj4gPiAmY29tbWl0LT5j b21taXRfd29yayk7Cj4gQXJlIHRoZXJlIGFueSBrbm93biBwcm9wb3NhbHMgZmxvYXRpbmcgYXJv dW5kIHRvIHN1cHBvcnQgQVNZTkMgY29tbWl0cyBmb3IKPiBjb25jdXJyZW50IGRpc3BsYXlzIHJl bmRlcmluZyBhdCBkaWZmZXJlbnQgRlBTPyBUaGUgYWJvdmUga3RocmVhZCBtb2RlbCBpcwo+IGlu dHJvZHVjZWQgd2hlbiB3ZSBmYWNlZCBzb21lIHBlcmZvcm1hbmNlIHJvYWQgYmxvY2tlcnMgd2hl biBhIGRpc3BsYXkgaGFzCj4gdG8gd2FpdCBmb3IgYW4gb25nb2luZyBkaXNwbGF5IGNvbW1pdCB0 byBjb21wbGV0ZS4KCkkgdGhpbmsgcGVvcGxlIGhhdmUgZGlzY3Vzc2VkIGl0LCBJJ20gbm90IHN1 cmUgaWYgdGhlcmUgYXJlIGFueSBwYXRjaGVzIGZsb2F0aW5nCmFyb3VuZC4gT24gdGhlIHN1cmZh Y2UsIGl0IHNlZW1zIGVhc3kgdG8ganVzdCBwdXNoIHRoZSBjb21taXRfd29yayBpbnRvIHRoZSBj cnRjCmNvbW1pdCBhbmQgaGF2ZSBvbmUgd29yayBpdGVtIHBlciBjcnRjLiBIb3dldmVyIEkgdGhp bmsgdGhlIHByb2JsZW0gaXMgdGhhdCB0aGVyZQpjb3VsZCBiZSByZXNvdXJjZXMgc3dpdGNoaW5n IGJldHdlZW4gY3J0Y3MgZm9yIGEgZ2l2ZW4gY29tbWl0LCBvciBmcm9tIG9uZSBjb21taXQKdG8g dGhlIG5leHQsIGFuZCBzeW5jaHJvbml6aW5nIHRoYXQgYmVjb21lcyBhIEhhcmQgUHJvYmxlbS4K ClBlcmhhcHMgSSdtIG1pc3VuZGVyc3RhbmRpbmcsIGJ1dCB0aGUgc3RhcnQvZW5kIGF0b21pYyBm dW5jdGlvbnMgc2VyaWFsaXplIHRoZQppbmNvbWluZyBjb21taXRzLCByaWdodD8gU28gdGhlIG9u bHkgYmVuZWZpdCB0aGUga3RocmVhZCBwcm92aWRlcyBpcyB0byBtaXRpZ2F0ZQphbnkgYmxvY2tp bmcgY2FsbHMgbWFkZSBvbiBvbmUgY3J0YyBmcm9tIGJsb2NraW5nIGEgc2Vjb25kIGNydGMgaW4g dGhlIHNhbWUKY29tbWl0PwoKU2VhbgoKPiA+IC0JCQkJCS8qIG9ubHkgcmV0dXJuIHplcm8gaWYg d29yayBpcwo+ID4gLQkJCQkJICogcXVldWVkIHN1Y2Nlc3NmdWxseS4KPiA+IC0JCQkJCSAqLwo+ ID4gLQkJCQkJcmV0ID0gMDsKPiA+IC0JCQkJfSBlbHNlIHsKPiA+IC0JCQkJCURSTV9FUlJPUigi IEVycm9yIGZvciBjcnRjX2lkOgo+ID4gJWRcbiIsCj4gPiAtCj4gPiBwcml2LT5kaXNwX3RocmVh ZFtqXS5jcnRjX2lkKTsKPiA+IC0JCQkJfQo+ID4gLQkJCQlicmVhazsKPiA+IC0JCQl9Cj4gPiAt CQl9Cj4gPiAtCQkvKgo+ID4gLQkJICogVE9ETzogaGFuZGxlIGNhc2VzIHdoZXJlIHRoZXJlIHdp bGwgYmUgbW9yZSB0aGFuCj4gPiAtCQkgKiBvbmUgY3J0YyBwZXIgY29tbWl0IGN5Y2xlLiBSZW1v dmUgdGhpcyBjaGVjayB0aGVuLgo+ID4gLQkJICogQ3VycmVudCBhc3N1bXB0aW9uIGlzIHRoZXJl IHdpbGwgYmUgb25seSBvbmUgY3J0Ywo+ID4gLQkJICogcGVyIGNvbW1pdCBjeWNsZS4KPiA+IC0J CSAqLwo+ID4gLQkJaWYgKGogPCBwcml2LT5udW1fY3J0Y3MpCj4gPiAtCQkJYnJlYWs7Cj4gPiAt CX0KPiA+IC0KPiA+IC0JaWYgKHJldCkgewo+ID4gLQkJLyoqCj4gPiAtCQkgKiB0aGlzIGlzIG5v dCBleHBlY3RlZCB0byBoYXBwZW4sIGJ1dCBhdCB0aGlzIHBvaW50IHRoZQo+ID4gc3RhdGUKPiA+ IC0JCSAqIGhhcyBiZWVuIHN3YXBwZWQsIGJ1dCB3ZSBjb3VsZG4ndCBkaXNwYXRjaCB0byBhIGNy dGMKPiA+IHRocmVhZC4KPiA+IC0JCSAqIGZhbGxiYWNrIG5vdyB0byBhIHN5bmNocm9ub3VzIGNv bXBsZXRlX2NvbW1pdCB0byB0cnkKPiA+IGFuZAo+ID4gLQkJICogZW5zdXJlIHRoYXQgU1cgYW5k IEhXIHN0YXRlIGRvbid0IGdldCBvdXQgb2Ygc3luYy4KPiA+IC0JCSAqLwo+ID4gLQkJRFJNX0VS Uk9SKCJmYWlsZWQgdG8gZGlzcGF0Y2ggY29tbWl0IHRvIGFueSBDUlRDXG4iKTsKPiA+IC0JCWNv bXBsZXRlX2NvbW1pdChjb21taXQpOwo+ID4gLQl9IGVsc2UgaWYgKCFub25ibG9jaykgewo+ID4g LQkJa3RocmVhZF9mbHVzaF93b3JrKCZjb21taXQtPmNvbW1pdF93b3JrKTsKPiA+IC0JfQo+ID4g LQo+ID4gLQkvKiBmcmVlIG5vbmJsb2NraW5nIGNvbW1pdHMgaW4gdGhpcyBjb250ZXh0LCBhZnRl ciBwcm9jZXNzaW5nICovCj4gPiAtCWlmICghbm9uYmxvY2spCj4gPiAtCQlrZnJlZShjb21taXQp Owo+ID4gKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjb250YWluZXJfb2Yod29y aywKPiA+ICsJCQkJCQkgICAgICBzdHJ1Y3QKPiA+IGRybV9hdG9taWNfc3RhdGUsCj4gPiArCQkJ CQkJICAgICAgY29tbWl0X3dvcmspOwo+ID4gKwljb21taXRfdGFpbChzdGF0ZSk7Cj4gPiAgfQo+ ID4gCj4gPiAgLyoqCj4gPiBAQCAtMjQ3LDE3ICsxMjIsMTIgQEAgaW50IG1zbV9hdG9taWNfY29t bWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPiAgCQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqc3RhdGUsIGJvb2wgbm9uYmxvY2spCj4gPiAgewo+ID4gIAlzdHJ1Y3QgbXNtX2RybV9wcml2 YXRlICpwcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiA+IC0Jc3RydWN0IG1zbV9jb21taXQgKmM7 Cj4gPiAgCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiA+ICAJc3RydWN0IGRybV9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlOwo+ID4gIAlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKPiA+ICAJc3RydWN0 IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3BsYW5lX3N0YXRlLCAqbmV3X3BsYW5lX3N0YXRlOwo+ID4g IAlpbnQgaSwgcmV0Owo+ID4gCj4gPiAtCXJldCA9IGRybV9hdG9taWNfaGVscGVyX3ByZXBhcmVf cGxhbmVzKGRldiwgc3RhdGUpOwo+ID4gLQlpZiAocmV0KQo+ID4gLQkJcmV0dXJuIHJldDsKPiA+ IC0KPiA+ICAJLyoKPiA+ICAJICogTm90ZSB0aGF0IHBsYW5lLT5hdG9taWNfYXN5bmNfY2hlY2so KSBzaG91bGQgZmFpbCBpZiB3ZSBuZWVkCj4gPiAgCSAqIHRvIHJlLWFzc2lnbiBod3BpcGUgb3Ig YW55dGhpbmcgdGhhdCB0b3VjaGVzIGdsb2JhbCBhdG9taWMKPiA+IEBAIC0yNjUsMzIgKzEzNSwz MCBAQCBpbnQgbXNtX2F0b21pY19jb21taXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ICAJ ICogY2FzZXMuCj4gPiAgCSAqLwo+ID4gIAlpZiAoc3RhdGUtPmFzeW5jX3VwZGF0ZSkgewo+ID4g KwkJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfcHJlcGFyZV9wbGFuZXMoZGV2LCBzdGF0ZSk7Cj4g PiArCQlpZiAocmV0KQo+ID4gKwkJCXJldHVybiByZXQ7Cj4gPiArCj4gPiAgCQlkcm1fYXRvbWlj X2hlbHBlcl9hc3luY19jb21taXQoZGV2LCBzdGF0ZSk7Cj4gPiAgCQlkcm1fYXRvbWljX2hlbHBl cl9jbGVhbnVwX3BsYW5lcyhkZXYsIHN0YXRlKTsKPiA+ICAJCXJldHVybiAwOwo+ID4gIAl9Cj4g PiAKPiA+IC0JYyA9IGNvbW1pdF9pbml0KHN0YXRlLCBub25ibG9jayk7Cj4gPiAtCWlmICghYykg ewo+ID4gLQkJcmV0ID0gLUVOT01FTTsKPiA+IC0JCWdvdG8gZXJyb3I7Cj4gPiAtCX0KPiA+ICsJ cmV0ID0gZHJtX2F0b21pY19oZWxwZXJfc2V0dXBfY29tbWl0KHN0YXRlLCBub25ibG9jayk7Cj4g PiArCWlmIChyZXQpCj4gPiArCQlyZXR1cm4gcmV0Owo+ID4gCj4gPiAtCS8qCj4gPiAtCSAqIEZp Z3VyZSBvdXQgd2hhdCBjcnRjcyB3ZSBoYXZlOgo+ID4gLQkgKi8KPiA+IC0JZm9yX2VhY2hfbmV3 X2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUsIGkpCj4gPiAtCQljLT5jcnRj X21hc2sgfD0gZHJtX2NydGNfbWFzayhjcnRjKTsKPiA+ICsJSU5JVF9XT1JLKCZzdGF0ZS0+Y29t bWl0X3dvcmssIGNvbW1pdF93b3JrKTsKPiA+IAo+ID4gLQkvKgo+ID4gLQkgKiBXYWl0IGZvciBw ZW5kaW5nIHVwZGF0ZXMgb24gYW55IG9mIHRoZSBzYW1lIGNydGMncyBhbmQgdGhlbgo+ID4gLQkg KiBtYXJrIG91ciBzZXQgb2YgY3J0YydzIGFzIGJ1c3k6Cj4gPiAtCSAqLwo+ID4gLQlyZXQgPSBz dGFydF9hdG9taWMoZGV2LT5kZXZfcHJpdmF0ZSwgYy0+Y3J0Y19tYXNrKTsKPiA+ICsJcmV0ID0g ZHJtX2F0b21pY19oZWxwZXJfcHJlcGFyZV9wbGFuZXMoZGV2LCBzdGF0ZSk7Cj4gPiAgCWlmIChy ZXQpCj4gPiAtCQlnb3RvIGVycl9mcmVlOwo+ID4gKwkJcmV0dXJuIHJldDsKPiA+IAo+ID4gLQlC VUdfT04oZHJtX2F0b21pY19oZWxwZXJfc3dhcF9zdGF0ZShzdGF0ZSwgZmFsc2UpIDwgMCk7Cj4g PiArCWlmICghbm9uYmxvY2spIHsKPiA+ICsJCXJldCA9IGRybV9hdG9taWNfaGVscGVyX3dhaXRf Zm9yX2ZlbmNlcyhkZXYsIHN0YXRlLCB0cnVlKTsKPiA+ICsJCWlmIChyZXQpCj4gPiArCQkJZ290 byBlcnJvcjsKPiA+ICsJfQo+ID4gCj4gPiAgCS8qCj4gPiAgCSAqIFRoaXMgaXMgdGhlIHBvaW50 IG9mIG5vIHJldHVybiAtIGV2ZXJ5dGhpbmcgYmVsb3cgbmV2ZXIgZmFpbHMKPiA+IGV4Y2VwdAo+ ID4gQEAgLTI5OSw2ICsxNjcsOCBAQCBpbnQgbXNtX2F0b21pY19jb21taXQoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKPiA+ICAJICoKPiA+ICAJICogc3dhcCBkcml2ZXIgcHJpdmF0ZSBzdGF0ZSB3 aGlsZSBzdGlsbCBob2xkaW5nIHN0YXRlX2xvY2sKPiA+ICAJICovCj4gPiArCUJVR19PTihkcm1f YXRvbWljX2hlbHBlcl9zd2FwX3N0YXRlKHN0YXRlLCBmYWxzZSkgPCAwKTsKPiA+ICsKPiA+ICAJ aWYgKHRvX2ttc19zdGF0ZShzdGF0ZSktPnN0YXRlKQo+ID4gIAkJcHJpdi0+a21zLT5mdW5jcy0+ c3dhcF9zdGF0ZShwcml2LT5rbXMsIHN0YXRlKTsKPiA+IAo+ID4gQEAgLTMyOSwxMiArMTk5LDEz IEBAIGludCBtc21fYXRvbWljX2NvbW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gIAkg Ki8KPiA+IAo+ID4gIAlkcm1fYXRvbWljX3N0YXRlX2dldChzdGF0ZSk7Cj4gPiAtCW1zbV9hdG9t aWNfY29tbWl0X2Rpc3BhdGNoKGRldiwgc3RhdGUsIGMpOwo+ID4gKwlpZiAobm9uYmxvY2spCj4g PiArCQlxdWV1ZV93b3JrKHN5c3RlbV91bmJvdW5kX3dxLCAmc3RhdGUtPmNvbW1pdF93b3JrKTsK PiA+ICsJZWxzZQo+ID4gKwkJY29tbWl0X3RhaWwoc3RhdGUpOwo+ID4gCj4gPiAgCXJldHVybiAw Owo+ID4gCj4gPiAtZXJyX2ZyZWU6Cj4gPiAtCWtmcmVlKGMpOwo+ID4gIGVycm9yOgo+ID4gIAlk cm1fYXRvbWljX2hlbHBlcl9jbGVhbnVwX3BsYW5lcyhkZXYsIHN0YXRlKTsKPiA+ICAJcmV0dXJu IHJldDsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYwo+ID4g Yi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYwo+ID4gaW5kZXggZWRhNGEyMzQwZjkzLi5i MzU0NDI0Y2NjYjUgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYu Ywo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmMKPiA+IEBAIC01NDksNyAr NTQ5LDYgQEAgc3RhdGljIGludCBtc21fZHJtX2luaXQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1 Y3QKPiA+IGRybV9kcml2ZXIgKmRydikKPiA+ICAJCWdvdG8gbWRzc19pbml0X2ZhaWw7Cj4gPiAK PiA+ICAJcHJpdi0+d3EgPSBhbGxvY19vcmRlcmVkX3dvcmtxdWV1ZSgibXNtX2RybSIsIDApOwo+ ID4gLQlpbml0X3dhaXRxdWV1ZV9oZWFkKCZwcml2LT5wZW5kaW5nX2NydGNzX2V2ZW50KTsKPiA+ IAo+ID4gIAlJTklUX0xJU1RfSEVBRCgmcHJpdi0+Y2xpZW50X2V2ZW50X2xpc3QpOwo+ID4gIAlJ TklUX0xJU1RfSEVBRCgmcHJpdi0+aW5hY3RpdmVfbGlzdCk7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmgKPiA+IGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21f ZHJ2LmgKPiA+IGluZGV4IGNmOTZhODVmNGI1NS4uMjkyNDk2YjY4MmU4IDEwMDY0NAo+ID4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9tc20vbXNtX2Rydi5oCj4gPiBAQCAtNTM2LDEwICs1MzYsNiBAQCBzdHJ1Y3QgbXNtX2RybV9w cml2YXRlIHsKPiA+IAo+ID4gIAlzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqd3E7Cj4gPiAKPiA+ IC0JLyogY3J0Y3MgcGVuZGluZyBhc3luYyBhdG9taWMgdXBkYXRlczogKi8KPiA+IC0JdWludDMy X3QgcGVuZGluZ19jcnRjczsKPiA+IC0Jd2FpdF9xdWV1ZV9oZWFkX3QgcGVuZGluZ19jcnRjc19l dmVudDsKPiA+IC0KPiA+ICAJdW5zaWduZWQgaW50IG51bV9wbGFuZXM7Cj4gPiAgCXN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lc1tNQVhfUExBTkVTXTsKCi0tIApTZWFuIFBhdWwsIFNvZnR3YXJlIEVu Z2luZWVyLCBHb29nbGUgLyBDaHJvbWl1bSBPUwpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9kcmktZGV2ZWwK