From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeykumar Sankaran Subject: Re: [PATCH v2 15/24] drm/msm: dpu: Stop using encoder->crtc pointer Date: Mon, 03 Dec 2018 11:43:43 -0800 Message-ID: References: <20181116184238.170034-1-sean@poorly.run> <20181116184238.170034-16-sean@poorly.run> <580ced340265a3c45b31836291bfbb4c@codeaurora.org> <20181116211417.GX154160@art_vandelay> <8676ddf837e19e27f2483d262290a345@codeaurora.org> <20181126215336.GE154160@art_vandelay> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181126215336.GE154160@art_vandelay> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Sean Paul Cc: Sean Paul , linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org T24gMjAxOC0xMS0yNiAxMzo1MywgU2VhbiBQYXVsIHdyb3RlOgo+IE9uIE1vbiwgTm92IDE5LCAy MDE4IGF0IDEyOjAzOjUzUE0gLTA4MDAsIEpleWt1bWFyIFNhbmthcmFuIHdyb3RlOgo+PiBPbiAy MDE4LTExLTE2IDEzOjE0LCBTZWFuIFBhdWwgd3JvdGU6Cj4+ID4gT24gRnJpLCBOb3YgMTYsIDIw MTggYXQgMTI6MDU6MDlQTSAtMDgwMCwgSmV5a3VtYXIgU2Fua2FyYW4gd3JvdGU6Cj4+ID4gPiBP biAyMDE4LTExLTE2IDEwOjQyLCBTZWFuIFBhdWwgd3JvdGU6Cj4+ID4gPiA+IEZyb206IFNlYW4g UGF1bCA8c2VhbnBhdWxAY2hyb21pdW0ub3JnPgo+PiA+ID4gPgo+PiA+ID4gPiBJdCdzIGZvciBs ZWdhY3kgZHJpdmVycywgZm9yIGF0b21pYyBkcml2ZXJzCj4gY3J0Yy0+c3RhdGUtPmVuY29kZXJf bWFzawo+PiA+ID4gPiBzaG91bGQgYmUgdXNlZCB0byBtYXAgZW5jb2RlciB0byBjcnRjLgo+PiA+ ID4gPgo+PiA+ID4gPiBDaGFuZ2VzIGluIHYyOgo+PiA+ID4gPiAtIE5vbmUKPj4gPiA+ID4KPj4g PiA+ID4gU2lnbmVkLW9mZi1ieTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+Cj4+ ID4gPiA+IC0tLQo+PiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2Ny dGMuYyB8IDQ2Cj4+ID4gKysrKysrKystLS0tLS0tLS0tLS0tLS0tCj4+ID4gPiA+ICBkcml2ZXJz L2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21zLmMgIHwgMTkgKysrKysrKy0tLQo+PiA+ID4g PiAgMiBmaWxlcyBjaGFuZ2VkLCAyOSBpbnNlcnRpb25zKCspLCAzNiBkZWxldGlvbnMoLSkKPj4g PiA+ID4KPj4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUx L2RwdV9jcnRjLmMKPj4gPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVf Y3J0Yy5jCj4+ID4gPiA+IGluZGV4IDE1NmY0Yzc3Y2E0NC4uYTAwOGE4N2E4MTEzIDEwMDY0NAo+ PiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jCj4+ ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMKPj4g PiA+ID4gQEAgLTI4NCw5ICsyODQsOSBAQCBlbnVtIGRwdV9pbnRmX21vZGUKPiBkcHVfY3J0Y19n ZXRfaW50Zl9tb2RlKHN0cnVjdAo+PiA+ID4gPiBkcm1fY3J0YyAqY3J0YykKPj4gPiA+ID4gIAkJ cmV0dXJuIElOVEZfTU9ERV9OT05FOwo+PiA+ID4gPiAgCX0KPj4gPiA+ID4KPj4gPiA+ID4gLQlk cm1fZm9yX2VhY2hfZW5jb2RlcihlbmNvZGVyLCBjcnRjLT5kZXYpCj4+ID4gPiA+IC0JCWlmIChl bmNvZGVyLT5jcnRjID09IGNydGMpCj4+ID4gPiA+IC0JCQlyZXR1cm4gZHB1X2VuY29kZXJfZ2V0 X2ludGZfbW9kZShlbmNvZGVyKTsKPj4gPiA+ID4gKwkvKiBUT0RPOiBSZXR1cm5zIHRoZSBmaXJz dCBJTlRGX01PREUsIGNvdWxkIHRoZXJlIGJlCj4gbXVsdGlwbGUKPj4gPiA+ID4gdmFsdWVzPyAq Lwo+PiA+ID4gPiArCWRybV9mb3JfZWFjaF9lbmNvZGVyX21hc2soZW5jb2RlciwgY3J0Yy0+ZGV2 LAo+PiA+ID4gPiBjcnRjLT5zdGF0ZS0+ZW5jb2Rlcl9tYXNrKQo+PiA+ID4gPiArCQlyZXR1cm4g ZHB1X2VuY29kZXJfZ2V0X2ludGZfbW9kZShlbmNvZGVyKTsKPj4gPiA+ID4KPj4gPiA+ID4gIAly ZXR1cm4gSU5URl9NT0RFX05PTkU7Cj4+ID4gPiA+ICB9Cj4+ID4gPiA+IEBAIC01NTEsMTMgKzU1 MSw5IEBAIHN0YXRpYyB2b2lkIGRwdV9jcnRjX2F0b21pY19iZWdpbihzdHJ1Y3QKPiBkcm1fY3J0 Ywo+PiA+ID4gPiAqY3J0YywKPj4gPiA+ID4gIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2 LT5ldmVudF9sb2NrLCBmbGFncyk7Cj4+ID4gPiA+ICAJfQo+PiA+ID4gPgo+PiA+ID4gPiAtCWxp c3RfZm9yX2VhY2hfZW50cnkoZW5jb2RlciwKPiAmZGV2LT5tb2RlX2NvbmZpZy5lbmNvZGVyX2xp c3QsIGhlYWQpCj4+ID4gPiA+IHsKPj4gPiA+ID4gLQkJaWYgKGVuY29kZXItPmNydGMgIT0gY3J0 YykKPj4gPiA+ID4gLQkJCWNvbnRpbnVlOwo+PiA+ID4gPiAtCj4+ID4gPiA+IC0JCS8qIGVuY29k ZXIgd2lsbCB0cmlnZ2VyIHBlbmRpbmcgbWFzayBub3cgKi8KPj4gPiA+ID4gKwkvKiBlbmNvZGVy IHdpbGwgdHJpZ2dlciBwZW5kaW5nIG1hc2sgbm93ICovCj4+ID4gPiA+ICsJZHJtX2Zvcl9lYWNo X2VuY29kZXJfbWFzayhlbmNvZGVyLCBjcnRjLT5kZXYsCj4+ID4gPiA+IGNydGMtPnN0YXRlLT5l bmNvZGVyX21hc2spCj4+ID4gPiA+ICAJCWRwdV9lbmNvZGVyX3RyaWdnZXJfa2lja29mZl9wZW5k aW5nKGVuY29kZXIpOwo+PiA+ID4gPiAtCX0KPj4gPiA+ID4KPj4gPiA+ID4gIAkvKgo+PiA+ID4g PiAgCSAqIElmIG5vIG1peGVycyBoYXZlIGJlZW4gYWxsb2NhdGVkIGluCj4gZHB1X2NydGNfYXRv bWljX2NoZWNrKCksCj4+ID4gPiA+IEBAIC03MDQsNyArNzAwLDYgQEAgc3RhdGljIGludAo+IF9k cHVfY3J0Y193YWl0X2Zvcl9mcmFtZV9kb25lKHN0cnVjdAo+PiA+ID4gPiBkcm1fY3J0YyAqY3J0 YykKPj4gPiA+ID4gIHZvaWQgZHB1X2NydGNfY29tbWl0X2tpY2tvZmYoc3RydWN0IGRybV9jcnRj ICpjcnRjKQo+PiA+ID4gPiAgewo+PiA+ID4gPiAgCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rl cjsKPj4gPiA+ID4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+PiA+ID4g PiAgCXN0cnVjdCBkcHVfY3J0YyAqZHB1X2NydGMgPSB0b19kcHVfY3J0YyhjcnRjKTsKPj4gPiA+ ID4gIAlzdHJ1Y3QgZHB1X2ttcyAqZHB1X2ttcyA9IF9kcHVfY3J0Y19nZXRfa21zKGNydGMpOwo+ PiA+ID4gPiAgCXN0cnVjdCBkcHVfY3J0Y19zdGF0ZSAqY3N0YXRlID0KPiB0b19kcHVfY3J0Y19z dGF0ZShjcnRjLT5zdGF0ZSk7Cj4+ID4gPiA+IEBAIC03MjAsMTYgKzcxNSwxMyBAQCB2b2lkIGRw dV9jcnRjX2NvbW1pdF9raWNrb2ZmKHN0cnVjdCBkcm1fY3J0Ywo+PiA+ID4gPiAqY3J0YykKPj4g PiA+ID4KPj4gPiA+ID4gIAlEUFVfQVRSQUNFX0JFR0lOKCJjcnRjX2NvbW1pdCIpOwo+PiA+ID4g Pgo+PiA+ID4gPiAtCWxpc3RfZm9yX2VhY2hfZW50cnkoZW5jb2RlciwKPiAmZGV2LT5tb2RlX2Nv bmZpZy5lbmNvZGVyX2xpc3QsIGhlYWQpCj4+ID4gPiA+IHsKPj4gPiA+ID4gKwkvKgo+PiA+ID4g PiArCSAqIEVuY29kZXIgd2lsbCBmbHVzaC9zdGFydCBub3csIHVubGVzcyBpdCBoYXMgYSB0eAo+ IHBlbmRpbmcuIElmCj4+ID4gPiA+IHNvLCBpdAo+PiA+ID4gPiArCSAqIG1heSBkZWxheSBhbmQg Zmx1c2ggYXQgYW4gaXJxIGV2ZW50IChlLmcuIHBwZG9uZSkKPj4gPiA+ID4gKwkgKi8KPj4gPiA+ ID4gKwlkcm1fZm9yX2VhY2hfZW5jb2Rlcl9tYXNrKGVuY29kZXIsIGNydGMtPmRldiwKPj4gPiA+ ID4gKwkJCQkgIGNydGMtPnN0YXRlLT5lbmNvZGVyX21hc2spIHsKPj4gPiA+ID4gIAkJc3RydWN0 IGRwdV9lbmNvZGVyX2tpY2tvZmZfcGFyYW1zIHBhcmFtcyA9IHsgMCB9Owo+PiA+ID4gPiAtCj4+ ID4gPiA+IC0JCWlmIChlbmNvZGVyLT5jcnRjICE9IGNydGMpCj4+ID4gPiA+IC0JCQljb250aW51 ZTsKPj4gPiA+ID4gLQo+PiA+ID4gPiAtCQkvKgo+PiA+ID4gPiAtCQkgKiBFbmNvZGVyIHdpbGwg Zmx1c2gvc3RhcnQgbm93LCB1bmxlc3MgaXQgaGFzIGEKPiB0eAo+PiA+ID4gPiBwZW5kaW5nLgo+ PiA+ID4gPiAtCQkgKiBJZiBzbywgaXQgbWF5IGRlbGF5IGFuZCBmbHVzaCBhdCBhbiBpcnEgZXZl bnQKPiAoZS5nLgo+PiA+ID4gPiBwcGRvbmUpCj4+ID4gPiA+IC0JCSAqLwo+PiA+ID4gPiAgCQlk cHVfZW5jb2Rlcl9wcmVwYXJlX2Zvcl9raWNrb2ZmKGVuY29kZXIsICZwYXJhbXMpOwo+PiA+ID4g PiAgCX0KPj4gPiA+ID4KPj4gPiA+ID4gQEAgLTc1NCwxMiArNzQ2LDggQEAgdm9pZCBkcHVfY3J0 Y19jb21taXRfa2lja29mZihzdHJ1Y3QgZHJtX2NydGMKPj4gPiAqY3J0YykKPj4gPiA+ID4KPj4g PiA+ID4gIAlkcHVfdmJpZl9jbGVhcl9lcnJvcnMoZHB1X2ttcyk7Cj4+ID4gPiA+Cj4+ID4gPiA+ IC0JbGlzdF9mb3JfZWFjaF9lbnRyeShlbmNvZGVyLAo+ICZkZXYtPm1vZGVfY29uZmlnLmVuY29k ZXJfbGlzdCwgaGVhZCkKPj4gPiA+ID4gewo+PiA+ID4gPiAtCQlpZiAoZW5jb2Rlci0+Y3J0YyAh PSBjcnRjKQo+PiA+ID4gPiAtCQkJY29udGludWU7Cj4+ID4gPiA+IC0KPj4gPiA+ID4gKwlkcm1f Zm9yX2VhY2hfZW5jb2Rlcl9tYXNrKGVuY29kZXIsIGNydGMtPmRldiwKPj4gPiA+ID4gY3J0Yy0+ c3RhdGUtPmVuY29kZXJfbWFzaykKPj4gPiA+ID4gIAkJZHB1X2VuY29kZXJfa2lja29mZihlbmNv ZGVyKTsKPj4gPiA+ID4gLQl9Cj4+ID4gPiBXZSB3b250IGJlIGhvbGRpbmcgdGhlIG1vZGVzZXQg bG9ja3MgaGVyZSAoYW5kIGluIGNydGNfYXRvbWljX2JlZ2luKQo+PiA+ID4gaW4KPj4gPiB0aGUK Pj4gPiA+IGRpc3BsYXkgdGhyZWFkLiBJcwo+PiA+ID4gaXQgc2FmZSB0byBpdGVyYXRlIG92ZXIg ZW5jb2Rlcl9tYXNrPwo+PiA+Cj4+ID4gSG1tLCBJJ20gbm90IHN1cmUgSSBmb2xsb3cuIEFGQUlD VCwgdGhlcmUgYXJlIDIgY2FsbHNpdGVzIGZvcgo+PiA+IGRwdV9jcnRjX2NvbW1pdF9raWNrb2Zm KCk6Cj4+ID4KPj4gPiAxLSBkcHVfa21zX2VuY29kZXJfZW5hYmxlKCkgd2hpY2ggaXMgY2FsbGVk IHZpYSB0aGUKPj4gPiBlbmNvZGVyLT5mdW5jcy0+ZW5hYmxlCj4+ID4gaG9vawo+PiA+IDItIGRw dV9rbXNfY29tbWl0KCkgd2hpY2ggaXMgY2FsbGVkIGluIHRoZQo+PiA+IG1vZGVfY29uZmlnLT5m dW5jcy0+YXRvbWljX2NvbW1pdF90YWlsCj4+IAo+PiBhdG9taWNfY29tbWl0X3RhaWwgd2lsbCBi ZSBjYWxsZWQgZnJvbSB0aGUgV1EuIERvIHdlIGhvbGQKPj4gdGhlIG1vZGVzZXQgbG9ja3MgaW4g dGhlIFdRPyBJIGJlbGlldmUgdXNlcnNwYWNlIHRocmVhZCB3aWxsIGRyb3AKPj4gdGhlIGxvY2tz IGF0IHRoZSBlbmQgb2YgZHJtX21vZGVfYXRvbWljX2lvY3RsLgo+IAo+IEFjY2Vzc2luZyBzdGF0 ZSBpcyBzYWZlIGluIG5vbi1ibG9ja2luZyBjb21taXRzIGR1ZSB0byBzdGFsbGluZyBhbnkKPiBz dWJzZXF1ZW50Cj4gY29tbWl0cyB1bnRpbCB0aGUgcHJldmlvdXMgb25lIGhhcyBjb21wbGV0ZWQu IENoZWNrIG91dCB0aGUgY29tbWVudCBhdDoKPiAKPiBodHRwczovL2NnaXQuZnJlZWRlc2t0b3Au b3JnL2RybS10aXAvdHJlZS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZQo+IHIuYyNu MTc1NAo+IAo+IFNlYW4KPiAKVGhhbmtzIGZvciB0aGUgbGluayBTZWFuIQoKUmV2aWV3ZWQtYnk6 IEpleWt1bWFyIFNhbmthcmFuIDxqc2Fua2FAY29kZWF1cm9yYS5vcmc+Cgo+PiAKPj4gVGhhbmtz Cj4+ID4KPj4gPiBCb3RoIG9mIHRoZXNlIGNhbGxzaXRlcyB3aWxsIGhvbGQgdGhlIG1vZGVzZXQg bG9ja3MuCj4+ID4KPj4gPiBBbSBJIG1pc3Npbmcgc29tZXRoaW5nPwo+PiA+Cj4+ID4gVGhhbmtz IGZvciB5b3VyIHJldmlldywKPj4gPgo+PiA+IFNlYW4KPj4gPgo+PiA+ID4gPgo+PiA+ID4gPiAg ZW5kOgo+PiA+ID4gPiAgCXJlaW5pdF9jb21wbGV0aW9uKCZkcHVfY3J0Yy0+ZnJhbWVfZG9uZV9j b21wKTsKPj4gPiA+ID4gQEAgLTg4MywxMSArODcxLDggQEAgc3RhdGljIHZvaWQgZHB1X2NydGNf ZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMKPj4gPiAqY3J0YykKPj4gPiA+ID4KPj4gPiA+ID4gIAlk cHVfY29yZV9wZXJmX2NydGNfdXBkYXRlKGNydGMsIDAsIHRydWUpOwo+PiA+ID4gPgo+PiA+ID4g PiAtCWRybV9mb3JfZWFjaF9lbmNvZGVyKGVuY29kZXIsIGNydGMtPmRldikgewo+PiA+ID4gPiAt CQlpZiAoZW5jb2Rlci0+Y3J0YyAhPSBjcnRjKQo+PiA+ID4gPiAtCQkJY29udGludWU7Cj4+ID4g PiA+ICsJZHJtX2Zvcl9lYWNoX2VuY29kZXJfbWFzayhlbmNvZGVyLCBjcnRjLT5kZXYsCj4+ID4g PiA+IGNydGMtPnN0YXRlLT5lbmNvZGVyX21hc2spCj4+ID4gPiA+ICAJCWRwdV9lbmNvZGVyX3Jl Z2lzdGVyX2ZyYW1lX2V2ZW50X2NhbGxiYWNrKGVuY29kZXIsCj4gTlVMTCwKPj4gPiA+ID4gTlVM TCk7Cj4+ID4gPiA+IC0JfQo+PiA+ID4gPgo+PiA+ID4gPiAgCW1lbXNldChjc3RhdGUtPm1peGVy cywgMCwgc2l6ZW9mKGNzdGF0ZS0+bWl4ZXJzKSk7Cj4+ID4gPiA+ICAJY3N0YXRlLT5udW1fbWl4 ZXJzID0gMDsKPj4gPiA+ID4gQEAgLTkyMiwxMiArOTA3LDkgQEAgc3RhdGljIHZvaWQgZHB1X2Ny dGNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0Ywo+PiA+ICpjcnRjLAo+PiA+ID4gPiAgCURSTV9ERUJV R19LTVMoImNydGMlZFxuIiwgY3J0Yy0+YmFzZS5pZCk7Cj4+ID4gPiA+ICAJZHB1X2NydGMgPSB0 b19kcHVfY3J0YyhjcnRjKTsKPj4gPiA+ID4KPj4gPiA+ID4gLQlkcm1fZm9yX2VhY2hfZW5jb2Rl cihlbmNvZGVyLCBjcnRjLT5kZXYpIHsKPj4gPiA+ID4gLQkJaWYgKGVuY29kZXItPmNydGMgIT0g Y3J0YykKPj4gPiA+ID4gLQkJCWNvbnRpbnVlOwo+PiA+ID4gPiArCWRybV9mb3JfZWFjaF9lbmNv ZGVyX21hc2soZW5jb2RlciwgY3J0Yy0+ZGV2LAo+PiA+ID4gPiBjcnRjLT5zdGF0ZS0+ZW5jb2Rl cl9tYXNrKQo+PiA+ID4gPiAgCQlkcHVfZW5jb2Rlcl9yZWdpc3Rlcl9mcmFtZV9ldmVudF9jYWxs YmFjayhlbmNvZGVyLAo+PiA+ID4gPiAgCQkJCWRwdV9jcnRjX2ZyYW1lX2V2ZW50X2NiLCAodm9p ZAo+ICopY3J0Yyk7Cj4+ID4gPiA+IC0JfQo+PiA+ID4gPgo+PiA+ID4gPiAgCW11dGV4X2xvY2so JmRwdV9jcnRjLT5jcnRjX2xvY2spOwo+PiA+ID4gPiAgCXRyYWNlX2RwdV9jcnRjX2VuYWJsZShE Uk1JRChjcnRjKSwgdHJ1ZSwgZHB1X2NydGMpOwo+PiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2ttcy5jCj4+ID4gPiA+IGIvZHJpdmVycy9ncHUv ZHJtL21zbS9kaXNwL2RwdTEvZHB1X2ttcy5jCj4+ID4gPiA+IGluZGV4IDFiZWM0NTQwZjNlMS4u NjQxMzRkNjE5NzQ4IDEwMDY0NAo+PiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rp c3AvZHB1MS9kcHVfa21zLmMKPj4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNw L2RwdTEvZHB1X2ttcy5jCj4+ID4gPiA+IEBAIC0zMjAsNyArMzIwLDEwIEBAIHN0YXRpYyB2b2lk IGRwdV9rbXNfcHJlcGFyZV9jb21taXQoc3RydWN0Cj4gbXNtX2ttcwo+PiA+ID4gPiAqa21zLAo+ PiA+ID4gPiAgCXN0cnVjdCBkcHVfa21zICpkcHVfa21zOwo+PiA+ID4gPiAgCXN0cnVjdCBtc21f ZHJtX3ByaXZhdGUgKnByaXY7Cj4+ID4gPiA+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldjsKPj4g PiA+ID4gKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4+ID4gPiA+ICsJc3RydWN0IGRybV9jcnRj X3N0YXRlICpjcnRjX3N0YXRlOwo+PiA+ID4gPiAgCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rl cjsKPj4gPiA+ID4gKwlpbnQgaTsKPj4gPiA+ID4KPj4gPiA+ID4gIAlpZiAoIWttcykKPj4gPiA+ ID4gIAkJcmV0dXJuOwo+PiA+ID4gPiBAQCAtMzMyLDkgKzMzNSwxMyBAQCBzdGF0aWMgdm9pZCBk cHVfa21zX3ByZXBhcmVfY29tbWl0KHN0cnVjdAo+IG1zbV9rbXMKPj4gPiA+ID4gKmttcywKPj4g PiA+ID4gIAlwcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPj4gPiA+ID4gIAlwbV9ydW50aW1lX2dl dF9zeW5jKCZkcHVfa21zLT5wZGV2LT5kZXYpOwo+PiA+ID4gPgo+PiA+ID4gPiAtCWxpc3RfZm9y X2VhY2hfZW50cnkoZW5jb2RlciwKPiAmZGV2LT5tb2RlX2NvbmZpZy5lbmNvZGVyX2xpc3QsIGhl YWQpCj4+ID4gPiA+IC0JCWlmIChlbmNvZGVyLT5jcnRjICE9IE5VTEwpCj4+ID4gPiA+ICsJLyog Q2FsbCBwcmVwYXJlX2NvbW1pdCBmb3IgYWxsIGFmZmVjdGVkIGVuY29kZXJzICovCj4+ID4gPiA+ ICsJZm9yX2VhY2hfbmV3X2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUsIGkp IHsKPj4gPiA+ID4gKwkJZHJtX2Zvcl9lYWNoX2VuY29kZXJfbWFzayhlbmNvZGVyLCBjcnRjLT5k ZXYsCj4+ID4gPiA+ICsKPiBjcnRjX3N0YXRlLT5lbmNvZGVyX21hc2spIHsKPj4gPiA+ID4gIAkJ CWRwdV9lbmNvZGVyX3ByZXBhcmVfY29tbWl0KGVuY29kZXIpOwo+PiA+ID4gPiArCQl9Cj4+ID4g PiA+ICsJfQo+PiA+ID4gPiAgfQo+PiA+ID4gPgo+PiA+ID4gPiAgLyoKPj4gPiA+ID4gQEAgLTM0 NCwxMyArMzUxLDE3IEBAIHN0YXRpYyB2b2lkIGRwdV9rbXNfcHJlcGFyZV9jb21taXQoc3RydWN0 Cj4+ID4gbXNtX2ttcwo+PiA+ID4gPiAqa21zLAo+PiA+ID4gPiAgdm9pZCBkcHVfa21zX2VuY29k ZXJfZW5hYmxlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKPj4gPiA+ID4gIHsKPj4gPiA+ ID4gIAljb25zdCBzdHJ1Y3QgZHJtX2VuY29kZXJfaGVscGVyX2Z1bmNzICpmdW5jcyA9Cj4+ID4g PiA+IGVuY29kZXItPmhlbHBlcl9wcml2YXRlOwo+PiA+ID4gPiAtCXN0cnVjdCBkcm1fY3J0YyAq Y3J0YyA9IGVuY29kZXItPmNydGM7Cj4+ID4gPiA+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGVuY29kZXItPmRldjsKPj4gPiA+ID4gKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4+ID4gPiA+ Cj4+ID4gPiA+ICAJLyogRm9yd2FyZCB0aGlzIGVuYWJsZSBjYWxsIHRvIHRoZSBjb21taXQgaG9v ayAqLwo+PiA+ID4gPiAgCWlmIChmdW5jcyAmJiBmdW5jcy0+Y29tbWl0KQo+PiA+ID4gPiAgCQlm dW5jcy0+Y29tbWl0KGVuY29kZXIpOwo+PiA+ID4gPgo+PiA+ID4gPiAtCWlmIChjcnRjICYmIGNy dGMtPnN0YXRlLT5hY3RpdmUpIHsKPj4gPiA+ID4gKwlkcm1fZm9yX2VhY2hfY3J0YyhjcnRjLCBk ZXYpIHsKPj4gPiA+ID4gKwkJaWYgKCEoY3J0Yy0+c3RhdGUtPmVuY29kZXJfbWFzayAmCj4+ID4g PiA+IGRybV9lbmNvZGVyX21hc2soZW5jb2RlcikpKQo+PiA+ID4gPiArCQkJY29udGludWU7Cj4+ ID4gPiA+ICsKPj4gPiA+ID4gIAkJdHJhY2VfZHB1X2ttc19lbmNfZW5hYmxlKERSTUlEKGNydGMp KTsKPj4gPiA+ID4gIAkJZHB1X2NydGNfY29tbWl0X2tpY2tvZmYoY3J0Yyk7Cj4+ID4gPiA+ICAJ fQo+PiA+ID4KPj4gPiA+IC0tCj4+ID4gPiBKZXlrdW1hciBTCj4+IAo+PiAtLQo+PiBKZXlrdW1h ciBTCgotLSAKSmV5a3VtYXIgUwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpGcmVlZHJlbm8gbWFpbGluZyBsaXN0CkZyZWVkcmVub0BsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9m cmVlZHJlbm8K