From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [Intel-gfx] [PATCH 4/5] drm/atomic: Fix freeing connector/plane state too early by tracking commits, v2. Date: Wed, 30 Aug 2017 14:46:35 +0200 Message-ID: <713a5aa6-2feb-ac1e-4e10-c35e10fddf6e@linux.intel.com> References: <20170830121752.31291-1-maarten.lankhorst@linux.intel.com> <20170830121752.31291-5-maarten.lankhorst@linux.intel.com> <20170830124043.dziivo7cero56jkn@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170830124043.dziivo7cero56jkn@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: intel-gfx@lists.freedesktop.org T3AgMzAtMDgtMTcgb20gMTQ6NDAgc2NocmVlZiBEYW5pZWwgVmV0dGVyOgo+IE9uIFdlZCwgQXVn IDMwLCAyMDE3IGF0IDAyOjE3OjUxUE0gKzAyMDAsIE1hYXJ0ZW4gTGFua2hvcnN0IHdyb3RlOgo+ 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+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBNYWFydGVuIExhbmto b3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+PiBUZXN0Y2FzZToga21z X2F0b21pY190cmFuc2l0aW9uLnBsYW5lLXVzZS1hZnRlci1ub25ibG9ja2luZy11bmJpbmQqCj4+ IENjOiBMYXVyZW50IFBpbmNoYXJ0IDxsYXVyZW50LnBpbmNoYXJ0QGlkZWFzb25ib2FyZC5jb20+ Cj4+IC0tLQo+PiAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyAgICAgICAgIHwgICA0ICsK Pj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jICB8IDE1NiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLQo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jIHwgICAyICsKPj4gIGluY2x1ZGUvZHJtL2RybV9hdG9taWMuaCAgICAgICAgICAg ICB8ICAxMiArKysKPj4gIGluY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaCAgICAgICAgICB8ICAg NyArKwo+PiAgaW5jbHVkZS9kcm0vZHJtX3BsYW5lLmggICAgICAgICAgICAgIHwgICA3ICsrCj4+ ICA2IGZpbGVzIGNoYW5nZWQsIDE4MiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQo+Pgo+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fYXRvbWljLmMKPj4gaW5kZXggMmNjZTQ4ZjIwM2UwLi43NWY1Zjc0ZGU5YmYgMTAw NjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2RybV9hdG9taWMuYwo+PiBAQCAtMTkyLDYgKzE5MiwxMCBAQCB2b2lkIGRybV9h dG9taWNfc3RhdGVfZGVmYXVsdF9jbGVhcihzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUp Cj4+ICAJfQo+PiAgCXN0YXRlLT5udW1fcHJpdmF0ZV9vYmpzID0gMDsKPj4gIAo+PiArCWlmIChz dGF0ZS0+ZmFrZV9jb21taXQpIHsKPj4gKwkJZHJtX2NydGNfY29tbWl0X3B1dChzdGF0ZS0+ZmFr ZV9jb21taXQpOwo+PiArCQlzdGF0ZS0+ZmFrZV9jb21taXQgPSBOVUxMOwo+PiArCX0KPj4gIH0K Pj4gIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19zdGF0ZV9kZWZhdWx0X2NsZWFyKTsKPj4gIAo+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+PiBpbmRleCA4Y2NiOGI2NTM2YzAuLjAz NGY1NjNmYjEzMCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVs cGVyLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPj4gQEAg LTE2NDQsNiArMTY0NCw0MCBAQCBzdGF0aWMgdm9pZCByZWxlYXNlX2NydGNfY29tbWl0KHN0cnVj dCBjb21wbGV0aW9uICpjb21wbGV0aW9uKQo+PiAgCWRybV9jcnRjX2NvbW1pdF9wdXQoY29tbWl0 KTsKPj4gIH0KPj4gIAo+PiArc3RhdGljIHZvaWQgaW5pdF9jb21taXQoc3RydWN0IGRybV9jcnRj X2NvbW1pdCAqY29tbWl0LCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4+ICt7Cj4+ICsJaW5pdF9j b21wbGV0aW9uKCZjb21taXQtPmZsaXBfZG9uZSk7Cj4+ICsJaW5pdF9jb21wbGV0aW9uKCZjb21t aXQtPmh3X2RvbmUpOwo+PiArCWluaXRfY29tcGxldGlvbigmY29tbWl0LT5jbGVhbnVwX2RvbmUp Owo+PiArCUlOSVRfTElTVF9IRUFEKCZjb21taXQtPmNvbW1pdF9lbnRyeSk7Cj4+ICsJa3JlZl9p bml0KCZjb21taXQtPnJlZik7Cj4+ICsJY29tbWl0LT5jcnRjID0gY3J0YzsKPj4gK30KPj4gKwo+ PiArc3RhdGljIHN0cnVjdCBkcm1fY3J0Y19jb21taXQgKgo+PiArZmFrZV9vcl9jcnRjX2NvbW1p dChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YykK Pj4gK3sKPj4gKwlzdHJ1Y3QgZHJtX2NydGNfY29tbWl0ICpjb21taXQ7Cj4+ICsKPj4gKwlpZiAo Y3J0Yykgewo+PiArCQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlOwo+PiAr Cj4+ICsJCW5ld19jcnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3Rh dGUsIGNydGMpOwo+PiArCj4+ICsJCWNvbW1pdCA9IG5ld19jcnRjX3N0YXRlLT5jb21taXQ7Cj4+ ICsJfSBlbHNlIGlmICghc3RhdGUtPmZha2VfY29tbWl0KSB7Cj4+ICsJCXN0YXRlLT5mYWtlX2Nv bW1pdCA9IGNvbW1pdCA9IGt6YWxsb2Moc2l6ZW9mKCpjb21taXQpLCBHRlBfS0VSTkVMKTsKPj4g KwkJaWYgKCFjb21taXQpCj4+ICsJCQlyZXR1cm4gTlVMTDsKPj4gKwo+PiArCQlpbml0X2NvbW1p dChjb21taXQsIE5VTEwpOwo+PiArCX0gZWxzZQo+PiArCQljb21taXQgPSBzdGF0ZS0+ZmFrZV9j b21taXQ7Cj4+ICsKPj4gKwlkcm1fY3J0Y19jb21taXRfZ2V0KGNvbW1pdCk7Cj4gRG91YmxlIHJl ZmNvdW50IGZvciB0aGUgY2FzZSB3aGVyZSB5b3UgY2FsbCBpbml0X2NvbW1pdD8gQWthIEkgdGhp bmsgdGhpcwo+IGxlYWtzLgo+Cj4+ICsJcmV0dXJuIGNvbW1pdDsKPj4gK30KPj4gKwo+PiAgLyoq Cj4+ICAgKiBkcm1fYXRvbWljX2hlbHBlcl9zZXR1cF9jb21taXQgLSBzZXR1cCBwb3NzaWJseSBu b25ibG9ja2luZyBjb21taXQKPj4gICAqIEBzdGF0ZTogbmV3IG1vZGVzZXQgc3RhdGUgdG8gYmUg Y29tbWl0dGVkCj4+IEBAIC0xNjkyLDYgKzE3MjYsMTAgQEAgaW50IGRybV9hdG9taWNfaGVscGVy X3NldHVwX2NvbW1pdChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4+ICB7Cj4+ICAJ c3RydWN0IGRybV9jcnRjICpjcnRjOwo+PiAgCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqb2xkX2Ny dGNfc3RhdGUsICpuZXdfY3J0Y19zdGF0ZTsKPj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bjsKPj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGUsICpuZXdf Y29ubl9zdGF0ZTsKPj4gKwlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKPj4gKwlzdHJ1Y3QgZHJt X3BsYW5lX3N0YXRlICpvbGRfcGxhbmVfc3RhdGUsICpuZXdfcGxhbmVfc3RhdGU7Cj4+ICAJc3Ry dWN0IGRybV9jcnRjX2NvbW1pdCAqY29tbWl0Owo+PiAgCWludCBpLCByZXQ7Cj4+ICAKPj4gQEAg LTE3MDAsMTIgKzE3MzgsNyBAQCBpbnQgZHJtX2F0b21pY19oZWxwZXJfc2V0dXBfY29tbWl0KHN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKPj4gIAkJaWYgKCFjb21taXQpCj4+ICAJCQly ZXR1cm4gLUVOT01FTTsKPj4gIAo+PiAtCQlpbml0X2NvbXBsZXRpb24oJmNvbW1pdC0+ZmxpcF9k b25lKTsKPj4gLQkJaW5pdF9jb21wbGV0aW9uKCZjb21taXQtPmh3X2RvbmUpOwo+PiAtCQlpbml0 X2NvbXBsZXRpb24oJmNvbW1pdC0+Y2xlYW51cF9kb25lKTsKPj4gLQkJSU5JVF9MSVNUX0hFQUQo JmNvbW1pdC0+Y29tbWl0X2VudHJ5KTsKPj4gLQkJa3JlZl9pbml0KCZjb21taXQtPnJlZik7Cj4+ IC0JCWNvbW1pdC0+Y3J0YyA9IGNydGM7Cj4+ICsJCWluaXRfY29tbWl0KGNvbW1pdCwgY3J0Yyk7 Cj4+ICAKPj4gIAkJbmV3X2NydGNfc3RhdGUtPmNvbW1pdCA9IGNvbW1pdDsKPj4gIAo+PiBAQCAt MTc0MSw2ICsxNzc0LDM2IEBAIGludCBkcm1fYXRvbWljX2hlbHBlcl9zZXR1cF9jb21taXQoc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAo+PiAgCQlkcm1fY3J0Y19jb21taXRfZ2V0KGNv bW1pdCk7Cj4+ICAJfQo+PiAgCj4+ICsJZm9yX2VhY2hfb2xkbmV3X2Nvbm5lY3Rvcl9pbl9zdGF0 ZShzdGF0ZSwgY29ubiwgb2xkX2Nvbm5fc3RhdGUsIG5ld19jb25uX3N0YXRlLCBpKSB7Cj4gTWF5 YmUgYSBjb21tZW4gdGhlcmUgbGlrZQo+IAkJLyogY29tbWl0IHRyYWNrZWQgdGhyb3VnaCB0aGUg Y3J0Y19zdGF0ZS0+Y29tbWl0ICovCj4gRmVlbHMgYXQgbGVhc3QgYSBiaXQgbm9uLW9idmlvdXMg aG93IHRoaXMgd29ya3MuCj4KPj4gKwkJaWYgKG5ld19jb25uX3N0YXRlLT5jcnRjKQo+PiArCQkJ Y29udGludWU7Cj4+ICsKPiBQbGVhc2UgYWRkIHRoZQo+Cj4gCQkJLyogVXNlcnNwYWNlIGlzIG5v dCBhbGxvd2VkIHRvIGdldCBhaGVhZCBvZiB0aGUgcHJldmlvdXMKPiAJCQkgKiBjb21taXQgd2l0 aCBub25ibG9ja2luZyBvbmVzLiAqLwo+Cj4gY29tbWVudCBmcm9tIHN0YWxsX2NoZWNrcyBoZXJl IGFuZCBiZWxvdy4gRXZlbiBiZXR0ZXIgaWYgd2UgY291bGQgZXh0cmFjdAo+IHRoaXMsIGJ1dCBt YWNybyBpcyB1Z2x5IGFuZCBmdW5jdGlvbnMgd29udCB3b3JrLgpPay4KPj4gKwkJaWYgKG5vbmJs b2NrICYmIG9sZF9jb25uX3N0YXRlLT5jb21taXQgJiYKPj4gKwkJICAgICF0cnlfd2FpdF9mb3Jf Y29tcGxldGlvbigmb2xkX2Nvbm5fc3RhdGUtPmNvbW1pdC0+ZmxpcF9kb25lKSkKPj4gKwkJCXJl dHVybiAtRUJVU1k7Cj4+ICsKPj4gKwkJY29tbWl0ID0gZmFrZV9vcl9jcnRjX2NvbW1pdChzdGF0 ZSwgb2xkX2Nvbm5fc3RhdGUtPmNydGMpOwo+PiArCQlpZiAoIWNvbW1pdCkKPj4gKwkJCXJldHVy biAtRU5PTUVNOwo+PiArCj4+ICsJCW5ld19jb25uX3N0YXRlLT5jb21taXQgPSBjb21taXQ7Cj4+ ICsJfQo+PiArCj4+ICsJZm9yX2VhY2hfb2xkbmV3X3BsYW5lX2luX3N0YXRlKHN0YXRlLCBwbGFu ZSwgb2xkX3BsYW5lX3N0YXRlLCBuZXdfcGxhbmVfc3RhdGUsIGkpIHsKPj4gKwkJaWYgKG5ld19w bGFuZV9zdGF0ZS0+Y3J0YykKPj4gKwkJCWNvbnRpbnVlOwo+PiArCj4+ICsJCWlmIChub25ibG9j ayAmJiBvbGRfcGxhbmVfc3RhdGUtPmNvbW1pdCAmJgo+PiArCQkgICAgIXRyeV93YWl0X2Zvcl9j b21wbGV0aW9uKCZvbGRfcGxhbmVfc3RhdGUtPmNvbW1pdC0+ZmxpcF9kb25lKSkKPj4gKwkJCXJl dHVybiAtRUJVU1k7Cj4+ICsKPj4gKwkJY29tbWl0ID0gZmFrZV9vcl9jcnRjX2NvbW1pdChzdGF0 ZSwgb2xkX3BsYW5lX3N0YXRlLT5jcnRjKTsKPj4gKwkJaWYgKCFjb21taXQpCj4+ICsJCQlyZXR1 cm4gLUVOT01FTTsKPj4gKwo+PiArCQluZXdfcGxhbmVfc3RhdGUtPmNvbW1pdCA9IGNvbW1pdDsK Pj4gKwl9Cj4+ICsKPj4gIAlyZXR1cm4gMDsKPj4gIH0KPj4gIEVYUE9SVF9TWU1CT0woZHJtX2F0 b21pY19oZWxwZXJfc2V0dXBfY29tbWl0KTsKPj4gQEAgLTE3NjEsNiArMTgyNCwxMCBAQCB2b2lk IGRybV9hdG9taWNfaGVscGVyX3dhaXRfZm9yX2RlcGVuZGVuY2llcyhzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSAqb2xkX3N0YXRlKQo+PiAgewo+PiAgCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPj4g IAlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlOwo+PiArCXN0cnVjdCBkcm1f cGxhbmUgKnBsYW5lOwo+PiArCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm9sZF9wbGFuZV9zdGF0 ZTsKPj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubjsKPj4gKwlzdHJ1Y3QgZHJtX2Nvbm5l Y3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGU7Cj4+ICAJc3RydWN0IGRybV9jcnRjX2NvbW1pdCAq Y29tbWl0Owo+PiAgCWludCBpOwo+PiAgCWxvbmcgcmV0Owo+PiBAQCAtMTc4NSw2ICsxODUyLDQ4 IEBAIHZvaWQgZHJtX2F0b21pY19oZWxwZXJfd2FpdF9mb3JfZGVwZW5kZW5jaWVzKHN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUpCj4+ICAJCQlEUk1fRVJST1IoIltDUlRDOiVkOiVz XSBmbGlwX2RvbmUgdGltZWQgb3V0XG4iLAo+PiAgCQkJCSAgY3J0Yy0+YmFzZS5pZCwgY3J0Yy0+ bmFtZSk7Cj4+ICAJfQo+PiArCj4+ICsJZm9yX2VhY2hfb2xkX2Nvbm5lY3Rvcl9pbl9zdGF0ZShv bGRfc3RhdGUsIGNvbm4sIG9sZF9jb25uX3N0YXRlLCBpKSB7Cj4+ICsJCWNvbW1pdCA9IG9sZF9j b25uX3N0YXRlLT5jb21taXQ7Cj4+ICsKPj4gKwkJaWYgKCFjb21taXQpCj4+ICsJCQljb250aW51 ZTsKPj4gKwo+PiArCQlyZXQgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoJmNvbW1pdC0+ aHdfZG9uZSwKPj4gKwkJCQkJCSAgMTAqSFopOwo+PiArCQlpZiAocmV0ID09IDApCj4+ICsJCQlE Uk1fRVJST1IoIltDT05ORUNUT1I6JWQ6JXNdIGh3X2RvbmUgdGltZWQgb3V0XG4iLAo+PiArCQkJ CSAgY29ubi0+YmFzZS5pZCwgY29ubi0+bmFtZSk7Cj4+ICsKPj4gKwkJLyogQ3VycmVudGx5IG5v IHN1cHBvcnQgZm9yIG92ZXJ3cml0aW5nIGZsaXBzLCBoZW5jZQo+PiArCQkgKiBzdGFsbCBmb3Ig cHJldmlvdXMgb25lIHRvIGV4ZWN1dGUgY29tcGxldGVseS4gKi8KPj4gKwkJcmV0ID0gd2FpdF9m b3JfY29tcGxldGlvbl90aW1lb3V0KCZjb21taXQtPmZsaXBfZG9uZSwKPj4gKwkJCQkJCSAgMTAq SFopOwo+PiArCQlpZiAocmV0ID09IDApCj4+ICsJCQlEUk1fRVJST1IoIltDT05ORUNUT1I6JWQ6 JXNdIGZsaXBfZG9uZSB0aW1lZCBvdXRcbiIsCj4+ICsJCQkJICBjb25uLT5iYXNlLmlkLCBjb25u LT5uYW1lKTsKPj4gKwl9Cj4+ICsKPj4gKwlmb3JfZWFjaF9vbGRfcGxhbmVfaW5fc3RhdGUob2xk X3N0YXRlLCBwbGFuZSwgb2xkX3BsYW5lX3N0YXRlLCBpKSB7Cj4+ICsJCWNvbW1pdCA9IG9sZF9w bGFuZV9zdGF0ZS0+Y29tbWl0Owo+PiArCj4+ICsJCWlmICghY29tbWl0KQo+PiArCQkJY29udGlu dWU7Cj4+ICsKPj4gKwkJcmV0ID0gd2FpdF9mb3JfY29tcGxldGlvbl90aW1lb3V0KCZjb21taXQt Pmh3X2RvbmUsCj4+ICsJCQkJCQkgIDEwKkhaKTsKPj4gKwkJaWYgKHJldCA9PSAwKQo+PiArCQkJ RFJNX0VSUk9SKCJbUExBTkU6JWQ6JXNdIGh3X2RvbmUgdGltZWQgb3V0XG4iLAo+PiArCQkJCSAg cGxhbmUtPmJhc2UuaWQsIHBsYW5lLT5uYW1lKTsKPj4gKwo+PiArCQkvKiBDdXJyZW50bHkgbm8g c3VwcG9ydCBmb3Igb3ZlcndyaXRpbmcgZmxpcHMsIGhlbmNlCj4+ICsJCSAqIHN0YWxsIGZvciBw cmV2aW91cyBvbmUgdG8gZXhlY3V0ZSBjb21wbGV0ZWx5LiAqLwo+PiArCQlyZXQgPSB3YWl0X2Zv cl9jb21wbGV0aW9uX3RpbWVvdXQoJmNvbW1pdC0+ZmxpcF9kb25lLAo+PiArCQkJCQkJICAxMCpI Wik7Cj4+ICsJCWlmIChyZXQgPT0gMCkKPj4gKwkJCURSTV9FUlJPUigiW1BMQU5FOiVkOiVzXSBm bGlwX2RvbmUgdGltZWQgb3V0XG4iLAo+PiArCQkJCSAgcGxhbmUtPmJhc2UuaWQsIHBsYW5lLT5u YW1lKTsKPj4gKwl9Cj4+ICB9Cj4+ICBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVyX3dh aXRfZm9yX2RlcGVuZGVuY2llcyk7Cj4+ICAKPj4gQEAgLTE4MTksNiArMTkyOCwxMSBAQCB2b2lk IGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9od19kb25lKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpvbGRfc3RhdGUpCj4+ICAJCVdBUk5fT04obmV3X2NydGNfc3RhdGUtPmV2ZW50KTsKPj4gIAkJ Y29tcGxldGVfYWxsKCZjb21taXQtPmh3X2RvbmUpOwo+PiAgCX0KPj4gKwo+PiArCWlmIChvbGRf c3RhdGUtPmZha2VfY29tbWl0KSB7Cj4+ICsJCWNvbXBsZXRlX2FsbCgmb2xkX3N0YXRlLT5mYWtl X2NvbW1pdC0+aHdfZG9uZSk7Cj4+ICsJCWNvbXBsZXRlX2FsbCgmb2xkX3N0YXRlLT5mYWtlX2Nv bW1pdC0+ZmxpcF9kb25lKTsKPj4gKwl9Cj4gSnVzdCB0byBhdm9pZCBzdXJwcmlzZXMsIEkgdGhp bmsgd2Ugc2hvdWxkIGFsc28gY29tcGxldGVfYWxsKGNsZWFudXBfZG9uZSkKPiBvbiB0aGUgZmFr ZSBjb21taXQgaW4gY2xlYW51cF9kb25lKCkuClN1cmUsIG5vdyB0aGVyZSdzIG9ubHkgMSBpdCBt YWtlcyBzZW5zZS4gOikKPj4gIH0KPj4gIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJf Y29tbWl0X2h3X2RvbmUpOwo+PiAgCj4+IEBAIC0yMjQxLDYgKzIzNTUsMjggQEAgaW50IGRybV9h dG9taWNfaGVscGVyX3N3YXBfc3RhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ PiAgCQkJaWYgKHJldCkKPj4gIAkJCQlyZXR1cm4gcmV0Owo+PiAgCQl9Cj4+ICsKPj4gKwkJZm9y X2VhY2hfb2xkX2Nvbm5lY3Rvcl9pbl9zdGF0ZShzdGF0ZSwgY29ubmVjdG9yLCBvbGRfY29ubl9z dGF0ZSwgaSkgewo+PiArCQkJY29tbWl0ID0gb2xkX2Nvbm5fc3RhdGUtPmNvbW1pdDsKPj4gKwo+ PiArCQkJaWYgKCFjb21taXQpCj4+ICsJCQkJY29udGludWU7Cj4+ICsKPj4gKwkJCXJldCA9IHdh aXRfZm9yX2NvbXBsZXRpb25faW50ZXJydXB0aWJsZSgmY29tbWl0LT5od19kb25lKTsKPj4gKwkJ CWlmIChyZXQpCj4+ICsJCQkJcmV0dXJuIHJldDsKPj4gKwkJfQo+PiArCj4+ICsJCWZvcl9lYWNo X29sZF9wbGFuZV9pbl9zdGF0ZShzdGF0ZSwgcGxhbmUsIG9sZF9wbGFuZV9zdGF0ZSwgaSkgewo+ PiArCQkJY29tbWl0ID0gb2xkX3BsYW5lX3N0YXRlLT5jb21taXQ7Cj4+ICsKPj4gKwkJCWlmICgh Y29tbWl0KQo+PiArCQkJCWNvbnRpbnVlOwo+PiArCj4+ICsJCQlyZXQgPSB3YWl0X2Zvcl9jb21w bGV0aW9uX2ludGVycnVwdGlibGUoJmNvbW1pdC0+aHdfZG9uZSk7Cj4+ICsJCQlpZiAocmV0KQo+ PiArCQkJCXJldHVybiByZXQ7Cj4+ICsJCX0KPj4gIAl9Cj4+ICAKPj4gIAlmb3JfZWFjaF9vbGRu ZXdfY29ubmVjdG9yX2luX3N0YXRlKHN0YXRlLCBjb25uZWN0b3IsIG9sZF9jb25uX3N0YXRlLCBu ZXdfY29ubl9zdGF0ZSwgaSkgewo+PiBAQCAtMzIyMyw2ICszMzU5LDcgQEAgdm9pZCBfX2RybV9h dG9taWNfaGVscGVyX3BsYW5lX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSwKPj4gIAkJZHJtX2ZyYW1lYnVmZmVyX2dldChzdGF0ZS0+ZmIpOwo+PiAgCj4+ICAJc3RhdGUt PmZlbmNlID0gTlVMTDsKPj4gKwlzdGF0ZS0+Y29tbWl0ID0gTlVMTDsKPj4gIH0KPj4gIEVYUE9S VF9TWU1CT0woX19kcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kdXBsaWNhdGVfc3RhdGUpOwo+PiAg Cj4+IEBAIC0zMjY0LDYgKzM0MDEsOSBAQCB2b2lkIF9fZHJtX2F0b21pY19oZWxwZXJfcGxhbmVf ZGVzdHJveV9zdGF0ZShzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSkKPj4gIAo+PiAgCWlm IChzdGF0ZS0+ZmVuY2UpCj4+ICAJCWRtYV9mZW5jZV9wdXQoc3RhdGUtPmZlbmNlKTsKPj4gKwo+ PiArCWlmIChzdGF0ZS0+Y29tbWl0KQo+PiArCQlkcm1fY3J0Y19jb21taXRfcHV0KHN0YXRlLT5j b21taXQpOwo+PiAgfQo+PiAgRVhQT1JUX1NZTUJPTChfX2RybV9hdG9taWNfaGVscGVyX3BsYW5l X2Rlc3Ryb3lfc3RhdGUpOwo+PiAgCj4+IEBAIC0zMzQyLDYgKzM0ODIsNyBAQCBfX2RybV9hdG9t aWNfaGVscGVyX2Nvbm5lY3Rvcl9kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvciwKPj4gIAltZW1jcHkoc3RhdGUsIGNvbm5lY3Rvci0+c3RhdGUsIHNpemVvZigq c3RhdGUpKTsKPj4gIAlpZiAoc3RhdGUtPmNydGMpCj4+ICAJCWRybV9jb25uZWN0b3JfZ2V0KGNv bm5lY3Rvcik7Cj4+ICsJc3RhdGUtPmNvbW1pdCA9IE5VTEw7Cj4+ICB9Cj4+ICBFWFBPUlRfU1lN Qk9MKF9fZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2R1cGxpY2F0ZV9zdGF0ZSk7Cj4+ICAK Pj4gQEAgLTM0NjgsNiArMzYwOSw5IEBAIF9fZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2Rl c3Ryb3lfc3RhdGUoc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKnN0YXRlKQo+PiAgewo+PiAg CWlmIChzdGF0ZS0+Y3J0YykKPj4gIAkJZHJtX2Nvbm5lY3Rvcl9wdXQoc3RhdGUtPmNvbm5lY3Rv cik7Cj4+ICsKPj4gKwlpZiAoc3RhdGUtPmNvbW1pdCkKPj4gKwkJZHJtX2NydGNfY29tbWl0X3B1 dChzdGF0ZS0+Y29tbWl0KTsKPj4gIH0KPj4gIEVYUE9SVF9TWU1CT0woX19kcm1fYXRvbWljX2hl bHBlcl9jb25uZWN0b3JfZGVzdHJveV9zdGF0ZSk7Cj4+ICAKPj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYwo+PiBpbmRleCAzZjNjYjk2YWExMWUuLjcwY2UwMjc1MzE3NyAxMDA2NDQK Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+PiBAQCAtMTMxMDksOCArMTMxMDks MTAgQEAgaW50ZWxfbGVnYWN5X2N1cnNvcl91cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUs Cj4+ICAKPj4gIAkvKiBTd2FwIHBsYW5lIHN0YXRlICovCj4+ICAJbmV3X3BsYW5lX3N0YXRlLT5m ZW5jZSA9IG9sZF9wbGFuZV9zdGF0ZS0+ZmVuY2U7Cj4+ICsJbmV3X3BsYW5lX3N0YXRlLT5jb21t aXQgPSBvbGRfcGxhbmVfc3RhdGUtPmNvbW1pdDsKPj4gIAkqdG9faW50ZWxfcGxhbmVfc3RhdGUo b2xkX3BsYW5lX3N0YXRlKSA9ICp0b19pbnRlbF9wbGFuZV9zdGF0ZShuZXdfcGxhbmVfc3RhdGUp Owo+PiAgCW5ld19wbGFuZV9zdGF0ZS0+ZmVuY2UgPSBOVUxMOwo+PiArCW5ld19wbGFuZV9zdGF0 ZS0+Y29tbWl0ID0gTlVMTDsKPiBXb3VsZCBiZSBnb29kIGlmIHdlIGNvdWxkIHN3aXRjaCB0byBH dXN0YXZvJ3MgYXN5bmMgd29yayBhbmQgcHVzaCB0aGVzZQo+IHRyaWNrcyBpbnRvIHNoYXJlZCBj b2RlIC4uLgpXZSBkbyB0aGlzIGFzIGFuIGV2aWwgaGFjayBiZWNhdXNlIHdlIGNhbid0IHRyYWNr IHdoZXRoZXIgc29tZXRoaW5nIGlzIHVzaW5nIHRoZSBjdXJyZW50IHBsYW5lIG9yIG5vdC4KCklm IHdlIGFwcGx5IHBhdGNoIDUsIHdlIGNvdWxkIGRpcmVjdGx5IHN3YXAgcGxhbmUtPnN0YXRlIGJl Y2F1c2Ugd2Uga25vdyB3aGV0aGVyIHRoZSBjdXJzb3IgcGxhbmUgaXMgaW4gdXNlIG9yIG5vdCwK YW5kIGdldCByaWQgb2YgdGhpcyBldmlsIGhhY2sgaGVyZS4KPgo+PiAgCW5ld19wbGFuZV9zdGF0 ZS0+ZmIgPSBvbGRfZmI7Cj4+ICAJdG9faW50ZWxfcGxhbmVfc3RhdGUobmV3X3BsYW5lX3N0YXRl KS0+dm1hID0gTlVMTDsKPj4gIAo+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2F0b21p Yy5oIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oCj4+IGluZGV4IGU3NmQ5Zjk1YzE5MS4uYmE5 NzZmNGE0OTM4IDEwMDY0NAo+PiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fYXRvbWljLmgKPj4gKysr IGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oCj4+IEBAIC0yMzYsNiArMjM2LDE4IEBAIHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlIHsKPj4gIAlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHgg KmFjcXVpcmVfY3R4Owo+PiAgCj4+ICAJLyoqCj4+ICsJICogQGZha2VfY29tbWl0Ogo+PiArCSAq Cj4+ICsJICogVXNlZCBmb3Igc2lnbmFsaW5nIHVuYm91bmQgcGxhbmVzL2Nvbm5lY3RvcnMuCj4+ ICsJICogV2hlbiBhIGNvbm5lY3RvciBvciBwbGFuZSBpcyBub3QgYm91bmQgdG8gYW55IENSVEMs IGl0J3Mgc3RpbGwgaW1wb3J0YW50Cj4+ICsJICogdG8gcHJlc2VydmUgbGluZWFyaXR5IHRvIHBy ZXZlbnQgdGhlIGF0b21pYyBzdGF0ZXMgZnJvbSBiZWluZyBmcmVlZCB0byBlYXJseS4KPiBzL3Rv IGVhcmx5L3RvbyBlYXJseS8uCj4KPj4gKwkgKgo+PiArCSAqIFRoaXMgY29tbWl0IChpZiBzZXQp IGlzIG5vdCBib3VuZCB0byBhbnkgY3J0YywgYnV0IHdpbGwgYmUgY29tcGxldGVkIHdoZW4KPj4g KwkgKiBkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfaHdfZG9uZSgpIGlzIGNhbGxlZC4KPiAuLi4g YW5kIGRybV9hdG9taWNfaGVscGVyX2NsZWFudXBfZG9uZSgpIC4uLgo+Cj4KPj4gKwkgKi8KPj4g KwlzdHJ1Y3QgZHJtX2NydGNfY29tbWl0ICpmYWtlX2NvbW1pdDsKPj4gKwo+PiArCS8qKgo+PiAg CSAqIEBjb21taXRfd29yazoKPj4gIAkgKgo+PiAgCSAqIFdvcmsgaXRlbSB3aGljaCBjYW4gYmUg dXNlZCBieSB0aGUgZHJpdmVyIG9yIGhlbHBlcnMgdG8gZXhlY3V0ZSB0aGUKPj4gZGlmZiAtLWdp dCBhL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaCBiL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0 b3IuaAo+PiBpbmRleCBlYThkYTQwMWM5M2MuLjg4Mzc2NDlkMTZlOCAxMDA2NDQKPj4gLS0tIGEv aW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9jb25u ZWN0b3IuaAo+PiBAQCAtMzQ3LDYgKzM0NywxMyBAQCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0 ZSB7Cj4+ICAKPj4gIAlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7Cj4+ICAKPj4gKwkv KioKPj4gKwkgKiBAY29tbWl0OiBUcmFja3MgdGhlIHBlbmRpbmcgY29tbWl0IHRvIHByZXZlbnQg dXNlLWFmdGVyLWZyZWUgY29uZGl0aW9ucy4KPj4gKwkgKgo+PiArCSAqIElzIG9ubHkgc2V0IHdo ZW4gQGNydGMgaXMgTlVMTC4KPj4gKwkgKi8KPj4gKwlzdHJ1Y3QgZHJtX2NydGNfY29tbWl0ICpj b21taXQ7Cj4+ICsKPj4gIAlzdHJ1Y3QgZHJtX3R2X2Nvbm5lY3Rvcl9zdGF0ZSB0djsKPj4gIAo+ PiAgCS8qKgo+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX3BsYW5lLmggYi9pbmNsdWRl L2RybS9kcm1fcGxhbmUuaAo+PiBpbmRleCA3M2Y5MGY5ZDA1N2YuLjdkOTYxMTZmZDRjNCAxMDA2 NDQKPj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX3BsYW5lLmgKPj4gKysrIGIvaW5jbHVkZS9kcm0v ZHJtX3BsYW5lLmgKPj4gQEAgLTEyMyw2ICsxMjMsMTMgQEAgc3RydWN0IGRybV9wbGFuZV9zdGF0 ZSB7Cj4+ICAJICovCj4+ICAJYm9vbCB2aXNpYmxlOwo+PiAgCj4+ICsJLyoqCj4+ICsJICogQGNv bW1pdDogVHJhY2tzIHRoZSBwZW5kaW5nIGNvbW1pdCB0byBwcmV2ZW50IHVzZS1hZnRlci1mcmVl IGNvbmRpdGlvbnMuCj4+ICsJICoKPj4gKwkgKiBJcyBvbmx5IHNldCB3aGVuIEBjcnRjIGlzIE5V TEwuCj4+ICsJICovCj4+ICsJc3RydWN0IGRybV9jcnRjX2NvbW1pdCAqY29tbWl0Owo+PiArCj4+ ICAJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlOwo+PiAgfTsKPiBXaXRoIHRoZSBhYm92 ZSBuaXRzIGFkZHJlc3NlZDoKPgo+IFJldmlld2VkLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwu dmV0dGVyQGZmd2xsLmNoPgorMQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9k cmktZGV2ZWwK