From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v2 5/6] drm/atomic: Fix freeing connector/plane state too early by tracking commits, v3. Date: Thu, 7 Sep 2017 12:05:57 +0200 Message-ID: <20170907100557.mdkhclxhfdug4bge@phenom.ffwll.local> References: <20170904104838.23822-1-maarten.lankhorst@linux.intel.com> <20170904104838.23822-6-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20170904104838.23822-6-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org, Laurent Pinchart , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBTZXAgMDQsIDIwMTcgYXQgMTI6NDg6MzdQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gQ3VycmVudGx5IHdlIG5lYXRseSB0cmFjayB0aGUgY3J0YyBzdGF0ZSwgYnV0 IGZvcmdldCB0byBsb29rIGF0Cj4gcGxhbmUvY29ubmVjdG9yIHN0YXRlLgo+IAo+IFdoZW4gZG9p bmcgYSBub25ibG9ja2luZyBtb2Rlc2V0LCBpbW1lZGlhdGVseSBmb2xsb3dlZCBieSBhIHNldHBy b3AKPiBiZWZvcmUgdGhlIG1vZGVzZXQgY29tcGxldGVzLCB0aGUgc2V0cHJvcCB3aWxsIHNlZSB0 aGUgbW9kZXNldHMgbmV3Cj4gc3RhdGUgYXMgdGhlIG9sZCBzdGF0ZSBhbmQgZnJlZSBpdC4KPiAK PiBUaGlzIGhhcyB0byBiZSBzb2x2ZWQgYnkgd2FpdGluZyBmb3IgaHdfZG9uZSBvbiB0aGUgY29u bmVjdG9yLCBldmVuCj4gaWYgaXQncyBub3QgYXNzaWduZWQgdG8gYSBjcnRjLiBXaGVuIGEgY29u bmVjdG9yIGlzIHVuYm91bmQgd2UgdGFrZQo+IHRoZSBsYXN0IGNydGMgY29tbWl0LCBhbmQgd2hl biBpdCBzdGF5cyB1bmJvdW5kIHdlIGNyZWF0ZSBhIG5ldwo+IGZha2UgY3J0YyBjb21taXQgZm9y IHRoYXQgZ2V0cyBzaWduYWxlZCBvbiBod19kb25lIGZvciBhbGwgdGhlCj4gcGxhbmVzL2Nvbm5l Y3RvcnMuCj4gCj4gV2Ugd2FpdCBmb3IgaXQgdGhlIHNhbWUgd2F5IGFzIHdlIGRvIGZvciBjcnRj J3MsIHdoaWNoIHdpbGwgbWFrZQo+IHN1cmUgd2UgbmV2ZXIgcnVuIGludG8gYSB1c2UtYWZ0ZXIt ZnJlZSBzaXR1YXRpb24uCj4gCj4gQ2hhbmdlcyBzaW5jZSB2MToKPiAtIE9ubHkgY3JlYXRlIGEg c2luZ2xlIGRpc2FibGUgY29tbWl0LiAoZGFudmV0KQo+IC0gRml4IGxlYWsgaW4gaW50ZWxfbGVn YWN5X2N1cnNvcl91cGRhdGUuCj4gQ2hhbmdlcyBzaW5jZSB2MjoKPiAtIE1ha2UgcmVmZXJlbmNl IGNvdW50aW5nIGluIGRybV9hdG9taWNfaGVscGVyX3NldHVwX2NvbW1pdAo+ICAgbW9yZSBvYnZp b3VzLiAocGluY2hhcnRsKQo+IC0gQ2FsbCBjbGVhbnVwX2RvbmUgZm9yIGZha2UgY29tbWl0LiAo ZGFudmV0KQo+IC0gQWRkIGNvbW1lbnRzIHRvIGRybV9hdG9taWNfaGVscGVyX3NldHVwX2NvbW1p dC4gKGRhbnZldCwgcGluY2hhcnRsKQo+IC0gQWRkIGNvbW1lbnQgdG8gZHJtX2F0b21pY19oZWxw ZXJfc3dhcF9zdGF0ZS4gKHBpbmNoYXJ0bCkKPiAKPiBTaWduZWQtb2ZmLWJ5OiBNYWFydGVuIExh bmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+IFRlc3RjYXNlOiBr bXNfYXRvbWljX3RyYW5zaXRpb24ucGxhbmUtdXNlLWFmdGVyLW5vbmJsb2NraW5nLXVuYmluZCoK PiBDYzogTGF1cmVudCBQaW5jaGFydCA8bGF1cmVudC5waW5jaGFydEBpZGVhc29uYm9hcmQuY29t Pgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jICAgICAgICAgfCAgIDQgKwo+ ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyAgfCAxNzIgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jIHwgICAyICsKPiAgaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oICAgICAgICAgICAgIHwg IDEyICsrKwo+ICBpbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmggICAgICAgICAgfCAgIDcgKysK PiAgaW5jbHVkZS9kcm0vZHJtX3BsYW5lLmggICAgICAgICAgICAgIHwgICA3ICsrCj4gIDYgZmls ZXMgY2hhbmdlZCwgMTk4IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJt X2F0b21pYy5jCj4gaW5kZXggMmNjZTQ4ZjIwM2UwLi43NWY1Zjc0ZGU5YmYgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fYXRvbWljLmMKPiBAQCAtMTkyLDYgKzE5MiwxMCBAQCB2b2lkIGRybV9hdG9taWNfc3RhdGVf ZGVmYXVsdF9jbGVhcihzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIAl9Cj4gIAlz dGF0ZS0+bnVtX3ByaXZhdGVfb2JqcyA9IDA7Cj4gIAo+ICsJaWYgKHN0YXRlLT5mYWtlX2NvbW1p dCkgewo+ICsJCWRybV9jcnRjX2NvbW1pdF9wdXQoc3RhdGUtPmZha2VfY29tbWl0KTsKPiArCQlz dGF0ZS0+ZmFrZV9jb21taXQgPSBOVUxMOwo+ICsJfQo+ICB9Cj4gIEVYUE9SVF9TWU1CT0woZHJt X2F0b21pY19zdGF0ZV9kZWZhdWx0X2NsZWFyKTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNf aGVscGVyLmMKPiBpbmRleCAwNDYyOWQ4ODMxMTQuLmM4MWQ0NjkyN2E3NCAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4gQEAgLTE2NjcsNiArMTY2NywzOCBAQCBzdGF0aWMg dm9pZCByZWxlYXNlX2NydGNfY29tbWl0KHN0cnVjdCBjb21wbGV0aW9uICpjb21wbGV0aW9uKQo+ ICAJZHJtX2NydGNfY29tbWl0X3B1dChjb21taXQpOwo+ICB9Cj4gIAo+ICtzdGF0aWMgdm9pZCBp bml0X2NvbW1pdChzdHJ1Y3QgZHJtX2NydGNfY29tbWl0ICpjb21taXQsIHN0cnVjdCBkcm1fY3J0 YyAqY3J0YykKPiArewo+ICsJaW5pdF9jb21wbGV0aW9uKCZjb21taXQtPmZsaXBfZG9uZSk7Cj4g Kwlpbml0X2NvbXBsZXRpb24oJmNvbW1pdC0+aHdfZG9uZSk7Cj4gKwlpbml0X2NvbXBsZXRpb24o JmNvbW1pdC0+Y2xlYW51cF9kb25lKTsKPiArCUlOSVRfTElTVF9IRUFEKCZjb21taXQtPmNvbW1p dF9lbnRyeSk7Cj4gKwlrcmVmX2luaXQoJmNvbW1pdC0+cmVmKTsKPiArCWNvbW1pdC0+Y3J0YyA9 IGNydGM7Cj4gK30KPiArCj4gK3N0YXRpYyBzdHJ1Y3QgZHJtX2NydGNfY29tbWl0ICoKPiArY3J0 Y19vcl9mYWtlX2NvbW1pdChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsIHN0cnVjdCBk cm1fY3J0YyAqY3J0YykKCkJpa2VzaGVkOiBXb3VsZCBiZSBuaWNlIGlmIHRoaXMgZnVuY3Rpb24g ZGlyZWN0bHkgaW5jcmVhc2VzIHRoZSByZWZjb3VudCwKaW5zdGVhZCBvZiBpbXBvc2luZyB0aGlz IG9uIGFsbCBjYWxsZXJzLiBXb3VsZCBuZWVkIGEgcmVuYW1lIHRvbyBsaWtlCmNydGNfb3JfZmFr ZV9jb21taXRfZ2V0KCkuCgpCdXQgc2luY2UgdGhpcyBidWcgaXMgcmFuZG9tbHkga2lsbGluZyBv dXIgaHN3IENJIGFuZCBjYXVzaW5nIGxvdHMgb2YKbm9pc2UgYmV0dGVyIHRvIHB1c2ggYXMtaXMg YW5kIHBvbGlzaCBsYXRlciBvbi4KClJldmlld2VkLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwu dmV0dGVyQGZmd2xsLmNoPgoKPiArewo+ICsJaWYgKGNydGMpIHsKPiArCQlzdHJ1Y3QgZHJtX2Ny dGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlOwo+ICsKPiArCQluZXdfY3J0Y19zdGF0ZSA9IGRybV9h dG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKPiArCj4gKwkJcmV0dXJuIG5l d19jcnRjX3N0YXRlLT5jb21taXQ7Cj4gKwl9Cj4gKwo+ICsJaWYgKCFzdGF0ZS0+ZmFrZV9jb21t aXQpIHsKPiArCQlzdGF0ZS0+ZmFrZV9jb21taXQgPSBremFsbG9jKHNpemVvZigqc3RhdGUtPmZh a2VfY29tbWl0KSwgR0ZQX0tFUk5FTCk7Cj4gKwkJaWYgKCFzdGF0ZS0+ZmFrZV9jb21taXQpCj4g KwkJCXJldHVybiBOVUxMOwo+ICsKPiArCQlpbml0X2NvbW1pdChzdGF0ZS0+ZmFrZV9jb21taXQs IE5VTEwpOwo+ICsJfQo+ICsKPiArCXJldHVybiBzdGF0ZS0+ZmFrZV9jb21taXQ7Cj4gK30KPiAr Cj4gIC8qKgo+ICAgKiBkcm1fYXRvbWljX2hlbHBlcl9zZXR1cF9jb21taXQgLSBzZXR1cCBwb3Nz aWJseSBub25ibG9ja2luZyBjb21taXQKPiAgICogQHN0YXRlOiBuZXcgbW9kZXNldCBzdGF0ZSB0 byBiZSBjb21taXR0ZWQKPiBAQCAtMTcxNSw2ICsxNzQ3LDEwIEBAIGludCBkcm1fYXRvbWljX2hl bHBlcl9zZXR1cF9jb21taXQoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ICB7Cj4g IAlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4gIAlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm9sZF9j cnRjX3N0YXRlLCAqbmV3X2NydGNfc3RhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bjsKPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRfY29ubl9zdGF0ZSwgKm5ld19j b25uX3N0YXRlOwo+ICsJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4gKwlzdHJ1Y3QgZHJtX3Bs YW5lX3N0YXRlICpvbGRfcGxhbmVfc3RhdGUsICpuZXdfcGxhbmVfc3RhdGU7Cj4gIAlzdHJ1Y3Qg ZHJtX2NydGNfY29tbWl0ICpjb21taXQ7Cj4gIAlpbnQgaSwgcmV0Owo+ICAKPiBAQCAtMTcyMywx MiArMTc1OSw3IEBAIGludCBkcm1fYXRvbWljX2hlbHBlcl9zZXR1cF9jb21taXQoc3RydWN0IGRy bV9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ICAJCWlmICghY29tbWl0KQo+ICAJCQlyZXR1cm4gLUVO T01FTTsKPiAgCj4gLQkJaW5pdF9jb21wbGV0aW9uKCZjb21taXQtPmZsaXBfZG9uZSk7Cj4gLQkJ aW5pdF9jb21wbGV0aW9uKCZjb21taXQtPmh3X2RvbmUpOwo+IC0JCWluaXRfY29tcGxldGlvbigm Y29tbWl0LT5jbGVhbnVwX2RvbmUpOwo+IC0JCUlOSVRfTElTVF9IRUFEKCZjb21taXQtPmNvbW1p dF9lbnRyeSk7Cj4gLQkJa3JlZl9pbml0KCZjb21taXQtPnJlZik7Cj4gLQkJY29tbWl0LT5jcnRj ID0gY3J0YzsKPiArCQlpbml0X2NvbW1pdChjb21taXQsIGNydGMpOwo+ICAKPiAgCQluZXdfY3J0 Y19zdGF0ZS0+Y29tbWl0ID0gY29tbWl0Owo+ICAKPiBAQCAtMTc2NCw2ICsxNzk1LDQyIEBAIGlu dCBkcm1fYXRvbWljX2hlbHBlcl9zZXR1cF9jb21taXQoc3RydWN0IGRybV9hdG9taWNfc3RhdGUg KnN0YXRlLAo+ICAJCWRybV9jcnRjX2NvbW1pdF9nZXQoY29tbWl0KTsKPiAgCX0KPiAgCj4gKwlm b3JfZWFjaF9vbGRuZXdfY29ubmVjdG9yX2luX3N0YXRlKHN0YXRlLCBjb25uLCBvbGRfY29ubl9z dGF0ZSwgbmV3X2Nvbm5fc3RhdGUsIGkpIHsKPiArCQkvKiBjb21taXQgdHJhY2tlZCB0aHJvdWdo IG5ld19jcnRjX3N0YXRlLT5jb21taXQsIG5vIG5lZWQgdG8gZG8gaXQgZXhwbGljaXRseSAqLwo+ ICsJCWlmIChuZXdfY29ubl9zdGF0ZS0+Y3J0YykKPiArCQkJY29udGludWU7Cj4gKwo+ICsJCS8q IFVzZXJzcGFjZSBpcyBub3QgYWxsb3dlZCB0byBnZXQgYWhlYWQgb2YgdGhlIHByZXZpb3VzCj4g KwkJICogY29tbWl0IHdpdGggbm9uYmxvY2tpbmcgb25lcy4gKi8KPiArCQlpZiAobm9uYmxvY2sg JiYgb2xkX2Nvbm5fc3RhdGUtPmNvbW1pdCAmJgo+ICsJCSAgICAhdHJ5X3dhaXRfZm9yX2NvbXBs ZXRpb24oJm9sZF9jb25uX3N0YXRlLT5jb21taXQtPmZsaXBfZG9uZSkpCj4gKwkJCXJldHVybiAt RUJVU1k7Cj4gKwo+ICsJCWNvbW1pdCA9IGNydGNfb3JfZmFrZV9jb21taXQoc3RhdGUsIG9sZF9j b25uX3N0YXRlLT5jcnRjKTsKPiArCQlpZiAoIWNvbW1pdCkKPiArCQkJcmV0dXJuIC1FTk9NRU07 Cj4gKwo+ICsJCW5ld19jb25uX3N0YXRlLT5jb21taXQgPSBkcm1fY3J0Y19jb21taXRfZ2V0KGNv bW1pdCk7Cj4gKwl9Cj4gKwo+ICsJZm9yX2VhY2hfb2xkbmV3X3BsYW5lX2luX3N0YXRlKHN0YXRl LCBwbGFuZSwgb2xkX3BsYW5lX3N0YXRlLCBuZXdfcGxhbmVfc3RhdGUsIGkpIHsKPiArCQkvKiBj b21taXQgdHJhY2tlZCB0aHJvdWdoIG5ld19jcnRjX3N0YXRlLT5jb21taXQsIG5vIG5lZWQgdG8g ZG8gaXQgZXhwbGljaXRseSAqLwo+ICsJCWlmIChuZXdfcGxhbmVfc3RhdGUtPmNydGMpCj4gKwkJ CWNvbnRpbnVlOwo+ICsKPiArCQkvKiBVc2Vyc3BhY2UgaXMgbm90IGFsbG93ZWQgdG8gZ2V0IGFo ZWFkIG9mIHRoZSBwcmV2aW91cwo+ICsJCSAqIGNvbW1pdCB3aXRoIG5vbmJsb2NraW5nIG9uZXMu ICovCj4gKwkJaWYgKG5vbmJsb2NrICYmIG9sZF9wbGFuZV9zdGF0ZS0+Y29tbWl0ICYmCj4gKwkJ ICAgICF0cnlfd2FpdF9mb3JfY29tcGxldGlvbigmb2xkX3BsYW5lX3N0YXRlLT5jb21taXQtPmZs aXBfZG9uZSkpCj4gKwkJCXJldHVybiAtRUJVU1k7Cj4gKwo+ICsJCWNvbW1pdCA9IGNydGNfb3Jf ZmFrZV9jb21taXQoc3RhdGUsIG9sZF9wbGFuZV9zdGF0ZS0+Y3J0Yyk7Cj4gKwkJaWYgKCFjb21t aXQpCj4gKwkJCXJldHVybiAtRU5PTUVNOwo+ICsKPiArCQluZXdfcGxhbmVfc3RhdGUtPmNvbW1p dCA9IGRybV9jcnRjX2NvbW1pdF9nZXQoY29tbWl0KTsKPiArCX0KPiArCj4gIAlyZXR1cm4gMDsK PiAgfQo+ICBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVyX3NldHVwX2NvbW1pdCk7Cj4g QEAgLTE3ODQsNiArMTg1MSwxMCBAQCB2b2lkIGRybV9hdG9taWNfaGVscGVyX3dhaXRfZm9yX2Rl cGVuZGVuY2llcyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQo+ICB7Cj4gIAlz dHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4gIAlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm9sZF9jcnRj X3N0YXRlOwo+ICsJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4gKwlzdHJ1Y3QgZHJtX3BsYW5l X3N0YXRlICpvbGRfcGxhbmVfc3RhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubjsK PiArCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRfY29ubl9zdGF0ZTsKPiAgCXN0cnVj dCBkcm1fY3J0Y19jb21taXQgKmNvbW1pdDsKPiAgCWludCBpOwo+ICAJbG9uZyByZXQ7Cj4gQEAg LTE4MDgsNiArMTg3OSw0OCBAQCB2b2lkIGRybV9hdG9taWNfaGVscGVyX3dhaXRfZm9yX2RlcGVu ZGVuY2llcyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQo+ICAJCQlEUk1fRVJS T1IoIltDUlRDOiVkOiVzXSBmbGlwX2RvbmUgdGltZWQgb3V0XG4iLAo+ICAJCQkJICBjcnRjLT5i YXNlLmlkLCBjcnRjLT5uYW1lKTsKPiAgCX0KPiArCj4gKwlmb3JfZWFjaF9vbGRfY29ubmVjdG9y X2luX3N0YXRlKG9sZF9zdGF0ZSwgY29ubiwgb2xkX2Nvbm5fc3RhdGUsIGkpIHsKPiArCQljb21t aXQgPSBvbGRfY29ubl9zdGF0ZS0+Y29tbWl0Owo+ICsKPiArCQlpZiAoIWNvbW1pdCkKPiArCQkJ Y29udGludWU7Cj4gKwo+ICsJCXJldCA9IHdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmY29t bWl0LT5od19kb25lLAo+ICsJCQkJCQkgIDEwKkhaKTsKPiArCQlpZiAocmV0ID09IDApCj4gKwkJ CURSTV9FUlJPUigiW0NPTk5FQ1RPUjolZDolc10gaHdfZG9uZSB0aW1lZCBvdXRcbiIsCj4gKwkJ CQkgIGNvbm4tPmJhc2UuaWQsIGNvbm4tPm5hbWUpOwo+ICsKPiArCQkvKiBDdXJyZW50bHkgbm8g c3VwcG9ydCBmb3Igb3ZlcndyaXRpbmcgZmxpcHMsIGhlbmNlCj4gKwkJICogc3RhbGwgZm9yIHBy ZXZpb3VzIG9uZSB0byBleGVjdXRlIGNvbXBsZXRlbHkuICovCj4gKwkJcmV0ID0gd2FpdF9mb3Jf Y29tcGxldGlvbl90aW1lb3V0KCZjb21taXQtPmZsaXBfZG9uZSwKPiArCQkJCQkJICAxMCpIWik7 Cj4gKwkJaWYgKHJldCA9PSAwKQo+ICsJCQlEUk1fRVJST1IoIltDT05ORUNUT1I6JWQ6JXNdIGZs aXBfZG9uZSB0aW1lZCBvdXRcbiIsCj4gKwkJCQkgIGNvbm4tPmJhc2UuaWQsIGNvbm4tPm5hbWUp Owo+ICsJfQo+ICsKPiArCWZvcl9lYWNoX29sZF9wbGFuZV9pbl9zdGF0ZShvbGRfc3RhdGUsIHBs YW5lLCBvbGRfcGxhbmVfc3RhdGUsIGkpIHsKPiArCQljb21taXQgPSBvbGRfcGxhbmVfc3RhdGUt PmNvbW1pdDsKPiArCj4gKwkJaWYgKCFjb21taXQpCj4gKwkJCWNvbnRpbnVlOwo+ICsKPiArCQly ZXQgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoJmNvbW1pdC0+aHdfZG9uZSwKPiArCQkJ CQkJICAxMCpIWik7Cj4gKwkJaWYgKHJldCA9PSAwKQo+ICsJCQlEUk1fRVJST1IoIltQTEFORTol ZDolc10gaHdfZG9uZSB0aW1lZCBvdXRcbiIsCj4gKwkJCQkgIHBsYW5lLT5iYXNlLmlkLCBwbGFu ZS0+bmFtZSk7Cj4gKwo+ICsJCS8qIEN1cnJlbnRseSBubyBzdXBwb3J0IGZvciBvdmVyd3JpdGlu ZyBmbGlwcywgaGVuY2UKPiArCQkgKiBzdGFsbCBmb3IgcHJldmlvdXMgb25lIHRvIGV4ZWN1dGUg Y29tcGxldGVseS4gKi8KPiArCQlyZXQgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoJmNv bW1pdC0+ZmxpcF9kb25lLAo+ICsJCQkJCQkgIDEwKkhaKTsKPiArCQlpZiAocmV0ID09IDApCj4g KwkJCURSTV9FUlJPUigiW1BMQU5FOiVkOiVzXSBmbGlwX2RvbmUgdGltZWQgb3V0XG4iLAo+ICsJ CQkJICBwbGFuZS0+YmFzZS5pZCwgcGxhbmUtPm5hbWUpOwo+ICsJfQo+ICB9Cj4gIEVYUE9SVF9T WU1CT0woZHJtX2F0b21pY19oZWxwZXJfd2FpdF9mb3JfZGVwZW5kZW5jaWVzKTsKPiAgCj4gQEAg LTE4NDIsNiArMTk1NSwxMSBAQCB2b2lkIGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9od19kb25l KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUpCj4gIAkJV0FSTl9PTihuZXdfY3J0 Y19zdGF0ZS0+ZXZlbnQpOwo+ICAJCWNvbXBsZXRlX2FsbCgmY29tbWl0LT5od19kb25lKTsKPiAg CX0KPiArCj4gKwlpZiAob2xkX3N0YXRlLT5mYWtlX2NvbW1pdCkgewo+ICsJCWNvbXBsZXRlX2Fs bCgmb2xkX3N0YXRlLT5mYWtlX2NvbW1pdC0+aHdfZG9uZSk7Cj4gKwkJY29tcGxldGVfYWxsKCZv bGRfc3RhdGUtPmZha2VfY29tbWl0LT5mbGlwX2RvbmUpOwo+ICsJfQo+ICB9Cj4gIEVYUE9SVF9T WU1CT0woZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X2h3X2RvbmUpOwo+ICAKPiBAQCAtMTg3NSw2 ICsxOTkzLDkgQEAgdm9pZCBkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfY2xlYW51cF9kb25lKHN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUpCj4gIAkJbGlzdF9kZWwoJmNvbW1pdC0+ Y29tbWl0X2VudHJ5KTsKPiAgCQlzcGluX3VubG9jaygmY3J0Yy0+Y29tbWl0X2xvY2spOwo+ICAJ fQo+ICsKPiArCWlmIChvbGRfc3RhdGUtPmZha2VfY29tbWl0KQo+ICsJCWNvbXBsZXRlX2FsbCgm b2xkX3N0YXRlLT5mYWtlX2NvbW1pdC0+Y2xlYW51cF9kb25lKTsKPiAgfQo+ICBFWFBPUlRfU1lN Qk9MKGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9jbGVhbnVwX2RvbmUpOwo+ICAKPiBAQCAtMjI1 NCw2ICsyMzc1LDE1IEBAIGludCBkcm1fYXRvbWljX2hlbHBlcl9zd2FwX3N0YXRlKHN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKPiAgCXN0cnVjdCBkcm1fcHJpdmF0ZV9zdGF0ZSAqb2xk X29ial9zdGF0ZSwgKm5ld19vYmpfc3RhdGU7Cj4gIAo+ICAJaWYgKHN0YWxsKSB7Cj4gKwkJLyoK PiArCQkgKiBXZSBoYXZlIHRvIHN0YWxsIGZvciBod19kb25lIGhlcmUgYmVmb3JlCj4gKwkJICog ZHJtX2F0b21pY19oZWxwZXJfd2FpdF9mb3JfZGVwZW5kZW5jaWVzKCkgYmVjYXVzZSBmbGlwCj4g KwkJICogZGVwdGggPiAxIGlzIG5vdCB5ZXQgc3VwcG9ydGVkIGJ5IGFsbCBkcml2ZXJzLiBBcyBs b25nIGFzCj4gKwkJICogb2JqLT5zdGF0ZSBpcyBkaXJlY3RseSBkZXJlZmVyZW5jZWQgYW55d2hl cmUgaW4gdGhlIGRyaXZlcnMKPiArCQkgKiBhdG9taWNfY29tbWl0X3RhaWwgZnVuY3Rpb24sIHRo ZW4gaXQncyB1bnNhZmUgdG8gc3dhcCBzdGF0ZQo+ICsJCSAqIGJlZm9yZSBkcm1fYXRvbWljX2hl bHBlcl9jb21taXRfaHdfZG9uZSgpIGlzIGNhbGxlZC4KPiArCQkgKi8KPiArCj4gIAkJZm9yX2Vh Y2hfb2xkX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIG9sZF9jcnRjX3N0YXRlLCBpKSB7Cj4g IAkJCWNvbW1pdCA9IG9sZF9jcnRjX3N0YXRlLT5jb21taXQ7Cj4gIAo+IEBAIC0yMjY0LDYgKzIz OTQsMjggQEAgaW50IGRybV9hdG9taWNfaGVscGVyX3N3YXBfc3RhdGUoc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKnN0YXRlLAo+ICAJCQlpZiAocmV0KQo+ICAJCQkJcmV0dXJuIHJldDsKPiAgCQl9 Cj4gKwo+ICsJCWZvcl9lYWNoX29sZF9jb25uZWN0b3JfaW5fc3RhdGUoc3RhdGUsIGNvbm5lY3Rv ciwgb2xkX2Nvbm5fc3RhdGUsIGkpIHsKPiArCQkJY29tbWl0ID0gb2xkX2Nvbm5fc3RhdGUtPmNv bW1pdDsKPiArCj4gKwkJCWlmICghY29tbWl0KQo+ICsJCQkJY29udGludWU7Cj4gKwo+ICsJCQly ZXQgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX2ludGVycnVwdGlibGUoJmNvbW1pdC0+aHdfZG9uZSk7 Cj4gKwkJCWlmIChyZXQpCj4gKwkJCQlyZXR1cm4gcmV0Owo+ICsJCX0KPiArCj4gKwkJZm9yX2Vh Y2hfb2xkX3BsYW5lX2luX3N0YXRlKHN0YXRlLCBwbGFuZSwgb2xkX3BsYW5lX3N0YXRlLCBpKSB7 Cj4gKwkJCWNvbW1pdCA9IG9sZF9wbGFuZV9zdGF0ZS0+Y29tbWl0Owo+ICsKPiArCQkJaWYgKCFj b21taXQpCj4gKwkJCQljb250aW51ZTsKPiArCj4gKwkJCXJldCA9IHdhaXRfZm9yX2NvbXBsZXRp b25faW50ZXJydXB0aWJsZSgmY29tbWl0LT5od19kb25lKTsKPiArCQkJaWYgKHJldCkKPiArCQkJ CXJldHVybiByZXQ7Cj4gKwkJfQo+ICAJfQo+ICAKPiAgCWZvcl9lYWNoX29sZG5ld19jb25uZWN0 b3JfaW5fc3RhdGUoc3RhdGUsIGNvbm5lY3Rvciwgb2xkX2Nvbm5fc3RhdGUsIG5ld19jb25uX3N0 YXRlLCBpKSB7Cj4gQEAgLTMyNDYsNiArMzM5OCw3IEBAIHZvaWQgX19kcm1fYXRvbWljX2hlbHBl cl9wbGFuZV9kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAkJZHJt X2ZyYW1lYnVmZmVyX2dldChzdGF0ZS0+ZmIpOwo+ICAKPiAgCXN0YXRlLT5mZW5jZSA9IE5VTEw7 Cj4gKwlzdGF0ZS0+Y29tbWl0ID0gTlVMTDsKPiAgfQo+ICBFWFBPUlRfU1lNQk9MKF9fZHJtX2F0 b21pY19oZWxwZXJfcGxhbmVfZHVwbGljYXRlX3N0YXRlKTsKPiAgCj4gQEAgLTMyODcsNiArMzQ0 MCw5IEBAIHZvaWQgX19kcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kZXN0cm95X3N0YXRlKHN0cnVj dCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlKQo+ICAKPiAgCWlmIChzdGF0ZS0+ZmVuY2UpCj4gIAkJ ZG1hX2ZlbmNlX3B1dChzdGF0ZS0+ZmVuY2UpOwo+ICsKPiArCWlmIChzdGF0ZS0+Y29tbWl0KQo+ ICsJCWRybV9jcnRjX2NvbW1pdF9wdXQoc3RhdGUtPmNvbW1pdCk7Cj4gIH0KPiAgRVhQT1JUX1NZ TUJPTChfX2RybV9hdG9taWNfaGVscGVyX3BsYW5lX2Rlc3Ryb3lfc3RhdGUpOwo+ICAKPiBAQCAt MzM2NSw2ICszNTIxLDcgQEAgX19kcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZHVwbGljYXRl X3N0YXRlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gIAltZW1jcHkoc3RhdGUs IGNvbm5lY3Rvci0+c3RhdGUsIHNpemVvZigqc3RhdGUpKTsKPiAgCWlmIChzdGF0ZS0+Y3J0YykK PiAgCQlkcm1fY29ubmVjdG9yX2dldChjb25uZWN0b3IpOwo+ICsJc3RhdGUtPmNvbW1pdCA9IE5V TEw7Cj4gIH0KPiAgRVhQT1JUX1NZTUJPTChfX2RybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9k dXBsaWNhdGVfc3RhdGUpOwo+ICAKPiBAQCAtMzQ5MSw2ICszNjQ4LDkgQEAgX19kcm1fYXRvbWlj X2hlbHBlcl9jb25uZWN0b3JfZGVzdHJveV9zdGF0ZShzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0 ZSAqc3RhdGUpCj4gIHsKPiAgCWlmIChzdGF0ZS0+Y3J0YykKPiAgCQlkcm1fY29ubmVjdG9yX3B1 dChzdGF0ZS0+Y29ubmVjdG9yKTsKPiArCj4gKwlpZiAoc3RhdGUtPmNvbW1pdCkKPiArCQlkcm1f Y3J0Y19jb21taXRfcHV0KHN0YXRlLT5jb21taXQpOwo+ICB9Cj4gIEVYUE9SVF9TWU1CT0woX19k cm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZGVzdHJveV9zdGF0ZSk7Cj4gIAo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCBhNmNmMWMyMGM3MTIuLjdhYmJjNzYxYTYz NSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtMTMxMzIsOCAr MTMxMzIsMTAgQEAgaW50ZWxfbGVnYWN5X2N1cnNvcl91cGRhdGUoc3RydWN0IGRybV9wbGFuZSAq cGxhbmUsCj4gIAo+ICAJLyogU3dhcCBwbGFuZSBzdGF0ZSAqLwo+ICAJbmV3X3BsYW5lX3N0YXRl LT5mZW5jZSA9IG9sZF9wbGFuZV9zdGF0ZS0+ZmVuY2U7Cj4gKwluZXdfcGxhbmVfc3RhdGUtPmNv bW1pdCA9IG9sZF9wbGFuZV9zdGF0ZS0+Y29tbWl0Owo+ICAJKnRvX2ludGVsX3BsYW5lX3N0YXRl KG9sZF9wbGFuZV9zdGF0ZSkgPSAqdG9faW50ZWxfcGxhbmVfc3RhdGUobmV3X3BsYW5lX3N0YXRl KTsKPiAgCW5ld19wbGFuZV9zdGF0ZS0+ZmVuY2UgPSBOVUxMOwo+ICsJbmV3X3BsYW5lX3N0YXRl LT5jb21taXQgPSBOVUxMOwo+ICAJbmV3X3BsYW5lX3N0YXRlLT5mYiA9IG9sZF9mYjsKPiAgCXRv X2ludGVsX3BsYW5lX3N0YXRlKG5ld19wbGFuZV9zdGF0ZSktPnZtYSA9IE5VTEw7Cj4gIAo+IGRp ZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fYXRvbWljLmggYi9pbmNsdWRlL2RybS9kcm1fYXRv bWljLmgKPiBpbmRleCBhODBhOGRhZGVmMDAuLjA3YTcxZGFhMzU4MiAxMDA2NDQKPiAtLS0gYS9p bmNsdWRlL2RybS9kcm1fYXRvbWljLmgKPiArKysgYi9pbmNsdWRlL2RybS9kcm1fYXRvbWljLmgK PiBAQCAtMjM2LDYgKzIzNiwxOCBAQCBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSB7Cj4gIAlzdHJ1 Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmFjcXVpcmVfY3R4Owo+ICAKPiAgCS8qKgo+ICsJ ICogQGZha2VfY29tbWl0Ogo+ICsJICoKPiArCSAqIFVzZWQgZm9yIHNpZ25hbGluZyB1bmJvdW5k IHBsYW5lcy9jb25uZWN0b3JzLgo+ICsJICogV2hlbiBhIGNvbm5lY3RvciBvciBwbGFuZSBpcyBu b3QgYm91bmQgdG8gYW55IENSVEMsIGl0J3Mgc3RpbGwgaW1wb3J0YW50Cj4gKwkgKiB0byBwcmVz ZXJ2ZSBsaW5lYXJpdHkgdG8gcHJldmVudCB0aGUgYXRvbWljIHN0YXRlcyBmcm9tIGJlaW5nIGZy ZWVkIHRvIGVhcmx5Lgo+ICsJICoKPiArCSAqIFRoaXMgY29tbWl0IChpZiBzZXQpIGlzIG5vdCBi b3VuZCB0byBhbnkgY3J0YywgYnV0IHdpbGwgYmUgY29tcGxldGVkIHdoZW4KPiArCSAqIGRybV9h dG9taWNfaGVscGVyX2NvbW1pdF9od19kb25lKCkgaXMgY2FsbGVkLgo+ICsJICovCj4gKwlzdHJ1 Y3QgZHJtX2NydGNfY29tbWl0ICpmYWtlX2NvbW1pdDsKPiArCj4gKwkvKioKPiAgCSAqIEBjb21t aXRfd29yazoKPiAgCSAqCj4gIAkgKiBXb3JrIGl0ZW0gd2hpY2ggY2FuIGJlIHVzZWQgYnkgdGhl IGRyaXZlciBvciBoZWxwZXJzIHRvIGV4ZWN1dGUgdGhlCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUv ZHJtL2RybV9jb25uZWN0b3IuaCBiL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaAo+IGluZGV4 IGVhOGRhNDAxYzkzYy4uODgzNzY0OWQxNmU4IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2Ry bV9jb25uZWN0b3IuaAo+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaAo+IEBAIC0z NDcsNiArMzQ3LDEzIEBAIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlIHsKPiAgCj4gIAlzdHJ1 Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7Cj4gIAo+ICsJLyoqCj4gKwkgKiBAY29tbWl0OiBU cmFja3MgdGhlIHBlbmRpbmcgY29tbWl0IHRvIHByZXZlbnQgdXNlLWFmdGVyLWZyZWUgY29uZGl0 aW9ucy4KPiArCSAqCj4gKwkgKiBJcyBvbmx5IHNldCB3aGVuIEBjcnRjIGlzIE5VTEwuCj4gKwkg Ki8KPiArCXN0cnVjdCBkcm1fY3J0Y19jb21taXQgKmNvbW1pdDsKPiArCj4gIAlzdHJ1Y3QgZHJt X3R2X2Nvbm5lY3Rvcl9zdGF0ZSB0djsKPiAgCj4gIAkvKioKPiBkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9kcm0vZHJtX3BsYW5lLmggYi9pbmNsdWRlL2RybS9kcm1fcGxhbmUuaAo+IGluZGV4IDczZjkw ZjlkMDU3Zi4uN2Q5NjExNmZkNGM0IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9wbGFu ZS5oCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX3BsYW5lLmgKPiBAQCAtMTIzLDYgKzEyMywxMyBA QCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlIHsKPiAgCSAqLwo+ICAJYm9vbCB2aXNpYmxlOwo+ICAK PiArCS8qKgo+ICsJICogQGNvbW1pdDogVHJhY2tzIHRoZSBwZW5kaW5nIGNvbW1pdCB0byBwcmV2 ZW50IHVzZS1hZnRlci1mcmVlIGNvbmRpdGlvbnMuCj4gKwkgKgo+ICsJICogSXMgb25seSBzZXQg d2hlbiBAY3J0YyBpcyBOVUxMLgo+ICsJICovCj4gKwlzdHJ1Y3QgZHJtX2NydGNfY29tbWl0ICpj b21taXQ7Cj4gKwo+ICAJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlOwo+ICB9Owo+ICAK PiAtLSAKPiAyLjExLjAKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwo+IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPiBkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWwKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRl bCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK