From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeykumar Sankaran Subject: Re: [DPU PATCH 02/11] drm/msm: Don't duplicate modeset_enables atomic helper Date: Thu, 08 Mar 2018 16:56:01 -0800 Message-ID: References: <20180228191906.185417-1-seanpaul@chromium.org> <20180228191906.185417-3-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-3-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 T24gMjAxOC0wMi0yOCAxMToxOCwgU2VhbiBQYXVsIHdyb3RlOgo+IEluc3RlYWQsIHNodWZmbGUg dGhpbmdzIGFyb3VuZCBzbyB3ZSBraWNrb2ZmIGNydGMgYWZ0ZXIgZW5hYmxpbmcgCj4gZW5jb2Rl cgo+IGR1cmluZyBtb2Rlc2V0cy4gQWxzbyBtb3ZlcyB0aGUgdmJsYW5rIHdhaXQgdG8gYWZ0ZXIg dGhlIGZyYW1lLgo+IAo+IENoYW5nZS1JZDogSTE2YzdiN2Y5MzkwZDA0ZjYwNTBhYTIwZTE3YTUz MzVmYmY0OWViYTMKPiBTaWduZWQtb2ZmLWJ5OiBTZWFuIFBhdWwgPHNlYW5wYXVsQGNocm9taXVt Lm9yZz4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYyAg ICB8ICAgOSArKwo+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5j IHwgICA1ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMuYyAgICAg fCAgMzEgKysrKy0KPiAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2ttcy5oICAg ICB8ICAgMiArCj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2F0b21pYy5jICAgICAgICAgICAg fCAxMzIgKy0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgNSBmaWxlcyBjaGFuZ2VkLCA0OCBpbnNlcnRp b25zKCspLCAxMzEgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9k cHUxL2RwdV9jcnRjLmMKPiBpbmRleCBhM2FiNmVkMmJmMWQuLjk0ZmFiMmRjY2E1YiAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYwo+IEBAIC0zNTI1LDYgKzM1 MjUsMTIgQEAgc3RhdGljIHZvaWQgZHB1X2NydGNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAKPiAq Y3J0YywKPiAgCURQVV9FVlQzMl9WRVJCT1NFKERSTUlEKGNydGMpKTsKPiAgCWRwdV9jcnRjID0g dG9fZHB1X2NydGMoY3J0Yyk7Cj4gCj4gKwlpZiAobXNtX2lzX21vZGVfc2VhbWxlc3MoJmNydGMt PnN0YXRlLT5hZGp1c3RlZF9tb2RlKSB8fAo+ICsJICAgIG1zbV9pc19tb2RlX3NlYW1sZXNzX3Zy cigmY3J0Yy0+c3RhdGUtPmFkanVzdGVkX21vZGUpKSB7Cj4gKwkJRFBVX0RFQlVHKCJTa2lwcGlu ZyBjcnRjIGVuYWJsZSwgc2VhbWxlc3MgbW9kZVxuIik7Cj4gKwkJcmV0dXJuOwo+ICsJfQo+ICsK PiAgCXBtX3J1bnRpbWVfZ2V0X3N5bmMoY3J0Yy0+ZGV2LT5kZXYpOwo+IAo+ICAJZHJtX2Zvcl9l YWNoX2VuY29kZXIoZW5jb2RlciwgY3J0Yy0+ZGV2KSB7Cj4gQEAgLTM1NzIsNiArMzU3OCw5IEBA IHN0YXRpYyB2b2lkIGRwdV9jcnRjX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgCj4gKmNydGMsCj4g IAkJRFBVX1BPV0VSX0VWRU5UX1BPU1RfRU5BQkxFIHwgRFBVX1BPV0VSX0VWRU5UX1BPU1RfRElT QUJMRQo+IHwKPiAgCQlEUFVfUE9XRVJfRVZFTlRfUFJFX0RJU0FCTEUsCj4gIAkJZHB1X2NydGNf aGFuZGxlX3Bvd2VyX2V2ZW50LCBjcnRjLCBkcHVfY3J0Yy0+bmFtZSk7Cj4gKwo+ICsJaWYgKG1z bV9uZWVkc192YmxhbmtfcHJlX21vZGVzZXQoJmNydGMtPnN0YXRlLT5hZGp1c3RlZF9tb2RlKSkK PiArCQlkcm1fY3J0Y193YWl0X29uZV92YmxhbmsoY3J0Yyk7Cj4gIH0KPiAKPiAgc3RydWN0IHBs YW5lX3N0YXRlIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X2VuY29kZXIuYwo+IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29k ZXIuYwo+IGluZGV4IDI4Y2ViNTg5ZWU0MC4uNGQxZTM2NTJkYmY0IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jCj4gQEAgLTM2OTMsOCArMzY5Mywx MSBAQCBzdGF0aWMgdm9pZCAKPiBkcHVfZW5jb2Rlcl9mcmFtZV9kb25lX3RpbWVvdXQoc3RydWN0 Cj4gdGltZXJfbGlzdCAqdCkKPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZW5jb2Rlcl9oZWxw ZXJfZnVuY3MgZHB1X2VuY29kZXJfaGVscGVyX2Z1bmNzIAo+ID0gewo+ICAJLm1vZGVfc2V0ID0g ZHB1X2VuY29kZXJfdmlydF9tb2RlX3NldCwKPiAgCS5kaXNhYmxlID0gZHB1X2VuY29kZXJfdmly dF9kaXNhYmxlLAo+IC0JLmVuYWJsZSA9IGRwdV9lbmNvZGVyX3ZpcnRfZW5hYmxlLAo+ICsJLmVu YWJsZSA9IGRwdV9rbXNfZW5jb2Rlcl9lbmFibGUsCj4gIAkuYXRvbWljX2NoZWNrID0gZHB1X2Vu Y29kZXJfdmlydF9hdG9taWNfY2hlY2ssCj4gKwo+ICsJLyogVGhpcyBpcyBjYWxsZWQgYnkgZHB1 X2ttc19lbmNvZGVyX2VuYWJsZSAqLwo+ICsJLmNvbW1pdCA9IGRwdV9lbmNvZGVyX3ZpcnRfZW5h YmxlLAo+ICB9Owo+IAo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9lbmNvZGVyX2Z1bmNzIGRw dV9lbmNvZGVyX2Z1bmNzID0gewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rp c3AvZHB1MS9kcHVfa21zLmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9r bXMuYwo+IGluZGV4IDgxZmQzYTQyOWU5Zi4uM2Q4MzAzN2U4MzA1IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMuYwo+IEBAIC00MjUsMTQgKzQyNSwzNyBAQCBzdGF0 aWMgdm9pZCBkcHVfa21zX3ByZXBhcmVfY29tbWl0KHN0cnVjdCBtc21fa21zCj4gKmttcywKPiAg CQkJZHB1X2VuY29kZXJfcHJlcGFyZV9jb21taXQoZW5jb2Rlcik7Cj4gIH0KPiAKPiAtc3RhdGlj IHZvaWQgZHB1X2ttc19jb21taXQoc3RydWN0IG1zbV9rbXMgKmttcywKPiAtCQlzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQo+ICsvKgo+ICsgKiBPdmVycmlkZSB0aGUgZW5jb2Rl ciBlbmFibGUgc2luY2Ugd2UgbmVlZCB0byBzZXR1cCB0aGUgaW5saW5lIAo+IHJvdGF0b3IKPiBh bmQgZG8KPiArICogc29tZSBjcnRjIG1hZ2ljIGJlZm9yZSBlbmFibGluZyBhbnkgYnJpZGdlIHRo YXQgbWlnaHQgYmUgcHJlc2VudC4KPiArICovCj4gK3ZvaWQgZHB1X2ttc19lbmNvZGVyX2VuYWJs ZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4gK3sKPiArCWNvbnN0IHN0cnVjdCBkcm1f ZW5jb2Rlcl9oZWxwZXJfZnVuY3MgKmZ1bmNzID0KPiBlbmNvZGVyLT5oZWxwZXJfcHJpdmF0ZTsK PiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGVuY29kZXItPmNydGM7Cj4gKwo+ICsJLyogRm9y d2FyZCB0aGlzIGVuYWJsZSBjYWxsIHRvIHRoZSBjb21taXQgaG9vayAqLwo+ICsJaWYgKGZ1bmNz ICYmIGZ1bmNzLT5jb21taXQpCj4gKwkJZnVuY3MtPmNvbW1pdChlbmNvZGVyKTsKClRoZSBwdXJw b3NlIG9mIHRoaXMgZnVuY3Rpb24gaXMgbm90IGNsZWFyLiBXaGVyZSBhcmUgd2Ugc2V0dGluZyB1 cCB0aGUgCmlubGluZSByb3RhdG9yPwpXaHkgZG8gd2UgbmVlZCBhIGtpY2tvZmYgaGVyZT8KPiAr Cj4gKwlpZiAoY3J0YyAmJiBjcnRjLT5zdGF0ZS0+YWN0aXZlKSB7Cj4gKwkJRFBVX0VWVDMyKERS TUlEKGNydGMpKTsKPiArCQlkcHVfY3J0Y19jb21taXRfa2lja29mZihjcnRjKTsKPiArCX0KPiAr fQo+ICsKPiArc3RhdGljIHZvaWQgZHB1X2ttc19jb21taXQoc3RydWN0IG1zbV9rbXMgKmttcywg c3RydWN0IAo+IGRybV9hdG9taWNfc3RhdGUKPiAqc3RhdGUpCj4gIHsKPiAgCXN0cnVjdCBkcm1f Y3J0YyAqY3J0YzsKPiAtCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGU7Cj4g KwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4gKwlzdHJ1Y3QgZHB1X2NydGNf c3RhdGUgKmNzdGF0ZTsKPiAgCWludCBpOwo+IAo+IC0JZm9yX2VhY2hfb2xkX2NydGNfaW5fc3Rh dGUob2xkX3N0YXRlLCBjcnRjLCBvbGRfY3J0Y19zdGF0ZSwgaSkgewo+ICsJZm9yX2VhY2hfbmV3 X2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUsIGkpIHsKPiArCQkvKiBJZiBt b2Rlc2V0IGlzIHJlcXVpcmVkLCBraWNrb2ZmIGlzIHJ1biBpbgo+IGVuY29kZXJfZW5hYmxlICov Cj4gKwkJaWYgKGRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KGNydGNfc3RhdGUpKQo+ICsJ CQljb250aW51ZTsKPiArCj4gIAkJaWYgKGNydGMtPnN0YXRlLT5hY3RpdmUpIHsKPiAgCQkJRFBV X0VWVDMyKERSTUlEKGNydGMpKTsKPiAgCQkJZHB1X2NydGNfY29tbWl0X2tpY2tvZmYoY3J0Yyk7 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMuaAo+ IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2ttcy5oCj4gaW5kZXggOGNhZGQy OWE0OGIxLi40MmM4MDllZDk0NjcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9k aXNwL2RwdTEvZHB1X2ttcy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X2ttcy5oCj4gQEAgLTUyOSw0ICs1MjksNiBAQCBpbnQgZHB1X2ttc19mYm9fcmVmZXJlbmNl KHN0cnVjdCBkcHVfa21zX2ZibyAqZmJvKTsKPiAgICovCj4gIHZvaWQgZHB1X2ttc19mYm9fdW5y ZWZlcmVuY2Uoc3RydWN0IGRwdV9rbXNfZmJvICpmYm8pOwo+IAo+ICt2b2lkIGRwdV9rbXNfZW5j b2Rlcl9lbmFibGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKTsKPiArCj4gICNlbmRpZiAv KiBfX2RwdV9rbXNfSF9fICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNt X2F0b21pYy5jCj4gYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9hdG9taWMuYwo+IGluZGV4IDVj ZmI4MDM0NTA1Mi4uZjU3OTRkY2UyNWRkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9t c20vbXNtX2F0b21pYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fYXRvbWljLmMK PiBAQCAtODQsMTMxICs4NCw2IEBAIHN0YXRpYyB2b2lkIG1zbV9hdG9taWNfd2FpdF9mb3JfY29t bWl0X2RvbmUoCj4gIAl9Cj4gIH0KPiAKPiAtLyoqCj4gLSAqIG1zbV9hdG9taWNfaGVscGVyX2Nv bW1pdF9tb2Rlc2V0X2VuYWJsZXMgLSBtb2Rlc2V0IGNvbW1pdCB0byBlbmFibGUKPiBvdXRwdXRz Cj4gLSAqIEBkZXY6IERSTSBkZXZpY2UKPiAtICogQG9sZF9zdGF0ZTogYXRvbWljIHN0YXRlIG9i amVjdCB3aXRoIG9sZCBzdGF0ZSBzdHJ1Y3R1cmVzCj4gLSAqCj4gLSAqIFRoaXMgZnVuY3Rpb24g ZW5hYmxlcyBhbGwgdGhlIG91dHB1dHMgd2l0aCB0aGUgbmV3IGNvbmZpZ3VyYXRpb24gCj4gd2hp Y2gKPiBoYWQgdG8KPiAtICogYmUgdHVybmVkIG9mZiBmb3IgdGhlIHVwZGF0ZS4KPiAtICoKPiAt ICogRm9yIGNvbXBhdGliaWxpdHkgd2l0aCBsZWdhY3kgY3J0YyBoZWxwZXJzIHRoaXMgc2hvdWxk IGJlIGNhbGxlZCAKPiBhZnRlcgo+IC0gKiBkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfcGxhbmVz KCksIHdoaWNoIGlzIHdoYXQgdGhlIGRlZmF1bHQgY29tbWl0Cj4gZnVuY3Rpb24KPiAtICogZG9l cy4gQnV0IGRyaXZlcnMgd2l0aCBkaWZmZXJlbnQgbmVlZHMgY2FuIGdyb3VwIHRoZSBtb2Rlc2V0 IAo+IGNvbW1pdHMKPiB0b2dldGhlcgo+IC0gKiBhbmQgZG8gdGhlIHBsYW5lIGNvbW1pdHMgYXQg dGhlIGVuZC4gVGhpcyBpcyB1c2VmdWwgZm9yIGRyaXZlcnMgCj4gZG9pbmcKPiBydW50aW1lCj4g LSAqIFBNIHNpbmNlIHBsYW5lcyB1cGRhdGVzIHRoZW4gb25seSBoYXBwZW4gd2hlbiB0aGUgQ1JU QyBpcyBhY3R1YWxseQo+IGVuYWJsZWQuCj4gLSAqLwo+IC1zdGF0aWMgdm9pZCBtc21fYXRvbWlj X2hlbHBlcl9jb21taXRfbW9kZXNldF9lbmFibGVzKHN0cnVjdCBkcm1fZGV2aWNlCj4gKmRldiwK PiAtCQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQo+IC17Cj4gLQlzdHJ1Y3Qg ZHJtX2NydGMgKmNydGM7Cj4gLQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRl Owo+IC0Jc3RydWN0IGRybV9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZTsKPiAtCXN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZWN0b3I7Cj4gLQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAq bmV3X2Nvbm5fc3RhdGU7Cj4gLQlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKPiAtCXN0cnVjdCBtc21fa21zICprbXMgPSBwcml2LT5rbXM7Cj4gLQlpbnQg YnJpZGdlX2VuYWJsZV9jb3VudCA9IDA7Cj4gLQlpbnQgaTsKPiAtCj4gLQlmb3JfZWFjaF9vbGRu ZXdfY3J0Y19pbl9zdGF0ZShvbGRfc3RhdGUsIGNydGMsIG9sZF9jcnRjX3N0YXRlLAo+IC0JCQlu ZXdfY3J0Y19zdGF0ZSwgaSkgewo+IC0JCWNvbnN0IHN0cnVjdCBkcm1fY3J0Y19oZWxwZXJfZnVu Y3MgKmZ1bmNzOwo+IC0KPiAtCQkvKiBOZWVkIHRvIGZpbHRlciBvdXQgQ1JUQ3Mgd2hlcmUgb25s eSBwbGFuZXMgY2hhbmdlLiAqLwo+IC0JCWlmICghZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVz ZXQobmV3X2NydGNfc3RhdGUpKQo+IC0JCQljb250aW51ZTsKPiAtCj4gLQkJaWYgKCFuZXdfY3J0 Y19zdGF0ZS0+YWN0aXZlKQo+IC0JCQljb250aW51ZTsKPiAtCj4gLQkJaWYgKG1zbV9pc19tb2Rl X3NlYW1sZXNzKCZuZXdfY3J0Y19zdGF0ZS0+bW9kZSkgfHwKPiAtCQkJCW1zbV9pc19tb2RlX3Nl YW1sZXNzX3ZycigKPiAtCQkJCSZuZXdfY3J0Y19zdGF0ZS0+YWRqdXN0ZWRfbW9kZSkpCj4gLQkJ CWNvbnRpbnVlOwo+IC0KPiAtCQlmdW5jcyA9IGNydGMtPmhlbHBlcl9wcml2YXRlOwo+IC0KPiAt CQlpZiAoY3J0Yy0+c3RhdGUtPmVuYWJsZSkgewo+IC0JCQlEUk1fREVCVUdfQVRPTUlDKCJlbmFi bGluZyBbQ1JUQzolZF1cbiIsCj4gLQkJCQkJIGNydGMtPmJhc2UuaWQpOwo+IC0KPiAtCQkJaWYg KGZ1bmNzLT5hdG9taWNfZW5hYmxlKQo+IC0JCQkJZnVuY3MtPmF0b21pY19lbmFibGUoY3J0YywK PiBvbGRfY3J0Y19zdGF0ZSk7Cj4gLQkJCWVsc2UKPiAtCQkJCWZ1bmNzLT5jb21taXQoY3J0Yyk7 Cj4gLQkJfQo+IC0KPiAtCQlpZiAobXNtX25lZWRzX3ZibGFua19wcmVfbW9kZXNldCgKPiAtCQkJ CQkmbmV3X2NydGNfc3RhdGUtPmFkanVzdGVkX21vZGUpKQo+IC0JCQlkcm1fY3J0Y193YWl0X29u ZV92YmxhbmsoY3J0Yyk7Cj4gLQl9Cj4gLQo+IC0JLyogZW5zdXJlIGJyaWRnZS9lbmNvZGVyIHVw ZGF0ZXMgaGFwcGVuIG9uIHNhbWUgdmJsYW5rICovCj4gLQltc21fYXRvbWljX3dhaXRfZm9yX2Nv bW1pdF9kb25lKGRldiwgb2xkX3N0YXRlKTsKPiAtCj4gLQlmb3JfZWFjaF9uZXdfY29ubmVjdG9y X2luX3N0YXRlKG9sZF9zdGF0ZSwgY29ubmVjdG9yLAo+IC0JCQluZXdfY29ubl9zdGF0ZSwgaSkg ewo+IC0JCWNvbnN0IHN0cnVjdCBkcm1fZW5jb2Rlcl9oZWxwZXJfZnVuY3MgKmZ1bmNzOwo+IC0J CXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcjsKPiAtCj4gLQkJaWYgKCFuZXdfY29ubl9zdGF0 ZS0+YmVzdF9lbmNvZGVyKQo+IC0JCQljb250aW51ZTsKPiAtCj4gLQkJaWYgKCFuZXdfY29ubl9z dGF0ZS0+Y3J0Yy0+c3RhdGUtPmFjdGl2ZSB8fAo+IC0JCSAgICAhZHJtX2F0b21pY19jcnRjX25l ZWRzX21vZGVzZXQoCj4gLQkJCSAgICBuZXdfY29ubl9zdGF0ZS0+Y3J0Yy0+c3RhdGUpKQo+IC0J CQljb250aW51ZTsKPiAtCj4gLQkJZW5jb2RlciA9IG5ld19jb25uX3N0YXRlLT5iZXN0X2VuY29k ZXI7Cj4gLQkJZnVuY3MgPSBlbmNvZGVyLT5oZWxwZXJfcHJpdmF0ZTsKPiAtCj4gLQkJRFJNX0RF QlVHX0FUT01JQygiZW5hYmxpbmcgW0VOQ09ERVI6JWQ6JXNdXG4iLAo+IC0JCQkJIGVuY29kZXIt PmJhc2UuaWQsIGVuY29kZXItPm5hbWUpOwo+IC0KPiAtCQkvKgo+IC0JCSAqIEVhY2ggZW5jb2Rl ciBoYXMgYXQgbW9zdCBvbmUgY29ubmVjdG9yIChzaW5jZSB3ZSBhbHdheXMKPiBzdGVhbAo+IC0J CSAqIGl0IGF3YXkpLCBzbyB3ZSB3b24ndCBjYWxsIGVuYWJsZSBob29rcyB0d2ljZS4KPiAtCQkg Ki8KPiAtCQlkcm1fYnJpZGdlX3ByZV9lbmFibGUoZW5jb2Rlci0+YnJpZGdlKTsKPiAtCQkrK2Jy aWRnZV9lbmFibGVfY291bnQ7Cj4gLQo+IC0JCWlmIChmdW5jcy0+ZW5hYmxlKQo+IC0JCQlmdW5j cy0+ZW5hYmxlKGVuY29kZXIpOwo+IC0JCWVsc2UKPiAtCQkJZnVuY3MtPmNvbW1pdChlbmNvZGVy KTsKPiAtCX0KPiAtCj4gLQlpZiAoa21zLT5mdW5jcy0+Y29tbWl0KSB7Cj4gLQkJRFJNX0RFQlVH X0FUT01JQygidHJpZ2dlcmluZyBjb21taXRcbiIpOwo+IC0JCWttcy0+ZnVuY3MtPmNvbW1pdChr bXMsIG9sZF9zdGF0ZSk7Cj4gLQl9Cj4gLQo+IC0JLyogSWYgbm8gYnJpZGdlcyB3ZXJlIHByZV9l bmFibGVkLCBza2lwIGl0ZXJhdGluZyBvdmVyIHRoZW0gYWdhaW4KPiAqLwo+IC0JaWYgKGJyaWRn ZV9lbmFibGVfY291bnQgPT0gMCkKPiAtCQlyZXR1cm47Cj4gLQo+IC0JZm9yX2VhY2hfbmV3X2Nv bm5lY3Rvcl9pbl9zdGF0ZShvbGRfc3RhdGUsIGNvbm5lY3RvciwKPiAtCQkJbmV3X2Nvbm5fc3Rh dGUsIGkpIHsKPiAtCQlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXI7Cj4gLQo+IC0JCWlmICgh bmV3X2Nvbm5fc3RhdGUtPmJlc3RfZW5jb2RlcikKPiAtCQkJY29udGludWU7Cj4gLQo+IC0JCWlm ICghbmV3X2Nvbm5fc3RhdGUtPmNydGMtPnN0YXRlLT5hY3RpdmUgfHwKPiAtCQkgICAgIWRybV9h dG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KAo+IC0JCQkJICAgIG5ld19jb25uX3N0YXRlLT5jcnRj LT5zdGF0ZSkpCj4gLQkJCWNvbnRpbnVlOwo+IC0KPiAtCQllbmNvZGVyID0gbmV3X2Nvbm5fc3Rh dGUtPmJlc3RfZW5jb2RlcjsKPiAtCj4gLQkJRFJNX0RFQlVHX0FUT01JQygiYnJpZGdlIGVuYWJs ZSBlbmFibGluZwo+IFtFTkNPREVSOiVkOiVzXVxuIiwKPiAtCQkJCSBlbmNvZGVyLT5iYXNlLmlk LCBlbmNvZGVyLT5uYW1lKTsKPiAtCj4gLQkJZHJtX2JyaWRnZV9lbmFibGUoZW5jb2Rlci0+YnJp ZGdlKTsKPiAtCX0KPiAtfQo+IC0KPiAgLyogVGhlIChwb3RlbnRpYWxseSkgYXN5bmNocm9ub3Vz IHBhcnQgb2YgdGhlIGNvbW1pdC4gIEF0IHRoaXMgcG9pbnQKPiAgICogbm90aGluZyBjYW4gZmFp bCBzaG9ydCBvZiBhcm1hZ2VkZG9uLgo+ICAgKi8KPiBAQCAtMjI3LDcgKzEwMiwxMiBAQCBzdGF0 aWMgdm9pZCBjb21wbGV0ZV9jb21taXQoc3RydWN0IG1zbV9jb21taXQgKmMpCj4gCj4gIAlkcm1f YXRvbWljX2hlbHBlcl9jb21taXRfcGxhbmVzKGRldiwgc3RhdGUsIDApOwo+IAo+IC0JbXNtX2F0 b21pY19oZWxwZXJfY29tbWl0X21vZGVzZXRfZW5hYmxlcyhkZXYsIHN0YXRlKTsKPiArCWRybV9h dG9taWNfaGVscGVyX2NvbW1pdF9tb2Rlc2V0X2VuYWJsZXMoZGV2LCBzdGF0ZSk7Cj4gKwo+ICsJ aWYgKGttcy0+ZnVuY3MtPmNvbW1pdCkgewo+ICsJCURSTV9ERUJVR19BVE9NSUMoInRyaWdnZXJp bmcgY29tbWl0XG4iKTsKPiArCQlrbXMtPmZ1bmNzLT5jb21taXQoa21zLCBzdGF0ZSk7Cj4gKwl9 Cj4gCj4gIAkvKiBOT1RFOiBfd2FpdF9mb3JfdmJsYW5rcygpIG9ubHkgd2FpdHMgZm9yIHZibGFu ayBvbgo+ICAJICogZW5hYmxlZCBDUlRDcy4gIFNvIHdlIGVuZCB1cCBmYXVsdGluZyB3aGVuIGRp c2FibGluZwoKLS0gCkpleWt1bWFyIFMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KRnJlZWRyZW5vIG1haWxpbmcgbGlzdApGcmVlZHJlbm9AbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vZnJlZWRyZW5vCg==