From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [PATCH v2 5/6] drm/atomic: Fix freeing connector/plane state too early by tracking commits, v3. Date: Thu, 7 Sep 2017 13:08:35 +0200 Message-ID: References: <20170904104838.23822-1-maarten.lankhorst@linux.intel.com> <20170904104838.23822-6-maarten.lankhorst@linux.intel.com> <20170907100557.mdkhclxhfdug4bge@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170907100557.mdkhclxhfdug4bge@phenom.ffwll.local> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org, Laurent Pinchart , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T3AgMDctMDktMTcgb20gMTI6MDUgc2NocmVlZiBEYW5pZWwgVmV0dGVyOgo+IE9uIE1vbiwgU2Vw IDA0LCAyMDE3IGF0IDEyOjQ4OjM3UE0gKzAyMDAsIE1hYXJ0ZW4gTGFua2hvcnN0IHdyb3RlOgo+ PiBDdXJyZW50bHkgd2UgbmVhdGx5IHRyYWNrIHRoZSBjcnRjIHN0YXRlLCBidXQgZm9yZ2V0IHRv IGxvb2sgYXQKPj4gcGxhbmUvY29ubmVjdG9yIHN0YXRlLgo+Pgo+PiBXaGVuIGRvaW5nIGEgbm9u YmxvY2tpbmcgbW9kZXNldCwgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkgYSBzZXRwcm9wCj4+IGJl Zm9yZSB0aGUgbW9kZXNldCBjb21wbGV0ZXMsIHRoZSBzZXRwcm9wIHdpbGwgc2VlIHRoZSBtb2Rl c2V0cyBuZXcKPj4gc3RhdGUgYXMgdGhlIG9sZCBzdGF0ZSBhbmQgZnJlZSBpdC4KPj4KPj4gVGhp cyBoYXMgdG8gYmUgc29sdmVkIGJ5IHdhaXRpbmcgZm9yIGh3X2RvbmUgb24gdGhlIGNvbm5lY3Rv ciwgZXZlbgo+PiBpZiBpdCdzIG5vdCBhc3NpZ25lZCB0byBhIGNydGMuIFdoZW4gYSBjb25uZWN0 b3IgaXMgdW5ib3VuZCB3ZSB0YWtlCj4+IHRoZSBsYXN0IGNydGMgY29tbWl0LCBhbmQgd2hlbiBp dCBzdGF5cyB1bmJvdW5kIHdlIGNyZWF0ZSBhIG5ldwo+PiBmYWtlIGNydGMgY29tbWl0IGZvciB0 aGF0IGdldHMgc2lnbmFsZWQgb24gaHdfZG9uZSBmb3IgYWxsIHRoZQo+PiBwbGFuZXMvY29ubmVj dG9ycy4KPj4KPj4gV2Ugd2FpdCBmb3IgaXQgdGhlIHNhbWUgd2F5IGFzIHdlIGRvIGZvciBjcnRj J3MsIHdoaWNoIHdpbGwgbWFrZQo+PiBzdXJlIHdlIG5ldmVyIHJ1biBpbnRvIGEgdXNlLWFmdGVy LWZyZWUgc2l0dWF0aW9uLgo+Pgo+PiBDaGFuZ2VzIHNpbmNlIHYxOgo+PiAtIE9ubHkgY3JlYXRl IGEgc2luZ2xlIGRpc2FibGUgY29tbWl0LiAoZGFudmV0KQo+PiAtIEZpeCBsZWFrIGluIGludGVs X2xlZ2FjeV9jdXJzb3JfdXBkYXRlLgo+PiBDaGFuZ2VzIHNpbmNlIHYyOgo+PiAtIE1ha2UgcmVm ZXJlbmNlIGNvdW50aW5nIGluIGRybV9hdG9taWNfaGVscGVyX3NldHVwX2NvbW1pdAo+PiAgIG1v cmUgb2J2aW91cy4gKHBpbmNoYXJ0bCkKPj4gLSBDYWxsIGNsZWFudXBfZG9uZSBmb3IgZmFrZSBj b21taXQuIChkYW52ZXQpCj4+IC0gQWRkIGNvbW1lbnRzIHRvIGRybV9hdG9taWNfaGVscGVyX3Nl dHVwX2NvbW1pdC4gKGRhbnZldCwgcGluY2hhcnRsKQo+PiAtIEFkZCBjb21tZW50IHRvIGRybV9h dG9taWNfaGVscGVyX3N3YXBfc3RhdGUuIChwaW5jaGFydGwpCj4+Cj4+IFNpZ25lZC1vZmYtYnk6 IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4+ IFRlc3RjYXNlOiBrbXNfYXRvbWljX3RyYW5zaXRpb24ucGxhbmUtdXNlLWFmdGVyLW5vbmJsb2Nr aW5nLXVuYmluZCoKPj4gQ2M6IExhdXJlbnQgUGluY2hhcnQgPGxhdXJlbnQucGluY2hhcnRAaWRl YXNvbmJvYXJkLmNvbT4KPj4gLS0tCj4+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jICAg ICAgICAgfCAgIDQgKwo+PiAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgIHwg MTcyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCj4+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAgIDIgKwo+PiAgaW5jbHVkZS9kcm0vZHJtX2F0b21p Yy5oICAgICAgICAgICAgIHwgIDEyICsrKwo+PiAgaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5o ICAgICAgICAgIHwgICA3ICsrCj4+ICBpbmNsdWRlL2RybS9kcm1fcGxhbmUuaCAgICAgICAgICAg ICAgfCAgIDcgKysKPj4gIDYgZmlsZXMgY2hhbmdlZCwgMTk4IGluc2VydGlvbnMoKyksIDYgZGVs ZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5j IGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+PiBpbmRleCAyY2NlNDhmMjAzZTAuLjc1 ZjVmNzRkZTliZiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCj4+IEBAIC0xOTIsNiArMTkyLDEw IEBAIHZvaWQgZHJtX2F0b21pY19zdGF0ZV9kZWZhdWx0X2NsZWFyKHN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlICpzdGF0ZSkKPj4gIAl9Cj4+ICAJc3RhdGUtPm51bV9wcml2YXRlX29ianMgPSAwOwo+ PiAgCj4+ICsJaWYgKHN0YXRlLT5mYWtlX2NvbW1pdCkgewo+PiArCQlkcm1fY3J0Y19jb21taXRf cHV0KHN0YXRlLT5mYWtlX2NvbW1pdCk7Cj4+ICsJCXN0YXRlLT5mYWtlX2NvbW1pdCA9IE5VTEw7 Cj4+ICsJfQo+PiAgfQo+PiAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX3N0YXRlX2RlZmF1bHRf Y2xlYXIpOwo+PiAgCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19o ZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4+IGluZGV4IDA0 NjI5ZDg4MzExNC4uYzgxZDQ2OTI3YTc0IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX2F0b21pY19oZWxwZXIuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19o ZWxwZXIuYwo+PiBAQCAtMTY2Nyw2ICsxNjY3LDM4IEBAIHN0YXRpYyB2b2lkIHJlbGVhc2VfY3J0 Y19jb21taXQoc3RydWN0IGNvbXBsZXRpb24gKmNvbXBsZXRpb24pCj4+ICAJZHJtX2NydGNfY29t bWl0X3B1dChjb21taXQpOwo+PiAgfQo+PiAgCj4+ICtzdGF0aWMgdm9pZCBpbml0X2NvbW1pdChz dHJ1Y3QgZHJtX2NydGNfY29tbWl0ICpjb21taXQsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPj4g K3sKPj4gKwlpbml0X2NvbXBsZXRpb24oJmNvbW1pdC0+ZmxpcF9kb25lKTsKPj4gKwlpbml0X2Nv bXBsZXRpb24oJmNvbW1pdC0+aHdfZG9uZSk7Cj4+ICsJaW5pdF9jb21wbGV0aW9uKCZjb21taXQt PmNsZWFudXBfZG9uZSk7Cj4+ICsJSU5JVF9MSVNUX0hFQUQoJmNvbW1pdC0+Y29tbWl0X2VudHJ5 KTsKPj4gKwlrcmVmX2luaXQoJmNvbW1pdC0+cmVmKTsKPj4gKwljb21taXQtPmNydGMgPSBjcnRj Owo+PiArfQo+PiArCj4+ICtzdGF0aWMgc3RydWN0IGRybV9jcnRjX2NvbW1pdCAqCj4+ICtjcnRj X29yX2Zha2VfY29tbWl0KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwgc3RydWN0IGRy bV9jcnRjICpjcnRjKQo+IEJpa2VzaGVkOiBXb3VsZCBiZSBuaWNlIGlmIHRoaXMgZnVuY3Rpb24g ZGlyZWN0bHkgaW5jcmVhc2VzIHRoZSByZWZjb3VudCwKPiBpbnN0ZWFkIG9mIGltcG9zaW5nIHRo aXMgb24gYWxsIGNhbGxlcnMuIFdvdWxkIG5lZWQgYSByZW5hbWUgdG9vIGxpa2UKPiBjcnRjX29y X2Zha2VfY29tbWl0X2dldCgpLgo+Cj4gQnV0IHNpbmNlIHRoaXMgYnVnIGlzIHJhbmRvbWx5IGtp bGxpbmcgb3VyIGhzdyBDSSBhbmQgY2F1c2luZyBsb3RzIG9mCj4gbm9pc2UgYmV0dGVyIHRvIHB1 c2ggYXMtaXMgYW5kIHBvbGlzaCBsYXRlciBvbi4KPgo+IFJldmlld2VkLWJ5OiBEYW5pZWwgVmV0 dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgpJIGNob3NlIG5vdCB0bywgdG8gbWFrZSBpdCBl eHBsaWNpdCB0aGF0IGEgZXh0cmEgcmVmY291bnQgaXMgdXNlZCBvbiB0aGUgc3RhdGUgb2JqZWN0 LgpCdXQgc2VuZGluZyBvbmUgZmluYWwgdmVyc2lvbiB0byB0cnlib3QgdG8gbWFrZSBzdXJlIHRo YXQgdGhpbmdzIGRvbid0IGJsb3cgdXAgd2l0aCB0aGUgbWVyZ2UgY29uZmxpY3RzIGluIHBhdGNo IDYuIDopCj4+ICt7Cj4+ICsJaWYgKGNydGMpIHsKPj4gKwkJc3RydWN0IGRybV9jcnRjX3N0YXRl ICpuZXdfY3J0Y19zdGF0ZTsKPj4gKwo+PiArCQluZXdfY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNf Z2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKPj4gKwo+PiArCQlyZXR1cm4gbmV3X2Ny dGNfc3RhdGUtPmNvbW1pdDsKPj4gKwl9Cj4+ICsKPj4gKwlpZiAoIXN0YXRlLT5mYWtlX2NvbW1p dCkgewo+PiArCQlzdGF0ZS0+ZmFrZV9jb21taXQgPSBremFsbG9jKHNpemVvZigqc3RhdGUtPmZh a2VfY29tbWl0KSwgR0ZQX0tFUk5FTCk7Cj4+ICsJCWlmICghc3RhdGUtPmZha2VfY29tbWl0KQo+ PiArCQkJcmV0dXJuIE5VTEw7Cj4+ICsKPj4gKwkJaW5pdF9jb21taXQoc3RhdGUtPmZha2VfY29t bWl0LCBOVUxMKTsKPj4gKwl9Cj4+ICsKPj4gKwlyZXR1cm4gc3RhdGUtPmZha2VfY29tbWl0Owo+ PiArfQo+PiArCj4+ICAvKioKPj4gICAqIGRybV9hdG9taWNfaGVscGVyX3NldHVwX2NvbW1pdCAt IHNldHVwIHBvc3NpYmx5IG5vbmJsb2NraW5nIGNvbW1pdAo+PiAgICogQHN0YXRlOiBuZXcgbW9k ZXNldCBzdGF0ZSB0byBiZSBjb21taXR0ZWQKPj4gQEAgLTE3MTUsNiArMTc0NywxMCBAQCBpbnQg ZHJtX2F0b21pY19oZWxwZXJfc2V0dXBfY29tbWl0KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSwKPj4gIHsKPj4gIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4+ICAJc3RydWN0IGRybV9j cnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwgKm5ld19jcnRjX3N0YXRlOwo+PiArCXN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uOwo+PiArCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRf Y29ubl9zdGF0ZSwgKm5ld19jb25uX3N0YXRlOwo+PiArCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l Owo+PiArCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm9sZF9wbGFuZV9zdGF0ZSwgKm5ld19wbGFu ZV9zdGF0ZTsKPj4gIAlzdHJ1Y3QgZHJtX2NydGNfY29tbWl0ICpjb21taXQ7Cj4+ICAJaW50IGks IHJldDsKPj4gIAo+PiBAQCAtMTcyMywxMiArMTc1OSw3IEBAIGludCBkcm1fYXRvbWljX2hlbHBl cl9zZXR1cF9jb21taXQoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAo+PiAgCQlpZiAo IWNvbW1pdCkKPj4gIAkJCXJldHVybiAtRU5PTUVNOwo+PiAgCj4+IC0JCWluaXRfY29tcGxldGlv bigmY29tbWl0LT5mbGlwX2RvbmUpOwo+PiAtCQlpbml0X2NvbXBsZXRpb24oJmNvbW1pdC0+aHdf ZG9uZSk7Cj4+IC0JCWluaXRfY29tcGxldGlvbigmY29tbWl0LT5jbGVhbnVwX2RvbmUpOwo+PiAt CQlJTklUX0xJU1RfSEVBRCgmY29tbWl0LT5jb21taXRfZW50cnkpOwo+PiAtCQlrcmVmX2luaXQo JmNvbW1pdC0+cmVmKTsKPj4gLQkJY29tbWl0LT5jcnRjID0gY3J0YzsKPj4gKwkJaW5pdF9jb21t aXQoY29tbWl0LCBjcnRjKTsKPj4gIAo+PiAgCQluZXdfY3J0Y19zdGF0ZS0+Y29tbWl0ID0gY29t bWl0Owo+PiAgCj4+IEBAIC0xNzY0LDYgKzE3OTUsNDIgQEAgaW50IGRybV9hdG9taWNfaGVscGVy X3NldHVwX2NvbW1pdChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4+ICAJCWRybV9j cnRjX2NvbW1pdF9nZXQoY29tbWl0KTsKPj4gIAl9Cj4+ICAKPj4gKwlmb3JfZWFjaF9vbGRuZXdf Y29ubmVjdG9yX2luX3N0YXRlKHN0YXRlLCBjb25uLCBvbGRfY29ubl9zdGF0ZSwgbmV3X2Nvbm5f c3RhdGUsIGkpIHsKPj4gKwkJLyogY29tbWl0IHRyYWNrZWQgdGhyb3VnaCBuZXdfY3J0Y19zdGF0 ZS0+Y29tbWl0LCBubyBuZWVkIHRvIGRvIGl0IGV4cGxpY2l0bHkgKi8KPj4gKwkJaWYgKG5ld19j b25uX3N0YXRlLT5jcnRjKQo+PiArCQkJY29udGludWU7Cj4+ICsKPj4gKwkJLyogVXNlcnNwYWNl IGlzIG5vdCBhbGxvd2VkIHRvIGdldCBhaGVhZCBvZiB0aGUgcHJldmlvdXMKPj4gKwkJICogY29t bWl0IHdpdGggbm9uYmxvY2tpbmcgb25lcy4gKi8KPj4gKwkJaWYgKG5vbmJsb2NrICYmIG9sZF9j b25uX3N0YXRlLT5jb21taXQgJiYKPj4gKwkJICAgICF0cnlfd2FpdF9mb3JfY29tcGxldGlvbigm b2xkX2Nvbm5fc3RhdGUtPmNvbW1pdC0+ZmxpcF9kb25lKSkKPj4gKwkJCXJldHVybiAtRUJVU1k7 Cj4+ICsKPj4gKwkJY29tbWl0ID0gY3J0Y19vcl9mYWtlX2NvbW1pdChzdGF0ZSwgb2xkX2Nvbm5f c3RhdGUtPmNydGMpOwo+PiArCQlpZiAoIWNvbW1pdCkKPj4gKwkJCXJldHVybiAtRU5PTUVNOwo+ PiArCj4+ICsJCW5ld19jb25uX3N0YXRlLT5jb21taXQgPSBkcm1fY3J0Y19jb21taXRfZ2V0KGNv bW1pdCk7Cj4+ICsJfQo+PiArCj4+ICsJZm9yX2VhY2hfb2xkbmV3X3BsYW5lX2luX3N0YXRlKHN0 YXRlLCBwbGFuZSwgb2xkX3BsYW5lX3N0YXRlLCBuZXdfcGxhbmVfc3RhdGUsIGkpIHsKPj4gKwkJ LyogY29tbWl0IHRyYWNrZWQgdGhyb3VnaCBuZXdfY3J0Y19zdGF0ZS0+Y29tbWl0LCBubyBuZWVk IHRvIGRvIGl0IGV4cGxpY2l0bHkgKi8KPj4gKwkJaWYgKG5ld19wbGFuZV9zdGF0ZS0+Y3J0YykK Pj4gKwkJCWNvbnRpbnVlOwo+PiArCj4+ICsJCS8qIFVzZXJzcGFjZSBpcyBub3QgYWxsb3dlZCB0 byBnZXQgYWhlYWQgb2YgdGhlIHByZXZpb3VzCj4+ICsJCSAqIGNvbW1pdCB3aXRoIG5vbmJsb2Nr aW5nIG9uZXMuICovCj4+ICsJCWlmIChub25ibG9jayAmJiBvbGRfcGxhbmVfc3RhdGUtPmNvbW1p dCAmJgo+PiArCQkgICAgIXRyeV93YWl0X2Zvcl9jb21wbGV0aW9uKCZvbGRfcGxhbmVfc3RhdGUt PmNvbW1pdC0+ZmxpcF9kb25lKSkKPj4gKwkJCXJldHVybiAtRUJVU1k7Cj4+ICsKPj4gKwkJY29t bWl0ID0gY3J0Y19vcl9mYWtlX2NvbW1pdChzdGF0ZSwgb2xkX3BsYW5lX3N0YXRlLT5jcnRjKTsK Pj4gKwkJaWYgKCFjb21taXQpCj4+ICsJCQlyZXR1cm4gLUVOT01FTTsKPj4gKwo+PiArCQluZXdf cGxhbmVfc3RhdGUtPmNvbW1pdCA9IGRybV9jcnRjX2NvbW1pdF9nZXQoY29tbWl0KTsKPj4gKwl9 Cj4+ICsKPj4gIAlyZXR1cm4gMDsKPj4gIH0KPj4gIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19o ZWxwZXJfc2V0dXBfY29tbWl0KTsKPj4gQEAgLTE3ODQsNiArMTg1MSwxMCBAQCB2b2lkIGRybV9h dG9taWNfaGVscGVyX3dhaXRfZm9yX2RlcGVuZGVuY2llcyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqb2xkX3N0YXRlKQo+PiAgewo+PiAgCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPj4gIAlzdHJ1 Y3QgZHJtX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlOwo+PiArCXN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lOwo+PiArCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm9sZF9wbGFuZV9zdGF0ZTsKPj4g KwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubjsKPj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9z dGF0ZSAqb2xkX2Nvbm5fc3RhdGU7Cj4+ICAJc3RydWN0IGRybV9jcnRjX2NvbW1pdCAqY29tbWl0 Owo+PiAgCWludCBpOwo+PiAgCWxvbmcgcmV0Owo+PiBAQCAtMTgwOCw2ICsxODc5LDQ4IEBAIHZv aWQgZHJtX2F0b21pY19oZWxwZXJfd2FpdF9mb3JfZGVwZW5kZW5jaWVzKHN0cnVjdCBkcm1fYXRv bWljX3N0YXRlICpvbGRfc3RhdGUpCj4+ICAJCQlEUk1fRVJST1IoIltDUlRDOiVkOiVzXSBmbGlw X2RvbmUgdGltZWQgb3V0XG4iLAo+PiAgCQkJCSAgY3J0Yy0+YmFzZS5pZCwgY3J0Yy0+bmFtZSk7 Cj4+ICAJfQo+PiArCj4+ICsJZm9yX2VhY2hfb2xkX2Nvbm5lY3Rvcl9pbl9zdGF0ZShvbGRfc3Rh dGUsIGNvbm4sIG9sZF9jb25uX3N0YXRlLCBpKSB7Cj4+ICsJCWNvbW1pdCA9IG9sZF9jb25uX3N0 YXRlLT5jb21taXQ7Cj4+ICsKPj4gKwkJaWYgKCFjb21taXQpCj4+ICsJCQljb250aW51ZTsKPj4g Kwo+PiArCQlyZXQgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoJmNvbW1pdC0+aHdfZG9u ZSwKPj4gKwkJCQkJCSAgMTAqSFopOwo+PiArCQlpZiAocmV0ID09IDApCj4+ICsJCQlEUk1fRVJS T1IoIltDT05ORUNUT1I6JWQ6JXNdIGh3X2RvbmUgdGltZWQgb3V0XG4iLAo+PiArCQkJCSAgY29u bi0+YmFzZS5pZCwgY29ubi0+bmFtZSk7Cj4+ICsKPj4gKwkJLyogQ3VycmVudGx5IG5vIHN1cHBv cnQgZm9yIG92ZXJ3cml0aW5nIGZsaXBzLCBoZW5jZQo+PiArCQkgKiBzdGFsbCBmb3IgcHJldmlv dXMgb25lIHRvIGV4ZWN1dGUgY29tcGxldGVseS4gKi8KPj4gKwkJcmV0ID0gd2FpdF9mb3JfY29t cGxldGlvbl90aW1lb3V0KCZjb21taXQtPmZsaXBfZG9uZSwKPj4gKwkJCQkJCSAgMTAqSFopOwo+ PiArCQlpZiAocmV0ID09IDApCj4+ICsJCQlEUk1fRVJST1IoIltDT05ORUNUT1I6JWQ6JXNdIGZs aXBfZG9uZSB0aW1lZCBvdXRcbiIsCj4+ICsJCQkJICBjb25uLT5iYXNlLmlkLCBjb25uLT5uYW1l KTsKPj4gKwl9Cj4+ICsKPj4gKwlmb3JfZWFjaF9vbGRfcGxhbmVfaW5fc3RhdGUob2xkX3N0YXRl LCBwbGFuZSwgb2xkX3BsYW5lX3N0YXRlLCBpKSB7Cj4+ICsJCWNvbW1pdCA9IG9sZF9wbGFuZV9z dGF0ZS0+Y29tbWl0Owo+PiArCj4+ICsJCWlmICghY29tbWl0KQo+PiArCQkJY29udGludWU7Cj4+ ICsKPj4gKwkJcmV0ID0gd2FpdF9mb3JfY29tcGxldGlvbl90aW1lb3V0KCZjb21taXQtPmh3X2Rv bmUsCj4+ICsJCQkJCQkgIDEwKkhaKTsKPj4gKwkJaWYgKHJldCA9PSAwKQo+PiArCQkJRFJNX0VS Uk9SKCJbUExBTkU6JWQ6JXNdIGh3X2RvbmUgdGltZWQgb3V0XG4iLAo+PiArCQkJCSAgcGxhbmUt PmJhc2UuaWQsIHBsYW5lLT5uYW1lKTsKPj4gKwo+PiArCQkvKiBDdXJyZW50bHkgbm8gc3VwcG9y dCBmb3Igb3ZlcndyaXRpbmcgZmxpcHMsIGhlbmNlCj4+ICsJCSAqIHN0YWxsIGZvciBwcmV2aW91 cyBvbmUgdG8gZXhlY3V0ZSBjb21wbGV0ZWx5LiAqLwo+PiArCQlyZXQgPSB3YWl0X2Zvcl9jb21w bGV0aW9uX3RpbWVvdXQoJmNvbW1pdC0+ZmxpcF9kb25lLAo+PiArCQkJCQkJICAxMCpIWik7Cj4+ ICsJCWlmIChyZXQgPT0gMCkKPj4gKwkJCURSTV9FUlJPUigiW1BMQU5FOiVkOiVzXSBmbGlwX2Rv bmUgdGltZWQgb3V0XG4iLAo+PiArCQkJCSAgcGxhbmUtPmJhc2UuaWQsIHBsYW5lLT5uYW1lKTsK Pj4gKwl9Cj4+ICB9Cj4+ICBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVyX3dhaXRfZm9y X2RlcGVuZGVuY2llcyk7Cj4+ICAKPj4gQEAgLTE4NDIsNiArMTk1NSwxMSBAQCB2b2lkIGRybV9h dG9taWNfaGVscGVyX2NvbW1pdF9od19kb25lKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRf c3RhdGUpCj4+ICAJCVdBUk5fT04obmV3X2NydGNfc3RhdGUtPmV2ZW50KTsKPj4gIAkJY29tcGxl dGVfYWxsKCZjb21taXQtPmh3X2RvbmUpOwo+PiAgCX0KPj4gKwo+PiArCWlmIChvbGRfc3RhdGUt PmZha2VfY29tbWl0KSB7Cj4+ICsJCWNvbXBsZXRlX2FsbCgmb2xkX3N0YXRlLT5mYWtlX2NvbW1p dC0+aHdfZG9uZSk7Cj4+ICsJCWNvbXBsZXRlX2FsbCgmb2xkX3N0YXRlLT5mYWtlX2NvbW1pdC0+ ZmxpcF9kb25lKTsKPj4gKwl9Cj4+ICB9Cj4+ICBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVs cGVyX2NvbW1pdF9od19kb25lKTsKPj4gIAo+PiBAQCAtMTg3NSw2ICsxOTkzLDkgQEAgdm9pZCBk cm1fYXRvbWljX2hlbHBlcl9jb21taXRfY2xlYW51cF9kb25lKHN0cnVjdCBkcm1fYXRvbWljX3N0 YXRlICpvbGRfc3RhdGUpCj4+ICAJCWxpc3RfZGVsKCZjb21taXQtPmNvbW1pdF9lbnRyeSk7Cj4+ ICAJCXNwaW5fdW5sb2NrKCZjcnRjLT5jb21taXRfbG9jayk7Cj4+ICAJfQo+PiArCj4+ICsJaWYg KG9sZF9zdGF0ZS0+ZmFrZV9jb21taXQpCj4+ICsJCWNvbXBsZXRlX2FsbCgmb2xkX3N0YXRlLT5m YWtlX2NvbW1pdC0+Y2xlYW51cF9kb25lKTsKPj4gIH0KPj4gIEVYUE9SVF9TWU1CT0woZHJtX2F0 b21pY19oZWxwZXJfY29tbWl0X2NsZWFudXBfZG9uZSk7Cj4+ICAKPj4gQEAgLTIyNTQsNiArMjM3 NSwxNSBAQCBpbnQgZHJtX2F0b21pY19oZWxwZXJfc3dhcF9zdGF0ZShzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSAqc3RhdGUsCj4+ICAJc3RydWN0IGRybV9wcml2YXRlX3N0YXRlICpvbGRfb2JqX3N0 YXRlLCAqbmV3X29ial9zdGF0ZTsKPj4gIAo+PiAgCWlmIChzdGFsbCkgewo+PiArCQkvKgo+PiAr CQkgKiBXZSBoYXZlIHRvIHN0YWxsIGZvciBod19kb25lIGhlcmUgYmVmb3JlCj4+ICsJCSAqIGRy bV9hdG9taWNfaGVscGVyX3dhaXRfZm9yX2RlcGVuZGVuY2llcygpIGJlY2F1c2UgZmxpcAo+PiAr CQkgKiBkZXB0aCA+IDEgaXMgbm90IHlldCBzdXBwb3J0ZWQgYnkgYWxsIGRyaXZlcnMuIEFzIGxv bmcgYXMKPj4gKwkJICogb2JqLT5zdGF0ZSBpcyBkaXJlY3RseSBkZXJlZmVyZW5jZWQgYW55d2hl cmUgaW4gdGhlIGRyaXZlcnMKPj4gKwkJICogYXRvbWljX2NvbW1pdF90YWlsIGZ1bmN0aW9uLCB0 aGVuIGl0J3MgdW5zYWZlIHRvIHN3YXAgc3RhdGUKPj4gKwkJICogYmVmb3JlIGRybV9hdG9taWNf aGVscGVyX2NvbW1pdF9od19kb25lKCkgaXMgY2FsbGVkLgo+PiArCQkgKi8KPj4gKwo+PiAgCQlm b3JfZWFjaF9vbGRfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0Yywgb2xkX2NydGNfc3RhdGUsIGkp IHsKPj4gIAkJCWNvbW1pdCA9IG9sZF9jcnRjX3N0YXRlLT5jb21taXQ7Cj4+ICAKPj4gQEAgLTIy NjQsNiArMjM5NCwyOCBAQCBpbnQgZHJtX2F0b21pY19oZWxwZXJfc3dhcF9zdGF0ZShzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4+ICAJCQlpZiAocmV0KQo+PiAgCQkJCXJldHVybiBy ZXQ7Cj4+ICAJCX0KPj4gKwo+PiArCQlmb3JfZWFjaF9vbGRfY29ubmVjdG9yX2luX3N0YXRlKHN0 YXRlLCBjb25uZWN0b3IsIG9sZF9jb25uX3N0YXRlLCBpKSB7Cj4+ICsJCQljb21taXQgPSBvbGRf Y29ubl9zdGF0ZS0+Y29tbWl0Owo+PiArCj4+ICsJCQlpZiAoIWNvbW1pdCkKPj4gKwkJCQljb250 aW51ZTsKPj4gKwo+PiArCQkJcmV0ID0gd2FpdF9mb3JfY29tcGxldGlvbl9pbnRlcnJ1cHRpYmxl KCZjb21taXQtPmh3X2RvbmUpOwo+PiArCQkJaWYgKHJldCkKPj4gKwkJCQlyZXR1cm4gcmV0Owo+ PiArCQl9Cj4+ICsKPj4gKwkJZm9yX2VhY2hfb2xkX3BsYW5lX2luX3N0YXRlKHN0YXRlLCBwbGFu ZSwgb2xkX3BsYW5lX3N0YXRlLCBpKSB7Cj4+ICsJCQljb21taXQgPSBvbGRfcGxhbmVfc3RhdGUt PmNvbW1pdDsKPj4gKwo+PiArCQkJaWYgKCFjb21taXQpCj4+ICsJCQkJY29udGludWU7Cj4+ICsK Pj4gKwkJCXJldCA9IHdhaXRfZm9yX2NvbXBsZXRpb25faW50ZXJydXB0aWJsZSgmY29tbWl0LT5o d19kb25lKTsKPj4gKwkJCWlmIChyZXQpCj4+ICsJCQkJcmV0dXJuIHJldDsKPj4gKwkJfQo+PiAg CX0KPj4gIAo+PiAgCWZvcl9lYWNoX29sZG5ld19jb25uZWN0b3JfaW5fc3RhdGUoc3RhdGUsIGNv bm5lY3Rvciwgb2xkX2Nvbm5fc3RhdGUsIG5ld19jb25uX3N0YXRlLCBpKSB7Cj4+IEBAIC0zMjQ2 LDYgKzMzOTgsNyBAQCB2b2lkIF9fZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfZHVwbGljYXRlX3N0 YXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+PiAgCQlkcm1fZnJhbWVidWZmZXJfZ2V0KHN0 YXRlLT5mYik7Cj4+ICAKPj4gIAlzdGF0ZS0+ZmVuY2UgPSBOVUxMOwo+PiArCXN0YXRlLT5jb21t aXQgPSBOVUxMOwo+PiAgfQo+PiAgRVhQT1JUX1NZTUJPTChfX2RybV9hdG9taWNfaGVscGVyX3Bs YW5lX2R1cGxpY2F0ZV9zdGF0ZSk7Cj4+ICAKPj4gQEAgLTMyODcsNiArMzQ0MCw5IEBAIHZvaWQg X19kcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kZXN0cm95X3N0YXRlKHN0cnVjdCBkcm1fcGxhbmVf c3RhdGUgKnN0YXRlKQo+PiAgCj4+ICAJaWYgKHN0YXRlLT5mZW5jZSkKPj4gIAkJZG1hX2ZlbmNl X3B1dChzdGF0ZS0+ZmVuY2UpOwo+PiArCj4+ICsJaWYgKHN0YXRlLT5jb21taXQpCj4+ICsJCWRy bV9jcnRjX2NvbW1pdF9wdXQoc3RhdGUtPmNvbW1pdCk7Cj4+ICB9Cj4+ICBFWFBPUlRfU1lNQk9M KF9fZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfZGVzdHJveV9zdGF0ZSk7Cj4+ICAKPj4gQEAgLTMz NjUsNiArMzUyMSw3IEBAIF9fZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2R1cGxpY2F0ZV9z dGF0ZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+PiAgCW1lbWNweShzdGF0ZSwg Y29ubmVjdG9yLT5zdGF0ZSwgc2l6ZW9mKCpzdGF0ZSkpOwo+PiAgCWlmIChzdGF0ZS0+Y3J0YykK Pj4gIAkJZHJtX2Nvbm5lY3Rvcl9nZXQoY29ubmVjdG9yKTsKPj4gKwlzdGF0ZS0+Y29tbWl0ID0g TlVMTDsKPj4gIH0KPj4gIEVYUE9SVF9TWU1CT0woX19kcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0 b3JfZHVwbGljYXRlX3N0YXRlKTsKPj4gIAo+PiBAQCAtMzQ5MSw2ICszNjQ4LDkgQEAgX19kcm1f YXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZGVzdHJveV9zdGF0ZShzdHJ1Y3QgZHJtX2Nvbm5lY3Rv cl9zdGF0ZSAqc3RhdGUpCj4+ICB7Cj4+ICAJaWYgKHN0YXRlLT5jcnRjKQo+PiAgCQlkcm1fY29u bmVjdG9yX3B1dChzdGF0ZS0+Y29ubmVjdG9yKTsKPj4gKwo+PiArCWlmIChzdGF0ZS0+Y29tbWl0 KQo+PiArCQlkcm1fY3J0Y19jb21taXRfcHV0KHN0YXRlLT5jb21taXQpOwo+PiAgfQo+PiAgRVhQ T1JUX1NZTUJPTChfX2RybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kZXN0cm95X3N0YXRlKTsK Pj4gIAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+IGluZGV4IGE2Y2YxYzIw YzcxMi4uN2FiYmM3NjFhNjM1IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jCj4+IEBAIC0xMzEzMiw4ICsxMzEzMiwxMCBAQCBpbnRlbF9sZWdhY3lfY3Vyc29yX3VwZGF0 ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPj4gIAo+PiAgCS8qIFN3YXAgcGxhbmUgc3RhdGUg Ki8KPj4gIAluZXdfcGxhbmVfc3RhdGUtPmZlbmNlID0gb2xkX3BsYW5lX3N0YXRlLT5mZW5jZTsK Pj4gKwluZXdfcGxhbmVfc3RhdGUtPmNvbW1pdCA9IG9sZF9wbGFuZV9zdGF0ZS0+Y29tbWl0Owo+ PiAgCSp0b19pbnRlbF9wbGFuZV9zdGF0ZShvbGRfcGxhbmVfc3RhdGUpID0gKnRvX2ludGVsX3Bs YW5lX3N0YXRlKG5ld19wbGFuZV9zdGF0ZSk7Cj4+ICAJbmV3X3BsYW5lX3N0YXRlLT5mZW5jZSA9 IE5VTEw7Cj4+ICsJbmV3X3BsYW5lX3N0YXRlLT5jb21taXQgPSBOVUxMOwo+PiAgCW5ld19wbGFu ZV9zdGF0ZS0+ZmIgPSBvbGRfZmI7Cj4+ICAJdG9faW50ZWxfcGxhbmVfc3RhdGUobmV3X3BsYW5l X3N0YXRlKS0+dm1hID0gTlVMTDsKPj4gIAo+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJt X2F0b21pYy5oIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oCj4+IGluZGV4IGE4MGE4ZGFkZWYw MC4uMDdhNzFkYWEzNTgyIDEwMDY0NAo+PiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fYXRvbWljLmgK Pj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oCj4+IEBAIC0yMzYsNiArMjM2LDE4IEBA IHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlIHsKPj4gIAlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWly ZV9jdHggKmFjcXVpcmVfY3R4Owo+PiAgCj4+ICAJLyoqCj4+ICsJICogQGZha2VfY29tbWl0Ogo+ PiArCSAqCj4+ICsJICogVXNlZCBmb3Igc2lnbmFsaW5nIHVuYm91bmQgcGxhbmVzL2Nvbm5lY3Rv cnMuCj4+ICsJICogV2hlbiBhIGNvbm5lY3RvciBvciBwbGFuZSBpcyBub3QgYm91bmQgdG8gYW55 IENSVEMsIGl0J3Mgc3RpbGwgaW1wb3J0YW50Cj4+ICsJICogdG8gcHJlc2VydmUgbGluZWFyaXR5 IHRvIHByZXZlbnQgdGhlIGF0b21pYyBzdGF0ZXMgZnJvbSBiZWluZyBmcmVlZCB0byBlYXJseS4K Pj4gKwkgKgo+PiArCSAqIFRoaXMgY29tbWl0IChpZiBzZXQpIGlzIG5vdCBib3VuZCB0byBhbnkg Y3J0YywgYnV0IHdpbGwgYmUgY29tcGxldGVkIHdoZW4KPj4gKwkgKiBkcm1fYXRvbWljX2hlbHBl cl9jb21taXRfaHdfZG9uZSgpIGlzIGNhbGxlZC4KPj4gKwkgKi8KPj4gKwlzdHJ1Y3QgZHJtX2Ny dGNfY29tbWl0ICpmYWtlX2NvbW1pdDsKPj4gKwo+PiArCS8qKgo+PiAgCSAqIEBjb21taXRfd29y azoKPj4gIAkgKgo+PiAgCSAqIFdvcmsgaXRlbSB3aGljaCBjYW4gYmUgdXNlZCBieSB0aGUgZHJp dmVyIG9yIGhlbHBlcnMgdG8gZXhlY3V0ZSB0aGUKPj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJt L2RybV9jb25uZWN0b3IuaCBiL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaAo+PiBpbmRleCBl YThkYTQwMWM5M2MuLjg4Mzc2NDlkMTZlOCAxMDA2NDQKPj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJt X2Nvbm5lY3Rvci5oCj4+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaAo+PiBAQCAt MzQ3LDYgKzM0NywxMyBAQCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSB7Cj4+ICAKPj4gIAlz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7Cj4+ICAKPj4gKwkvKioKPj4gKwkgKiBAY29t bWl0OiBUcmFja3MgdGhlIHBlbmRpbmcgY29tbWl0IHRvIHByZXZlbnQgdXNlLWFmdGVyLWZyZWUg Y29uZGl0aW9ucy4KPj4gKwkgKgo+PiArCSAqIElzIG9ubHkgc2V0IHdoZW4gQGNydGMgaXMgTlVM TC4KPj4gKwkgKi8KPj4gKwlzdHJ1Y3QgZHJtX2NydGNfY29tbWl0ICpjb21taXQ7Cj4+ICsKPj4g IAlzdHJ1Y3QgZHJtX3R2X2Nvbm5lY3Rvcl9zdGF0ZSB0djsKPj4gIAo+PiAgCS8qKgo+PiBkaWZm IC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX3BsYW5lLmggYi9pbmNsdWRlL2RybS9kcm1fcGxhbmUu aAo+PiBpbmRleCA3M2Y5MGY5ZDA1N2YuLjdkOTYxMTZmZDRjNCAxMDA2NDQKPj4gLS0tIGEvaW5j bHVkZS9kcm0vZHJtX3BsYW5lLmgKPj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX3BsYW5lLmgKPj4g QEAgLTEyMyw2ICsxMjMsMTMgQEAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSB7Cj4+ICAJICovCj4+ ICAJYm9vbCB2aXNpYmxlOwo+PiAgCj4+ICsJLyoqCj4+ICsJICogQGNvbW1pdDogVHJhY2tzIHRo ZSBwZW5kaW5nIGNvbW1pdCB0byBwcmV2ZW50IHVzZS1hZnRlci1mcmVlIGNvbmRpdGlvbnMuCj4+ ICsJICoKPj4gKwkgKiBJcyBvbmx5IHNldCB3aGVuIEBjcnRjIGlzIE5VTEwuCj4+ICsJICovCj4+ ICsJc3RydWN0IGRybV9jcnRjX2NvbW1pdCAqY29tbWl0Owo+PiArCj4+ICAJc3RydWN0IGRybV9h dG9taWNfc3RhdGUgKnN0YXRlOwo+PiAgfTsKPj4gIAo+PiAtLSAKPj4gMi4xMS4wCj4+Cj4+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+IGRyaS1kZXZl bCBtYWlsaW5nIGxpc3QKPj4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+PiBodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBt YWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=