From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [DPU PATCH 02/11] drm/msm: Don't duplicate modeset_enables atomic helper Date: Wed, 14 Mar 2018 11:14:36 -0400 Message-ID: <20180314151436.GF223881@art_vandelay> References: <20180228191906.185417-1-seanpaul@chromium.org> <20180228191906.185417-3-seanpaul@chromium.org> <20180312202146.GA223881@art_vandelay> <677c8c29a788a147aa45bc1e9768527e@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: <677c8c29a788a147aa45bc1e9768527e-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Jeykumar Sankaran Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, Sean Paul , abhinavk-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, hoegsberg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org T24gVHVlLCBNYXIgMTMsIDIwMTggYXQgMDQ6NTc6MzVQTSAtMDcwMCwgSmV5a3VtYXIgU2Fua2Fy YW4gd3JvdGU6Cj4gT24gMjAxOC0wMy0xMiAxMzoyMSwgU2VhbiBQYXVsIHdyb3RlOgo+ID4gT24g VGh1LCBNYXIgMDgsIDIwMTggYXQgMDQ6NTY6MDFQTSAtMDgwMCwgSmV5a3VtYXIgU2Fua2FyYW4g d3JvdGU6Cj4gPiA+IE9uIDIwMTgtMDItMjggMTE6MTgsIFNlYW4gUGF1bCB3cm90ZToKPiA+ID4g PiBJbnN0ZWFkLCBzaHVmZmxlIHRoaW5ncyBhcm91bmQgc28gd2Uga2lja29mZiBjcnRjIGFmdGVy IGVuYWJsaW5nCj4gPiBlbmNvZGVyCj4gPiA+ID4gZHVyaW5nIG1vZGVzZXRzLiBBbHNvIG1vdmVz IHRoZSB2Ymxhbmsgd2FpdCB0byBhZnRlciB0aGUgZnJhbWUuCj4gPiA+ID4KPiA+ID4gPiBDaGFu Z2UtSWQ6IEkxNmM3YjdmOTM5MGQwNGY2MDUwYWEyMGUxN2E1MzM1ZmJmNDllYmEzCj4gPiA+ID4g U2lnbmVkLW9mZi1ieTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+Cj4gPiA+ID4g LS0tCj4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMgICAg fCAgIDkgKysKPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29k ZXIuYyB8ICAgNSArLQo+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVf a21zLmMgICAgIHwgIDMxICsrKystCj4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9k cHUxL2RwdV9rbXMuaCAgICAgfCAgIDIgKwo+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL21z bV9hdG9taWMuYyAgICAgICAgICAgIHwgMTMyCj4gPiArLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4g PiA+ICA1IGZpbGVzIGNoYW5nZWQsIDQ4IGluc2VydGlvbnMoKyksIDEzMSBkZWxldGlvbnMoLSkK PiA+ID4gPgo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfY3J0Yy5jCj4gPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVf Y3J0Yy5jCj4gPiA+ID4gaW5kZXggYTNhYjZlZDJiZjFkLi45NGZhYjJkY2NhNWIgMTAwNjQ0Cj4g PiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYwo+ID4g PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMKPiA+ID4g PiBAQCAtMzUyNSw2ICszNTI1LDEyIEBAIHN0YXRpYyB2b2lkIGRwdV9jcnRjX2VuYWJsZShzdHJ1 Y3QgZHJtX2NydGMKPiA+ID4gPiAqY3J0YywKPiA+ID4gPiAgCURQVV9FVlQzMl9WRVJCT1NFKERS TUlEKGNydGMpKTsKPiA+ID4gPiAgCWRwdV9jcnRjID0gdG9fZHB1X2NydGMoY3J0Yyk7Cj4gPiA+ ID4KPiA+ID4gPiArCWlmIChtc21faXNfbW9kZV9zZWFtbGVzcygmY3J0Yy0+c3RhdGUtPmFkanVz dGVkX21vZGUpIHx8Cj4gPiA+ID4gKwkgICAgbXNtX2lzX21vZGVfc2VhbWxlc3NfdnJyKCZjcnRj LT5zdGF0ZS0+YWRqdXN0ZWRfbW9kZSkpIHsKPiA+ID4gPiArCQlEUFVfREVCVUcoIlNraXBwaW5n IGNydGMgZW5hYmxlLCBzZWFtbGVzcyBtb2RlXG4iKTsKPiA+ID4gPiArCQlyZXR1cm47Cj4gPiA+ ID4gKwl9Cj4gPiA+ID4gKwo+ID4gPiA+ICAJcG1fcnVudGltZV9nZXRfc3luYyhjcnRjLT5kZXYt PmRldik7Cj4gPiA+ID4KPiA+ID4gPiAgCWRybV9mb3JfZWFjaF9lbmNvZGVyKGVuY29kZXIsIGNy dGMtPmRldikgewo+ID4gPiA+IEBAIC0zNTcyLDYgKzM1NzgsOSBAQCBzdGF0aWMgdm9pZCBkcHVf Y3J0Y19lbmFibGUoc3RydWN0IGRybV9jcnRjCj4gPiAqY3J0YywKPiA+ID4gPiAgCQlEUFVfUE9X RVJfRVZFTlRfUE9TVF9FTkFCTEUgfCBEUFVfUE9XRVJfRVZFTlRfUE9TVF9ESVNBQkxFCj4gPiA+ ID4gfAo+ID4gPiA+ICAJCURQVV9QT1dFUl9FVkVOVF9QUkVfRElTQUJMRSwKPiA+ID4gPiAgCQlk cHVfY3J0Y19oYW5kbGVfcG93ZXJfZXZlbnQsIGNydGMsIGRwdV9jcnRjLT5uYW1lKTsKPiA+ID4g PiArCj4gPiA+ID4gKwlpZiAobXNtX25lZWRzX3ZibGFua19wcmVfbW9kZXNldCgmY3J0Yy0+c3Rh dGUtPmFkanVzdGVkX21vZGUpKQo+ID4gPiA+ICsJCWRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhj cnRjKTsKPiA+ID4gPiAgfQo+ID4gPiA+Cj4gPiA+ID4gIHN0cnVjdCBwbGFuZV9zdGF0ZSB7Cj4g PiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNv ZGVyLmMKPiA+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVy LmMKPiA+ID4gPiBpbmRleCAyOGNlYjU4OWVlNDAuLjRkMWUzNjUyZGJmNCAxMDA2NDQKPiA+ID4g PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jCj4gPiA+ ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuYwo+ID4g PiA+IEBAIC0zNjkzLDggKzM2OTMsMTEgQEAgc3RhdGljIHZvaWQKPiA+IGRwdV9lbmNvZGVyX2Zy YW1lX2RvbmVfdGltZW91dChzdHJ1Y3QKPiA+ID4gPiB0aW1lcl9saXN0ICp0KQo+ID4gPiA+ICBz dGF0aWMgY29uc3Qgc3RydWN0IGRybV9lbmNvZGVyX2hlbHBlcl9mdW5jcyBkcHVfZW5jb2Rlcl9o ZWxwZXJfZnVuY3MKPiA+ID0KPiA+ID4gPiB7Cj4gPiA+ID4gIAkubW9kZV9zZXQgPSBkcHVfZW5j b2Rlcl92aXJ0X21vZGVfc2V0LAo+ID4gPiA+ICAJLmRpc2FibGUgPSBkcHVfZW5jb2Rlcl92aXJ0 X2Rpc2FibGUsCj4gPiA+ID4gLQkuZW5hYmxlID0gZHB1X2VuY29kZXJfdmlydF9lbmFibGUsCj4g PiA+ID4gKwkuZW5hYmxlID0gZHB1X2ttc19lbmNvZGVyX2VuYWJsZSwKPiA+ID4gPiAgCS5hdG9t aWNfY2hlY2sgPSBkcHVfZW5jb2Rlcl92aXJ0X2F0b21pY19jaGVjaywKPiA+ID4gPiArCj4gPiA+ ID4gKwkvKiBUaGlzIGlzIGNhbGxlZCBieSBkcHVfa21zX2VuY29kZXJfZW5hYmxlICovCj4gPiA+ ID4gKwkuY29tbWl0ID0gZHB1X2VuY29kZXJfdmlydF9lbmFibGUsCj4gPiA+ID4gIH07Cj4gPiA+ ID4KPiA+ID4gPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZW5jb2Rlcl9mdW5jcyBkcHVfZW5j b2Rlcl9mdW5jcyA9IHsKPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9k aXNwL2RwdTEvZHB1X2ttcy5jCj4gPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfa21zLmMKPiA+ID4gPiBpbmRleCA4MWZkM2E0MjllOWYuLjNkODMwMzdlODMwNSAxMDA2 NDQKPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21zLmMK PiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21zLmMKPiA+ ID4gPiBAQCAtNDI1LDE0ICs0MjUsMzcgQEAgc3RhdGljIHZvaWQgZHB1X2ttc19wcmVwYXJlX2Nv bW1pdChzdHJ1Y3QKPiA+IG1zbV9rbXMKPiA+ID4gPiAqa21zLAo+ID4gPiA+ICAJCQlkcHVfZW5j b2Rlcl9wcmVwYXJlX2NvbW1pdChlbmNvZGVyKTsKPiA+ID4gPiAgfQo+ID4gPiA+Cj4gPiA+ID4g LXN0YXRpYyB2b2lkIGRwdV9rbXNfY29tbWl0KHN0cnVjdCBtc21fa21zICprbXMsCj4gPiA+ID4g LQkJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkKPiA+ID4gPiArLyoKPiA+ID4g PiArICogT3ZlcnJpZGUgdGhlIGVuY29kZXIgZW5hYmxlIHNpbmNlIHdlIG5lZWQgdG8gc2V0dXAg dGhlIGlubGluZQo+ID4gPiA+IHJvdGF0b3IKPiA+ID4gPiBhbmQgZG8KPiA+ID4gPiArICogc29t ZSBjcnRjIG1hZ2ljIGJlZm9yZSBlbmFibGluZyBhbnkgYnJpZGdlIHRoYXQgbWlnaHQgYmUgcHJl c2VudC4KPiA+ID4gPiArICovCj4gPiA+ID4gK3ZvaWQgZHB1X2ttc19lbmNvZGVyX2VuYWJsZShz dHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4gPiA+ID4gK3sKPiA+ID4gPiArCWNvbnN0IHN0 cnVjdCBkcm1fZW5jb2Rlcl9oZWxwZXJfZnVuY3MgKmZ1bmNzID0KPiA+ID4gPiBlbmNvZGVyLT5o ZWxwZXJfcHJpdmF0ZTsKPiA+ID4gPiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGVuY29kZXIt PmNydGM7Cj4gPiA+ID4gKwo+ID4gPiA+ICsJLyogRm9yd2FyZCB0aGlzIGVuYWJsZSBjYWxsIHRv IHRoZSBjb21taXQgaG9vayAqLwo+ID4gPiA+ICsJaWYgKGZ1bmNzICYmIGZ1bmNzLT5jb21taXQp Cj4gPiA+ID4gKwkJZnVuY3MtPmNvbW1pdChlbmNvZGVyKTsKPiA+ID4gCj4gPiA+IFRoZSBwdXJw b3NlIG9mIHRoaXMgZnVuY3Rpb24gaXMgbm90IGNsZWFyLiBXaGVyZSBhcmUgd2Ugc2V0dGluZyB1 cCB0aGUKPiA+ID4gaW5saW5lIHJvdGF0b3I/Cj4gPiA+IFdoeSBkbyB3ZSBuZWVkIGEga2lja29m ZiBoZXJlPwo+ID4gCj4gPiBUaGUgcmVhc29uIHRoZSBjb2RlIGlzIHNodWZmbGVkIGlzIHRvIGF2 b2lkIGR1cGxpY2F0aW5nIHRoZSBlbnRpcmUKPiA+IGF0b21pYwo+ID4gaGVscGVyCj4gPiBmdW5j dGlvbi4gQnkgbW92aW5nIGNhbGxzIGludG8gdGhlIC0+ZW5hYmxlIGhvb2tzLCB3ZSBjYW4gYXZv aWQgaGF2aW5nCj4gPiB0bwo+ID4gaGFuZAo+ID4gcm9sbCB0aGUgaGVscGVycy4KPiA+IAo+ID4g VGhlIGtpY2tvZmYgaXMgcHJlc2VydmVkIGZyb20gdGhlIGhlbHBlciBjb3B5IHdoZW4geW91IGNh bGwKPiA+IGttcy0+ZnVuY3MtPmNvbW1pdAo+ID4gaW4gYmV0d2VlbiB0aGUgZW5jb2RlciBlbmFi bGUgYW5kIGJyaWRnZSBlbmFibGUuIElmIHRoaXMgY2FuIGJlIHJlbW92ZWQsCj4gPiB0aGF0J2QK PiA+IGJlIGV2ZW4gYmV0dGVyLiBJIHdhcyBzaW1wbHkgdHJ5aW5nIHRvIHByZXNlcnZlIHRoZSBj YWxsIG9yZGVyIG9mCj4gPiBldmVyeXRoaW5nLgo+ID4gCj4gPiBTZWFuCj4gSSBhbSB3aXRoIHlv dSBvbiBjbGVhbmluZyB1cCB0aGUgYXRvbWljIGhlbHBlciBjb3B5LiBCdXQgdXNpbmcgZW5jLT5j b21taXQKPiBoZWxwZXIKPiB0byBjYWxsIGludG8gZW5jb2Rlcl9lbmFibGUgZG9lc24ndCBsb29r IHZhbGlkIHRvIG1lLgoKImRvZXNuJ3QgbG9vayB2YWxpZCB0byBtZSIgZG9lc24ndCBnaXZlIG1l IG11Y2ggdG8gZ28gb24uIENvdWxkIHlvdSBwbGVhc2UKZXhwbGFpbiB3aHkgaXQgZG9lc24ndCBs b29rIHZhbGlkIHRvIHlvdT8KCj4gCj4gQWxzbywgSSB2ZXJpZmllZCByZW1vdmluZyB0aGUga21z LT5mdW5jcy0+Y29tbWl0IGNhbGwgYmV0d2VlbiBlbmNvZGVyIGVuYWJsZQo+IGFuZAo+IGJyaWRn ZSBlbmFibGUuIEl0IHdvcmtzIGZpbmUgd2l0aCB5b3VyIG5ld2x5IHBsYWNlZCBrbXMtPmZ1bmNz LT5jb21taXQgYWZ0ZXIKPiBkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfbW9kZXNldF9lbmFibGVz LiBTbyBjYW4geW91IHJldmlzaXQgdGhpcyBmdW5jdGlvbj8KCkhtbSwgZG8geW91IGtub3cgd2h5 IGl0IHdhcyB0aGVyZSBpbiB0aGUgZmlyc3QgcGxhY2U/IEl0IHNlZW1zIGxpa2UgdGhpcyB3YXMg dGhlCnByaW1hcnkgcmVhc29uIGZvciBjb3B5L3Bhc3RpbmcgdGhlIHdob2xlIGZ1bmN0aW9uLCBz byBpdCBwcm9iYWJseSB3YXNuJ3QgZG9uZQpmb3Igbm90aGluZywgaXQnZCBiZSBuaWNlIHRvIGhh dmUgc29tZSBoaXN0b3J5IG9uIHRoYXQuCgpQcmVzdW1hYmx5IHlvdSBuZWVkZWQgdG8gcmVtb3Zl IHRoZSBuZWVkc19tb2Rlc2V0IGNoZWNrIGFzIHdlbGw/CgpTZWFuCgo+IAo+IEpleWt1bWFyIFMK PiA+IAo+ID4gPiA+ICsKPiA+ID4gPiArCWlmIChjcnRjICYmIGNydGMtPnN0YXRlLT5hY3RpdmUp IHsKPiA+ID4gPiArCQlEUFVfRVZUMzIoRFJNSUQoY3J0YykpOwo+ID4gPiA+ICsJCWRwdV9jcnRj X2NvbW1pdF9raWNrb2ZmKGNydGMpOwo+ID4gPiA+ICsJfQo+ID4gPiA+ICt9Cj4gPiA+ID4gKwo+ ID4gPiA+ICtzdGF0aWMgdm9pZCBkcHVfa21zX2NvbW1pdChzdHJ1Y3QgbXNtX2ttcyAqa21zLCBz dHJ1Y3QKPiA+IGRybV9hdG9taWNfc3RhdGUKPiA+ID4gPiAqc3RhdGUpCj4gPiA+ID4gIHsKPiA+ ID4gPiAgCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiA+ID4gPiAtCXN0cnVjdCBkcm1fY3J0Y19z dGF0ZSAqb2xkX2NydGNfc3RhdGU7Cj4gPiA+ID4gKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNy dGNfc3RhdGU7Cj4gPiA+ID4gKwlzdHJ1Y3QgZHB1X2NydGNfc3RhdGUgKmNzdGF0ZTsKPiA+ID4g PiAgCWludCBpOwo+ID4gPiA+Cj4gPiA+ID4gLQlmb3JfZWFjaF9vbGRfY3J0Y19pbl9zdGF0ZShv bGRfc3RhdGUsIGNydGMsIG9sZF9jcnRjX3N0YXRlLCBpKSB7Cj4gPiA+ID4gKwlmb3JfZWFjaF9u ZXdfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewo+ID4gPiA+ICsJ CS8qIElmIG1vZGVzZXQgaXMgcmVxdWlyZWQsIGtpY2tvZmYgaXMgcnVuIGluCj4gPiA+ID4gZW5j b2Rlcl9lbmFibGUgKi8KPiA+ID4gPiArCQlpZiAoZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVz ZXQoY3J0Y19zdGF0ZSkpCj4gPiA+ID4gKwkJCWNvbnRpbnVlOwo+ID4gPiA+ICsKPiA+ID4gPiAg CQlpZiAoY3J0Yy0+c3RhdGUtPmFjdGl2ZSkgewo+ID4gPiA+ICAJCQlEUFVfRVZUMzIoRFJNSUQo Y3J0YykpOwo+ID4gPiA+ICAJCQlkcHVfY3J0Y19jb21taXRfa2lja29mZihjcnRjKTsKPiA+ID4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2ttcy5oCj4g PiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21zLmgKPiA+ID4gPiBp bmRleCA4Y2FkZDI5YTQ4YjEuLjQyYzgwOWVkOTQ2NyAxMDA2NDQKPiA+ID4gPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21zLmgKPiA+ID4gPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21zLmgKPiA+ID4gPiBAQCAtNTI5LDQgKzUyOSw2 IEBAIGludCBkcHVfa21zX2Zib19yZWZlcmVuY2Uoc3RydWN0IGRwdV9rbXNfZmJvCj4gPiAqZmJv KTsKPiA+ID4gPiAgICovCj4gPiA+ID4gIHZvaWQgZHB1X2ttc19mYm9fdW5yZWZlcmVuY2Uoc3Ry dWN0IGRwdV9rbXNfZmJvICpmYm8pOwo+ID4gPiA+Cj4gPiA+ID4gK3ZvaWQgZHB1X2ttc19lbmNv ZGVyX2VuYWJsZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpOwo+ID4gPiA+ICsKPiA+ID4g PiAgI2VuZGlmIC8qIF9fZHB1X2ttc19IX18gKi8KPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL21zbS9tc21fYXRvbWljLmMKPiA+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9tc20v bXNtX2F0b21pYy5jCj4gPiA+ID4gaW5kZXggNWNmYjgwMzQ1MDUyLi5mNTc5NGRjZTI1ZGQgMTAw NjQ0Cj4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fYXRvbWljLmMKPiA+ID4g PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9hdG9taWMuYwo+ID4gPiA+IEBAIC04NCwx MzEgKzg0LDYgQEAgc3RhdGljIHZvaWQgbXNtX2F0b21pY193YWl0X2Zvcl9jb21taXRfZG9uZSgK PiA+ID4gPiAgCX0KPiA+ID4gPiAgfQo+ID4gPiA+Cj4gPiA+ID4gLS8qKgo+ID4gPiA+IC0gKiBt c21fYXRvbWljX2hlbHBlcl9jb21taXRfbW9kZXNldF9lbmFibGVzIC0gbW9kZXNldCBjb21taXQg dG8KPiA+IGVuYWJsZQo+ID4gPiA+IG91dHB1dHMKPiA+ID4gPiAtICogQGRldjogRFJNIGRldmlj ZQo+ID4gPiA+IC0gKiBAb2xkX3N0YXRlOiBhdG9taWMgc3RhdGUgb2JqZWN0IHdpdGggb2xkIHN0 YXRlIHN0cnVjdHVyZXMKPiA+ID4gPiAtICoKPiA+ID4gPiAtICogVGhpcyBmdW5jdGlvbiBlbmFi bGVzIGFsbCB0aGUgb3V0cHV0cyB3aXRoIHRoZSBuZXcgY29uZmlndXJhdGlvbgo+ID4gPiA+IHdo aWNoCj4gPiA+ID4gaGFkIHRvCj4gPiA+ID4gLSAqIGJlIHR1cm5lZCBvZmYgZm9yIHRoZSB1cGRh dGUuCj4gPiA+ID4gLSAqCj4gPiA+ID4gLSAqIEZvciBjb21wYXRpYmlsaXR5IHdpdGggbGVnYWN5 IGNydGMgaGVscGVycyB0aGlzIHNob3VsZCBiZSBjYWxsZWQKPiA+ID4gPiBhZnRlcgo+ID4gPiA+ IC0gKiBkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfcGxhbmVzKCksIHdoaWNoIGlzIHdoYXQgdGhl IGRlZmF1bHQKPiA+IGNvbW1pdAo+ID4gPiA+IGZ1bmN0aW9uCj4gPiA+ID4gLSAqIGRvZXMuIEJ1 dCBkcml2ZXJzIHdpdGggZGlmZmVyZW50IG5lZWRzIGNhbiBncm91cCB0aGUgbW9kZXNldAo+ID4g Y29tbWl0cwo+ID4gPiA+IHRvZ2V0aGVyCj4gPiA+ID4gLSAqIGFuZCBkbyB0aGUgcGxhbmUgY29t bWl0cyBhdCB0aGUgZW5kLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZHJpdmVycwo+ID4gPiA+IGRvaW5n Cj4gPiA+ID4gcnVudGltZQo+ID4gPiA+IC0gKiBQTSBzaW5jZSBwbGFuZXMgdXBkYXRlcyB0aGVu IG9ubHkgaGFwcGVuIHdoZW4gdGhlIENSVEMgaXMgYWN0dWFsbHkKPiA+ID4gPiBlbmFibGVkLgo+ ID4gPiA+IC0gKi8KPiA+ID4gPiAtc3RhdGljIHZvaWQgbXNtX2F0b21pY19oZWxwZXJfY29tbWl0 X21vZGVzZXRfZW5hYmxlcyhzdHJ1Y3QKPiA+IGRybV9kZXZpY2UKPiA+ID4gPiAqZGV2LAo+ID4g PiA+IC0JCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUpCj4gPiA+ID4gLXsKPiA+ ID4gPiAtCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiA+ID4gPiAtCXN0cnVjdCBkcm1fY3J0Y19z dGF0ZSAqb2xkX2NydGNfc3RhdGU7Cj4gPiA+ID4gLQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm5l d19jcnRjX3N0YXRlOwo+ID4gPiA+IC0Jc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsK PiA+ID4gPiAtCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpuZXdfY29ubl9zdGF0ZTsKPiA+ ID4gPiAtCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ ID4gPiA+IC0Jc3RydWN0IG1zbV9rbXMgKmttcyA9IHByaXYtPmttczsKPiA+ID4gPiAtCWludCBi cmlkZ2VfZW5hYmxlX2NvdW50ID0gMDsKPiA+ID4gPiAtCWludCBpOwo+ID4gPiA+IC0KPiA+ID4g PiAtCWZvcl9lYWNoX29sZG5ld19jcnRjX2luX3N0YXRlKG9sZF9zdGF0ZSwgY3J0Yywgb2xkX2Ny dGNfc3RhdGUsCj4gPiA+ID4gLQkJCW5ld19jcnRjX3N0YXRlLCBpKSB7Cj4gPiA+ID4gLQkJY29u c3Qgc3RydWN0IGRybV9jcnRjX2hlbHBlcl9mdW5jcyAqZnVuY3M7Cj4gPiA+ID4gLQo+ID4gPiA+ IC0JCS8qIE5lZWQgdG8gZmlsdGVyIG91dCBDUlRDcyB3aGVyZSBvbmx5IHBsYW5lcyBjaGFuZ2Uu ICovCj4gPiA+ID4gLQkJaWYgKCFkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNldChuZXdfY3J0 Y19zdGF0ZSkpCj4gPiA+ID4gLQkJCWNvbnRpbnVlOwo+ID4gPiA+IC0KPiA+ID4gPiAtCQlpZiAo IW5ld19jcnRjX3N0YXRlLT5hY3RpdmUpCj4gPiA+ID4gLQkJCWNvbnRpbnVlOwo+ID4gPiA+IC0K PiA+ID4gPiAtCQlpZiAobXNtX2lzX21vZGVfc2VhbWxlc3MoJm5ld19jcnRjX3N0YXRlLT5tb2Rl KSB8fAo+ID4gPiA+IC0JCQkJbXNtX2lzX21vZGVfc2VhbWxlc3NfdnJyKAo+ID4gPiA+IC0JCQkJ Jm5ld19jcnRjX3N0YXRlLT5hZGp1c3RlZF9tb2RlKSkKPiA+ID4gPiAtCQkJY29udGludWU7Cj4g PiA+ID4gLQo+ID4gPiA+IC0JCWZ1bmNzID0gY3J0Yy0+aGVscGVyX3ByaXZhdGU7Cj4gPiA+ID4g LQo+ID4gPiA+IC0JCWlmIChjcnRjLT5zdGF0ZS0+ZW5hYmxlKSB7Cj4gPiA+ID4gLQkJCURSTV9E RUJVR19BVE9NSUMoImVuYWJsaW5nIFtDUlRDOiVkXVxuIiwKPiA+ID4gPiAtCQkJCQkgY3J0Yy0+ YmFzZS5pZCk7Cj4gPiA+ID4gLQo+ID4gPiA+IC0JCQlpZiAoZnVuY3MtPmF0b21pY19lbmFibGUp Cj4gPiA+ID4gLQkJCQlmdW5jcy0+YXRvbWljX2VuYWJsZShjcnRjLAo+ID4gPiA+IG9sZF9jcnRj X3N0YXRlKTsKPiA+ID4gPiAtCQkJZWxzZQo+ID4gPiA+IC0JCQkJZnVuY3MtPmNvbW1pdChjcnRj KTsKPiA+ID4gPiAtCQl9Cj4gPiA+ID4gLQo+ID4gPiA+IC0JCWlmIChtc21fbmVlZHNfdmJsYW5r X3ByZV9tb2Rlc2V0KAo+ID4gPiA+IC0JCQkJCSZuZXdfY3J0Y19zdGF0ZS0+YWRqdXN0ZWRfbW9k ZSkpCj4gPiA+ID4gLQkJCWRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhjcnRjKTsKPiA+ID4gPiAt CX0KPiA+ID4gPiAtCj4gPiA+ID4gLQkvKiBlbnN1cmUgYnJpZGdlL2VuY29kZXIgdXBkYXRlcyBo YXBwZW4gb24gc2FtZSB2YmxhbmsgKi8KPiA+ID4gPiAtCW1zbV9hdG9taWNfd2FpdF9mb3JfY29t bWl0X2RvbmUoZGV2LCBvbGRfc3RhdGUpOwo+ID4gPiA+IC0KPiA+ID4gPiAtCWZvcl9lYWNoX25l d19jb25uZWN0b3JfaW5fc3RhdGUob2xkX3N0YXRlLCBjb25uZWN0b3IsCj4gPiA+ID4gLQkJCW5l d19jb25uX3N0YXRlLCBpKSB7Cj4gPiA+ID4gLQkJY29uc3Qgc3RydWN0IGRybV9lbmNvZGVyX2hl bHBlcl9mdW5jcyAqZnVuY3M7Cj4gPiA+ID4gLQkJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVy Owo+ID4gPiA+IC0KPiA+ID4gPiAtCQlpZiAoIW5ld19jb25uX3N0YXRlLT5iZXN0X2VuY29kZXIp Cj4gPiA+ID4gLQkJCWNvbnRpbnVlOwo+ID4gPiA+IC0KPiA+ID4gPiAtCQlpZiAoIW5ld19jb25u X3N0YXRlLT5jcnRjLT5zdGF0ZS0+YWN0aXZlIHx8Cj4gPiA+ID4gLQkJICAgICFkcm1fYXRvbWlj X2NydGNfbmVlZHNfbW9kZXNldCgKPiA+ID4gPiAtCQkJICAgIG5ld19jb25uX3N0YXRlLT5jcnRj LT5zdGF0ZSkpCj4gPiA+ID4gLQkJCWNvbnRpbnVlOwo+ID4gPiA+IC0KPiA+ID4gPiAtCQllbmNv ZGVyID0gbmV3X2Nvbm5fc3RhdGUtPmJlc3RfZW5jb2RlcjsKPiA+ID4gPiAtCQlmdW5jcyA9IGVu Y29kZXItPmhlbHBlcl9wcml2YXRlOwo+ID4gPiA+IC0KPiA+ID4gPiAtCQlEUk1fREVCVUdfQVRP TUlDKCJlbmFibGluZyBbRU5DT0RFUjolZDolc11cbiIsCj4gPiA+ID4gLQkJCQkgZW5jb2Rlci0+ YmFzZS5pZCwgZW5jb2Rlci0+bmFtZSk7Cj4gPiA+ID4gLQo+ID4gPiA+IC0JCS8qCj4gPiA+ID4g LQkJICogRWFjaCBlbmNvZGVyIGhhcyBhdCBtb3N0IG9uZSBjb25uZWN0b3IgKHNpbmNlIHdlIGFs d2F5cwo+ID4gPiA+IHN0ZWFsCj4gPiA+ID4gLQkJICogaXQgYXdheSksIHNvIHdlIHdvbid0IGNh bGwgZW5hYmxlIGhvb2tzIHR3aWNlLgo+ID4gPiA+IC0JCSAqLwo+ID4gPiA+IC0JCWRybV9icmlk Z2VfcHJlX2VuYWJsZShlbmNvZGVyLT5icmlkZ2UpOwo+ID4gPiA+IC0JCSsrYnJpZGdlX2VuYWJs ZV9jb3VudDsKPiA+ID4gPiAtCj4gPiA+ID4gLQkJaWYgKGZ1bmNzLT5lbmFibGUpCj4gPiA+ID4g LQkJCWZ1bmNzLT5lbmFibGUoZW5jb2Rlcik7Cj4gPiA+ID4gLQkJZWxzZQo+ID4gPiA+IC0JCQlm dW5jcy0+Y29tbWl0KGVuY29kZXIpOwo+ID4gPiA+IC0JfQo+ID4gPiA+IC0KPiA+ID4gPiAtCWlm IChrbXMtPmZ1bmNzLT5jb21taXQpIHsKPiA+ID4gPiAtCQlEUk1fREVCVUdfQVRPTUlDKCJ0cmln Z2VyaW5nIGNvbW1pdFxuIik7Cj4gPiA+ID4gLQkJa21zLT5mdW5jcy0+Y29tbWl0KGttcywgb2xk X3N0YXRlKTsKPiA+ID4gPiAtCX0KPiA+ID4gPiAtCj4gPiA+ID4gLQkvKiBJZiBubyBicmlkZ2Vz IHdlcmUgcHJlX2VuYWJsZWQsIHNraXAgaXRlcmF0aW5nIG92ZXIgdGhlbSBhZ2Fpbgo+ID4gPiA+ ICovCj4gPiA+ID4gLQlpZiAoYnJpZGdlX2VuYWJsZV9jb3VudCA9PSAwKQo+ID4gPiA+IC0JCXJl dHVybjsKPiA+ID4gPiAtCj4gPiA+ID4gLQlmb3JfZWFjaF9uZXdfY29ubmVjdG9yX2luX3N0YXRl KG9sZF9zdGF0ZSwgY29ubmVjdG9yLAo+ID4gPiA+IC0JCQluZXdfY29ubl9zdGF0ZSwgaSkgewo+ ID4gPiA+IC0JCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcjsKPiA+ID4gPiAtCj4gPiA+ID4g LQkJaWYgKCFuZXdfY29ubl9zdGF0ZS0+YmVzdF9lbmNvZGVyKQo+ID4gPiA+IC0JCQljb250aW51 ZTsKPiA+ID4gPiAtCj4gPiA+ID4gLQkJaWYgKCFuZXdfY29ubl9zdGF0ZS0+Y3J0Yy0+c3RhdGUt PmFjdGl2ZSB8fAo+ID4gPiA+IC0JCSAgICAhZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQo Cj4gPiA+ID4gLQkJCQkgICAgbmV3X2Nvbm5fc3RhdGUtPmNydGMtPnN0YXRlKSkKPiA+ID4gPiAt CQkJY29udGludWU7Cj4gPiA+ID4gLQo+ID4gPiA+IC0JCWVuY29kZXIgPSBuZXdfY29ubl9zdGF0 ZS0+YmVzdF9lbmNvZGVyOwo+ID4gPiA+IC0KPiA+ID4gPiAtCQlEUk1fREVCVUdfQVRPTUlDKCJi cmlkZ2UgZW5hYmxlIGVuYWJsaW5nCj4gPiA+ID4gW0VOQ09ERVI6JWQ6JXNdXG4iLAo+ID4gPiA+ IC0JCQkJIGVuY29kZXItPmJhc2UuaWQsIGVuY29kZXItPm5hbWUpOwo+ID4gPiA+IC0KPiA+ID4g PiAtCQlkcm1fYnJpZGdlX2VuYWJsZShlbmNvZGVyLT5icmlkZ2UpOwo+ID4gPiA+IC0JfQo+ID4g PiA+IC19Cj4gPiA+ID4gLQo+ID4gPiA+ICAvKiBUaGUgKHBvdGVudGlhbGx5KSBhc3luY2hyb25v dXMgcGFydCBvZiB0aGUgY29tbWl0LiAgQXQgdGhpcyBwb2ludAo+ID4gPiA+ICAgKiBub3RoaW5n IGNhbiBmYWlsIHNob3J0IG9mIGFybWFnZWRkb24uCj4gPiA+ID4gICAqLwo+ID4gPiA+IEBAIC0y MjcsNyArMTAyLDEyIEBAIHN0YXRpYyB2b2lkIGNvbXBsZXRlX2NvbW1pdChzdHJ1Y3QgbXNtX2Nv bW1pdCAqYykKPiA+ID4gPgo+ID4gPiA+ICAJZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X3BsYW5l cyhkZXYsIHN0YXRlLCAwKTsKPiA+ID4gPgo+ID4gPiA+IC0JbXNtX2F0b21pY19oZWxwZXJfY29t bWl0X21vZGVzZXRfZW5hYmxlcyhkZXYsIHN0YXRlKTsKPiA+ID4gPiArCWRybV9hdG9taWNfaGVs cGVyX2NvbW1pdF9tb2Rlc2V0X2VuYWJsZXMoZGV2LCBzdGF0ZSk7Cj4gPiA+ID4gKwo+ID4gPiA+ ICsJaWYgKGttcy0+ZnVuY3MtPmNvbW1pdCkgewo+ID4gPiA+ICsJCURSTV9ERUJVR19BVE9NSUMo InRyaWdnZXJpbmcgY29tbWl0XG4iKTsKPiA+ID4gPiArCQlrbXMtPmZ1bmNzLT5jb21taXQoa21z LCBzdGF0ZSk7Cj4gPiA+ID4gKwl9Cj4gPiA+ID4KPiA+ID4gPiAgCS8qIE5PVEU6IF93YWl0X2Zv cl92YmxhbmtzKCkgb25seSB3YWl0cyBmb3IgdmJsYW5rIG9uCj4gPiA+ID4gIAkgKiBlbmFibGVk IENSVENzLiAgU28gd2UgZW5kIHVwIGZhdWx0aW5nIHdoZW4gZGlzYWJsaW5nCj4gPiA+IAo+ID4g PiAtLQo+ID4gPiBKZXlrdW1hciBTCj4gCj4gLS0gCj4gSmV5a3VtYXIgUwoKLS0gClNlYW4gUGF1 bCwgU29mdHdhcmUgRW5naW5lZXIsIEdvb2dsZSAvIENocm9taXVtIE9TCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkZyZWVkcmVubyBtYWlsaW5nIGxpc3QK RnJlZWRyZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVkcmVubwo=