From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gustavo Padovan Subject: Re: [PATCH RESEND 1/6] drm/atomic: initial support for asynchronous plane update Date: Thu, 1 Jun 2017 11:24:01 +0900 Message-ID: <20170601022401.GB12182@jade> References: <20170525195144.18134-1-gustavo@padovan.org> <20170525195144.18134-2-gustavo@padovan.org> <87fufkcz4s.fsf@eliezer.anholt.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <87fufkcz4s.fsf@eliezer.anholt.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Eric Anholt Cc: Gustavo Padovan , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org MjAxNy0wNS0zMSBFcmljIEFuaG9sdCA8ZXJpY0BhbmhvbHQubmV0PjoKCj4gR3VzdGF2byBQYWRv dmFuIDxndXN0YXZvQHBhZG92YW4ub3JnPiB3cml0ZXM6Cj4gCj4gPiBGcm9tOiBHdXN0YXZvIFBh ZG92YW4gPGd1c3Rhdm8ucGFkb3ZhbkBjb2xsYWJvcmEuY29tPgo+ID4KPiA+IEluIHNvbWUgY2Fz ZXMsIGxpa2UgY3Vyc29yIHVwZGF0ZXMsIGl0IGlzIGludGVyZXN0aW5nIHRvIHVwZGF0ZSB0aGUK PiA+IHBsYW5lIGluIGFuIGFzeW5jaHJvbm91cyBmYXNoaW9uIHRvIGF2b2lkIGJpZyBkZWxheXMu IFRoZSBjdXJyZW50IHF1ZXVlZAo+ID4gdXBkYXRlIGNvdWxkIGJlIHN0aWxsIHdhaXRpbmcgZm9y IGEgZmVuY2UgdG8gc2lnbmFsIGFuZCB0aHVzIGJsb2NrIGFueQo+ID4gc3Vic2VxdWVudCB1cGRh dGUgdW50aWwgaXRzIHNjYW4gb3V0LiBJbiBjYXNlcyBsaWtlIHRoaXMgaWYgd2UgdXBkYXRlIHRo ZQo+ID4gY3Vyc29yIHN5bmNocm9ub3VzbHkgdGhyb3VnaCB0aGUgYXRvbWljIEFQSSBpdCB3aWxs IGNhdXNlIHNpZ25pZmljYW50Cj4gPiBkZWxheXMgdGhhdCB3b3VsZCBldmVuIGJlIG5vdGljZWQg YnkgdGhlIGZpbmFsIHVzZXIuCj4gPgo+ID4gVGhpcyBwYXRjaCBjcmVhdGVzIGEgZmFzdCBwYXRo IHRvIGp1bXAgYWhlYWQgdGhlIGN1cnJlbnQgcXVldWVkIHN0YXRlIGFuZAo+ID4gZG8gc2luZ2xl IHBsYW5lcyB1cGRhdGVzIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCBhbGwgYXRvbWljIHN0ZXBzIGlu Cj4gPiBkcm1fYXRvbWljX2hlbHBlcl9jb21taXQoKS4gV2UgdGFrZSB0aGlzIHBhdGggZm9yIGxl Z2FjeSBjdXJzb3IgdXBkYXRlcy4KPiA+Cj4gPiBGb3Igbm93IG9ubHkgc2luZ2xlIHBsYW5lIHVw ZGF0ZXMgYXJlIHN1cHBvcnRlZCwgYnV0IHdlIHBsYW4gdG8gc3VwcG9ydAo+ID4gbXVsdGlwbGUg cGxhbmVzIHVwZGF0ZXMgYW5kIGFzeW5jIFBhZ2VGbGlwcyB0aHJvdWdoIHRoaXMgaW50ZXJmYWNl IGFzIHdlbGwKPiA+IGluIHRoZSBuZWFyIGZ1dHVyZS4KPiAKPiBTb3JyeSBmb3IgdGFraW5nIHNv IGxvbmcgdG8gZG8gc29tZSByZXZpZXcgZm9yIHRoaXMuCj4gCj4gPiAtLS0KPiA+ICBkcml2ZXJz L2dwdS9kcm0vZHJtX2F0b21pYy5jICAgICAgICAgICAgIHwgNjUgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKPiA+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyAg ICAgIHwgMzUgKysrKysrKysrKysrKysrKysKPiA+ICBpbmNsdWRlL2RybS9kcm1fYXRvbWljLmgg ICAgICAgICAgICAgICAgIHwgIDIgKwo+ID4gIGluY2x1ZGUvZHJtL2RybV9hdG9taWNfaGVscGVy LmggICAgICAgICAgfCAgMiArCj4gPiAgaW5jbHVkZS9kcm0vZHJtX21vZGVzZXRfaGVscGVyX3Z0 YWJsZXMuaCB8IDQ4ICsrKysrKysrKysrKysrKysrKysrKysrCj4gPiAgNSBmaWxlcyBjaGFuZ2Vk LCAxNTIgaW5zZXJ0aW9ucygrKQo+ID4KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+ID4gaW5kZXggYmU2 Mjc3NC4uMmEwYzI5NyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWlj LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPiA+IEBAIC02MzEsNiAr NjMxLDY4IEBAIHN0YXRpYyBpbnQgZHJtX2F0b21pY19jcnRjX2NoZWNrKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YywKPiA+ICAJcmV0dXJuIDA7Cj4gPiAgfQo+ID4gIAo+ID4gK3N0YXRpYyBib29sIGRy bV9hdG9taWNfYXN5bmNfY2hlY2soc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ID4g K3sKPiA+ICsJc3RydWN0IGRybV9jcnRjICpjcnRjOwo+ID4gKwlzdHJ1Y3QgZHJtX2NydGNfc3Rh dGUgKmNydGNfc3RhdGU7Cj4gPiArCXN0cnVjdCBkcm1fY3J0Y19jb21taXQgKmNvbW1pdDsKPiA+ ICsJc3RydWN0IGRybV9wbGFuZSAqX19wbGFuZSwgKnBsYW5lID0gTlVMTDsKPiA+ICsJc3RydWN0 IGRybV9wbGFuZV9zdGF0ZSAqX19wbGFuZV9zdGF0ZSwgKnBsYW5lX3N0YXRlID0gTlVMTDsKPiA+ ICsJY29uc3Qgc3RydWN0IGRybV9wbGFuZV9oZWxwZXJfZnVuY3MgKmZ1bmNzOwo+ID4gKwlpbnQg aSwgaiwgbl9wbGFuZXMgPSAwOwo+ID4gKwo+ID4gKwlmb3JfZWFjaF9uZXdfY3J0Y19pbl9zdGF0 ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewo+ID4gKwkJaWYgKGRybV9hdG9taWNfY3J0 Y19uZWVkc19tb2Rlc2V0KGNydGNfc3RhdGUpKQo+ID4gKwkJCXJldHVybiBmYWxzZTsKPiA+ICsJ fQo+ID4gKwo+ID4gKwlmb3JfZWFjaF9uZXdfcGxhbmVfaW5fc3RhdGUoc3RhdGUsIF9fcGxhbmUs IF9fcGxhbmVfc3RhdGUsIGkpIHsKPiA+ICsJCW5fcGxhbmVzKys7Cj4gPiArCQlwbGFuZSA9IF9f cGxhbmU7Cj4gPiArCQlwbGFuZV9zdGF0ZSA9IF9fcGxhbmVfc3RhdGU7Cj4gPiArCX0KPiA+ICsK PiA+ICsJLyogRklYTUU6IHdlIHN1cHBvcnQgb25seSBzaW5nbGUgcGxhbmUgdXBkYXRlcyBmb3Ig bm93ICovCj4gPiArCWlmICghcGxhbmUgfHwgbl9wbGFuZXMgIT0gMSkKPiA+ICsJCXJldHVybiBm YWxzZTsKPiA+ICsKPiA+ICsJaWYgKCFwbGFuZV9zdGF0ZS0+Y3J0YykKPiA+ICsJCXJldHVybiBm YWxzZTsKPiA+ICsKPiA+ICsJZnVuY3MgPSBwbGFuZS0+aGVscGVyX3ByaXZhdGU7Cj4gPiArCWlm ICghZnVuY3MtPmF0b21pY19hc3luY191cGRhdGUpCj4gPiArCQlyZXR1cm4gZmFsc2U7Cj4gPiAr Cj4gPiArCWlmIChwbGFuZV9zdGF0ZS0+ZmVuY2UpCj4gPiArCQlyZXR1cm4gZmFsc2U7Cj4gPiAr Cj4gCj4gQ291bGQgeW91IGFkZCBhIGNvbW1lbnQgaGVyZSBsaWtlOgo+IAo+IC8qIERvbid0IGRv IGFuIGFzeW5jIHVwZGF0ZSBpZiB0aGVyZSBpcyBhbiBvdXRzdGFuZGluZyBjb21taXQgbW9kaWZ5 aW5nCj4gICogdGhlIHBsYW5lLiAgVGhpcyBwcmV2ZW50cyBvdXIgYXN5bmMgdXBkYXRlJ3MgY2hh bmdlcyBmcm9tIGdldHRpbmcKPiAgKiBvdmVycmlkZGVuIGJ5IGEgcHJldmlvdXMgc3luY2hyb25v dXMgdXBkYXRlJ3Mgc3RhdGUuCj4gICovCj4gCj4gKGFzc3VtaW5nIEkgdW5kZXJzdGFuZCBpdHMg aW50ZW50IGNvcnJlY3RseSkKPiAKPiBJIGRvbid0IHVuZGVyc3RhbmQgS01TIGxvY2tpbmcgZW5v dWdoIHRvIHNheSBpZiB0aGlzIGxvb3AgaXMgYWN0dWFsbHkKPiBzYWZlbHkgZ3VhcmFudGVlaW5n IHRoYXQuICBJZiB5b3UncmUgY29udmluY2VkIG9mIHRoYXQsIHRoZW4gd2l0aCBteQo+IGxpdHRs ZSBjbGVhbnVwcyB0aGlzIHBhdGNoIHdpbGwgYmU6CgpJJ20gZ29pbmcgdG8gY2hlY2sgdGhlIGxv Y2tpbmcgYWdhaW4ganVzdCB0byBtYWtlIHN1cmUuCgo+IAo+IEFja2VkLWJ5OiBFcmljIEFuaG9s dCA8ZXJpY0BhbmhvbHQubmV0Pgo+IAo+ID4gKwlmb3JfZWFjaF9uZXdfY3J0Y19pbl9zdGF0ZShz dGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewo+ID4gKwkJaWYgKHBsYW5lLT5jcnRjICE9IGNy dGMpCj4gPiArCQkJY29udGludWU7Cj4gPiArCj4gPiArCQlzcGluX2xvY2soJmNydGMtPmNvbW1p dF9sb2NrKTsKPiA+ICsJCWNvbW1pdCA9IGxpc3RfZmlyc3RfZW50cnlfb3JfbnVsbCgmY3J0Yy0+ Y29tbWl0X2xpc3QsCj4gPiArCQkJCQkJICBzdHJ1Y3QgZHJtX2NydGNfY29tbWl0LAo+ID4gKwkJ CQkJCSAgY29tbWl0X2VudHJ5KTsKPiA+ICsJCWlmICghY29tbWl0KSB7Cj4gPiArCQkJc3Bpbl91 bmxvY2soJmNydGMtPmNvbW1pdF9sb2NrKTsKPiA+ICsJCQljb250aW51ZTsKPiA+ICsJCX0KPiA+ ICsJCXNwaW5fdW5sb2NrKCZjcnRjLT5jb21taXRfbG9jayk7Cj4gPiArCj4gPiArCQlpZiAoIWNy dGMtPnN0YXRlLT5zdGF0ZSkKPiA+ICsJCQljb250aW51ZTsKPiA+ICsKPiA+ICsJCWZvcl9lYWNo X3BsYW5lX2luX3N0YXRlKGNydGMtPnN0YXRlLT5zdGF0ZSwgX19wbGFuZSwKPiA+ICsJCQkJCV9f cGxhbmVfc3RhdGUsIGopIHsKPiA+ICsJCQlpZiAoX19wbGFuZSA9PSBwbGFuZSkKPiA+ICsJCQkJ cmV0dXJuIGZhbHNlOwo+ID4gKwkJfQo+ID4gKwl9Cj4gPiArCj4gPiArCXJldHVybiAhZnVuY3Mt PmF0b21pY19hc3luY19jaGVjayhwbGFuZSwgcGxhbmVfc3RhdGUpOwo+ID4gK30KPiA+ICsKPiA+ ICBzdGF0aWMgdm9pZCBkcm1fYXRvbWljX2NydGNfcHJpbnRfc3RhdGUoc3RydWN0IGRybV9wcmlu dGVyICpwLAo+ID4gIAkJY29uc3Qgc3RydWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSkKPiA+ICB7 Cj4gPiBAQCAtMTU5MSw2ICsxNjUzLDkgQEAgaW50IGRybV9hdG9taWNfY2hlY2tfb25seShzdHJ1 Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gPiAgCQl9Cj4gPiAgCX0KPiA+ICAKPiA+ICsJ aWYgKHN0YXRlLT5sZWdhY3lfY3Vyc29yX3VwZGF0ZSkKPiA+ICsJCXN0YXRlLT5hc3luY191cGRh dGUgPSBkcm1fYXRvbWljX2FzeW5jX2NoZWNrKHN0YXRlKTsKPiA+ICsKPiA+ICAJcmV0dXJuIHJl dDsKPiA+ICB9Cj4gPiAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2NoZWNrX29ubHkpOwo+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIGIvZHJpdmVy cy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPiA+IGluZGV4IDVhM2M5YzAuLmE4ZWZkZmUg MTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPiA+IEBAIC0xMjM1LDYg KzEyMzUsMzAgQEAgc3RhdGljIHZvaWQgY29tbWl0X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3 b3JrKQo+ID4gIH0KPiA+ICAKPiA+ICAvKioKPiA+ICsgKiBkcm1fYXRvbWljX2hlbHBlcl9hc3lu Y19jb21taXQgLSBjb21taXQgc3RhdGUgYXN5bmNocm9ub3VzbHkKPiA+ICsgKgo+ID4gKyAqIFRo aXMgZnVuY3Rpb24gY29tbWl0cyBhIHN0YXRlIGFzeW5jaHJvbm91c2x5LCBpLmUuLCBub3QgdmJs YW5rCj4gPiArICogc3luY2hyb25pemVkLiBJdCBzaG91bGQgYmUgdXNlZCBvbiBhIHN0YXRlIG9u bHkgd2hlbgo+ID4gKyAqIGRybV9hdG9taWNfYXN5bmNfY2hlY2soKSBzdWNjZWVkcy4gQXN5bmMg Y29tbWl0cyBhcmUgbm90IHN1cHBvc2VkIHRvIHN3YXAKPiA+ICsgKiB0aGUgc3RhdGVzIGxpa2Ug bm9ybWFsIHN5bmMgY29tbWl0cywgYnV0IGp1c3QgZG8gaW4tcGxhY2UgY2hhbmdlcyBvbiB0aGUK PiA+ICsgKiBjdXJyZW50IHN0YXRlLgo+ID4gKyAqLwo+ID4gK3ZvaWQgZHJtX2F0b21pY19oZWxw ZXJfYXN5bmNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPiArCQkJCSAgICBzdHJ1 Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gPiArewo+ID4gKwlzdHJ1Y3QgZHJtX3BsYW5l ICpwbGFuZTsKPiA+ICsJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGU7Cj4gPiAr CWNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfaGVscGVyX2Z1bmNzICpmdW5jczsKPiA+ICsJaW50IGk7 Cj4gPiArCj4gPiArCWZvcl9lYWNoX25ld19wbGFuZV9pbl9zdGF0ZShzdGF0ZSwgcGxhbmUsIHBs YW5lX3N0YXRlLCBpKSB7Cj4gPiArCQlmdW5jcyA9IHBsYW5lLT5oZWxwZXJfcHJpdmF0ZTsKPiA+ ICsJCWZ1bmNzLT5hdG9taWNfYXN5bmNfdXBkYXRlKHBsYW5lLCBwbGFuZV9zdGF0ZSk7Cj4gPiAr CX0KPiA+ICt9Cj4gPiArRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9hc3luY19jb21t aXQpOwo+ID4gKwo+ID4gKy8qKgo+ID4gICAqIGRybV9hdG9taWNfaGVscGVyX2NvbW1pdCAtIGNv bW1pdCB2YWxpZGF0ZWQgc3RhdGUgb2JqZWN0Cj4gPiAgICogQGRldjogRFJNIGRldmljZQo+ID4g ICAqIEBzdGF0ZTogdGhlIGRyaXZlciBzdGF0ZSBvYmplY3QKPiA+IEBAIC0xMjU4LDYgKzEyODIs MTcgQEAgaW50IGRybV9hdG9taWNfaGVscGVyX2NvbW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAo+ID4gIHsKPiA+ICAJaW50IHJldDsKPiA+ICAKPiA+ICsJaWYgKHN0YXRlLT5hc3luY191cGRh dGUpIHsKPiA+ICsJCXJldCA9IGRybV9hdG9taWNfaGVscGVyX3ByZXBhcmVfcGxhbmVzKGRldiwg c3RhdGUpOwo+ID4gKwkJaWYgKHJldCkKPiA+ICsJCQlyZXR1cm4gcmV0Owo+ID4gKwo+ID4gKwkJ ZHJtX2F0b21pY19oZWxwZXJfYXN5bmNfY29tbWl0KGRldiwgc3RhdGUpOwo+ID4gKwkJZHJtX2F0 b21pY19oZWxwZXJfY2xlYW51cF9wbGFuZXMoZGV2LCBzdGF0ZSk7Cj4gPiArCj4gPiArCQlyZXR1 cm4gMDsKPiA+ICsJfQo+ID4gKwo+ID4gIAlyZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9zZXR1cF9j b21taXQoc3RhdGUsIG5vbmJsb2NrKTsKPiA+ICAJaWYgKHJldCkKPiA+ICAJCXJldHVybiByZXQ7 Cj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oIGIvaW5jbHVkZS9kcm0v ZHJtX2F0b21pYy5oCj4gPiBpbmRleCA3ODhkYWY3Li43MGNhMjc5IDEwMDY0NAo+ID4gLS0tIGEv aW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oCj4gPiArKysgYi9pbmNsdWRlL2RybS9kcm1fYXRvbWlj LmgKPiA+IEBAIC0xNjAsNiArMTYwLDcgQEAgc3RydWN0IF9fZHJtX2Nvbm5uZWN0b3JzX3N0YXRl IHsKPiA+ICAgKiBAZGV2OiBwYXJlbnQgRFJNIGRldmljZQo+ID4gICAqIEBhbGxvd19tb2Rlc2V0 OiBhbGxvdyBmdWxsIG1vZGVzZXQKPiA+ICAgKiBAbGVnYWN5X2N1cnNvcl91cGRhdGU6IGhpbnQg dG8gZW5mb3JjZSBsZWdhY3kgY3Vyc29yIElPQ1RMIHNlbWFudGljcwo+ID4gKyAqIEBhc3luY191 cGRhdGU6IGhpbnQgZm9yIGFzeW5jaHJvbm91cyBwbGFuZSB1cGRhdGUKPiA+ICAgKiBAcGxhbmVz OiBwb2ludGVyIHRvIGFycmF5IG9mIHN0cnVjdHVyZXMgd2l0aCBwZXItcGxhbmUgZGF0YQo+ID4g ICAqIEBjcnRjczogcG9pbnRlciB0byBhcnJheSBvZiBDUlRDIHBvaW50ZXJzCj4gPiAgICogQG51 bV9jb25uZWN0b3I6IHNpemUgb2YgdGhlIEBjb25uZWN0b3JzIGFuZCBAY29ubmVjdG9yX3N0YXRl cyBhcnJheXMKPiA+IEBAIC0xNzIsNiArMTczLDcgQEAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUg ewo+ID4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2Owo+ID4gIAlib29sIGFsbG93X21vZGVzZXQg OiAxOwo+ID4gIAlib29sIGxlZ2FjeV9jdXJzb3JfdXBkYXRlIDogMTsKPiA+ICsJYm9vbCBhc3lu Y191cGRhdGUgOiAxOwo+ID4gIAlzdHJ1Y3QgX19kcm1fcGxhbmVzX3N0YXRlICpwbGFuZXM7Cj4g PiAgCXN0cnVjdCBfX2RybV9jcnRjc19zdGF0ZSAqY3J0Y3M7Cj4gPiAgCWludCBudW1fY29ubmVj dG9yOwo+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9hdG9taWNfaGVscGVyLmggYi9p bmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5oCj4gPiBpbmRleCBmMGE4Njc4Li44NTcxYjUx IDEwMDY0NAo+ID4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaAo+ID4gKysr IGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaAo+ID4gQEAgLTQ0LDYgKzQ0LDggQEAg dm9pZCBkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfdGFpbChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqc3RhdGUpOwo+ID4gIGludCBkcm1fYXRvbWljX2hlbHBlcl9jb21taXQoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKPiA+ICAJCQkgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwK PiA+ICAJCQkgICAgIGJvb2wgbm9uYmxvY2spOwo+ID4gK3ZvaWQgZHJtX2F0b21pY19oZWxwZXJf YXN5bmNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPiArCQkJCSAgICBzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwo+ID4gIAo+ID4gIGludCBkcm1fYXRvbWljX2hlbHBl cl93YWl0X2Zvcl9mZW5jZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ICAJCQkJCXN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9k cm1fbW9kZXNldF9oZWxwZXJfdnRhYmxlcy5oIGIvaW5jbHVkZS9kcm0vZHJtX21vZGVzZXRfaGVs cGVyX3Z0YWJsZXMuaAo+ID4gaW5kZXggYzAxYzMyOC4uNzk2NGE3OCAxMDA2NDQKPiA+IC0tLSBh L2luY2x1ZGUvZHJtL2RybV9tb2Rlc2V0X2hlbHBlcl92dGFibGVzLmgKPiA+ICsrKyBiL2luY2x1 ZGUvZHJtL2RybV9tb2Rlc2V0X2hlbHBlcl92dGFibGVzLmgKPiA+IEBAIC0xMDQ4LDYgKzEwNDgs NTQgQEAgc3RydWN0IGRybV9wbGFuZV9oZWxwZXJfZnVuY3Mgewo+ID4gIAkgKi8KPiA+ICAJdm9p ZCAoKmF0b21pY19kaXNhYmxlKShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiA+ICAJCQkgICAg ICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3N0YXRlKTsKPiA+ICsKPiA+ICsJLyoqCj4g PiArCSAqIEBhdG9taWNfYXN5bmNfY2hlY2s6Cj4gPiArCSAqCj4gPiArCSAqIERyaXZlcnMgc2hv dWxkIHNldCB0aGlzIGZ1bmN0aW9uIHBvaW50ZXIgdG8gY2hlY2sgaWYgdGhlIHBsYW5lIHN0YXRl Cj4gPiArCSAqIGNhbiBiZSB1cGRhdGVkIGluIGEgYXN5bmMgZmFzaGlvbi4gSGVyZSBhc3luYyBt ZWFucyAibm90IHZibGFuawo+ID4gKwkgKiBzeW5jaHJvbml6ZWQiLgo+ID4gKwkgKgo+ID4gKwkg KiBUaGlzIGhvb2sgaXMgY2FsbGVkIGJ5IGRybV9hdG9taWNfYXN5bmNfY2hlY2soKSB0byBlc3Rh Ymxpc2ggaWYgYQo+ID4gKwkgKiBnaXZlbiB1cGRhdGUgY2FuIGJlIGNvbW1pdHRlZCBhc3luY2hy b25vdXNseSwgdGhhdCBpcywgaWYgaXQgY2FuCj4gPiArCSAqIGp1bXAgYWhlYWQgdGhlIHN0YXRl IGN1cnJlbnRseSBxdWV1ZWQgZm9yIHVwZGF0ZS4KPiA+ICsJICoKPiA+ICsJICogUkVUVVJOUzoK PiA+ICsJICoKPiA+ICsJICogUmV0dXJuIDAgb24gc3VjY2VzcyBhbmQgYW55IGVycm9yIHJldHVy bmVkIGluZGljYXRlcyB0aGF0IHRoZSB1cGRhdGUKPiA+ICsJICogY2FuIG5vdCBiZSBhcHBsaWVk IGluIGFzeW5jaHJvbm91cyBtYW5uZXIuCj4gPiArCSAqLwo+ID4gKwlpbnQgKCphdG9taWNfYXN5 bmNfY2hlY2spKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4gKwkJCQkgIHN0cnVjdCBkcm1f cGxhbmVfc3RhdGUgKnN0YXRlKTsKPiA+ICsKPiA+ICsJLyoqCj4gPiArCSAqIEBhdG9taWNfYXN5 bmNfdXBkYXRlOgo+ID4gKwkgKgo+ID4gKwkgKiBEcml2ZXJzIHNob3VsZCBzZXQgdGhpcyBmdW5j dGlvbiBwb2ludGVyIHRvIHBlcmZvcm0gYXN5bmNocm9ub3VzCj4gPiArCSAqIHVwZGF0ZXMgb2Yg cGxhbmVzLCB0aGF0IGlzLCBqdW1wIGFoZWFkIHRoZSBjdXJyZW50bHkgcXVldWVkCj4gCj4gImp1 bXAgYWhlYWQgb2YgdGhlIgo+IAo+ID4gKwkgKiBzdGF0ZSBmb3IgYW5kIHVwZGF0ZSB0aGUgcGxh bmUuIEhlcmUgYXN5bmMgbWVhbnMgIm5vdCB2YmxhbmsKPiAKPiBzL2ZvciAvLwo+IAo+ID4gKwkg KiBzeW5jaHJvbml6ZWQiLgo+ID4gKwkgKgo+ID4gKwkgKiBUaGlzIGhvb2sgaXMgY2FsbGVkIGJ5 IGRybV9hdG9taWNfaGVscGVyX2FzeW5jX2NvbW1pdCgpLgo+ID4gKwkgKgo+ID4gKwkgKiBBbiBh c3luYyB1cGRhdGUgd2lsbCBoYXBwZW4gb24gbGVnYWN5IGN1cnNvciB1cGRhdGVzLgo+ID4gKwkg Kgo+ID4gKwkgKiBOb3RlIHRoYXQgdW5saWtlICZkcm1fcGxhbmVfaGVscGVyX2Z1bmNzLmF0b21p Y191cGRhdGUgdGhpcyBob29rCj4gPiArCSAqIHRha2VzIHRoZSBuZXcgJmRybV9wbGFuZV9zdGF0 ZSBhcyBwYXJhbWV0ZXIuIFdoZW4gZG9pbmcgYXN5bmNfdXBkYXRlCj4gPiArCSAqIGRyaXZlcnMg c2hvdWxkbid0IHJlcGxhY2UgdGhlICZkcm1fcGxhbmVfc3RhdGUgYnV0IHVwZGF0ZSB0aGUKPiA+ ICsJICogY3VycmVudCBvbmUgd2l0aCB0aGUgbmV3IHBsYW5lIGNvbmZpZ3VyYXRpb25zIGluIHRo ZSBuZXcKPiA+ICsJICogcGxhbmVfc3RhdGUuCj4gCj4gQWxzbyBtYXliZSBkb2N1bWVudCB0aGF0 IHRoaXMgd29uJ3QgYmUgY2FsbGVkIGlmIHRoZXJlIGlzIGFuIG91dHN0YW5kaW5nCj4gY29tbWl0 IG1vZGlmeWluZyB0aGUgcGxhbmU/Cj4gCj4gPiArCSAqCj4gPiArCSAqIEZJWE1FOgo+ID4gKwkg KiAgLSBJdCBvbmx5IHdvcmtzIGZvciBzaW5nbGUgcGxhbmUgdXBkYXRlcwo+ID4gKwkgKiAgLSBB c3luYyBQYWdlZmxpcHMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0Cj4gPiArCSAqICAtIFNvbWUgaG0g bWlnaHQgc3RpbGwgc2NhbiBvdXQgdGhlIG9sZCBidWZmZXIgdW50aWwgdGhlIG5leHQKPiAKPiAi U29tZSBodyI/Cj4gCj4gPiArCSAqICB2YmxhbmssIGhvd2V2ZXIgd2UgbGV0IGdvIG9mIHRoZSBm YiByZWZlcmVuY2VzIGFzIHNvb24gYXMKPiA+ICsJICogIHdlIHJ1biB0aGlzIGhvb2suIEZvciBu b3cgZHJpdmVycyBtdXN0IGltcGxlbWVudCB0aGVpciBvd24gd29ya2Vycwo+ID4gKwkgKiAgZm9y IGRlZmVyaW5nIGlmIG5lZWRlZCwgdW50aWwgYSBjb21tb24gc29sdXRpb24gaXMgY3JlYXRlZC4K PiA+ICsJICovCj4gCj4gImRlZmVycmluZyIKPiAKPiA+ICsJdm9pZCAoKmF0b21pY19hc3luY191 cGRhdGUpKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4gKwkJCQkgICAgc3RydWN0IGRybV9w bGFuZV9zdGF0ZSAqbmV3X3N0YXRlKTsKPiAKPiBJcyB0aGVyZSBhIHNpbXBsZSBsaXN0IG9mIHdo YXQgcGFydHMgb2YgZHJtX3BsYW5lX3N0YXRlIG1heSBjaGFuZ2UgaW4KPiB0aGlzIGhvb2s/ICBJ IG5vdGljZWQgdGhhdCB2YzQgd2Fzbid0IGNoZWNraW5nIHRoYXQgdGhlIGZvcm1hdCBkb2Vzbid0 Cj4gY2hhbmdlLCBmb3IgZXhhbXBsZS4gIEknbSBhbHNvIG5vdCBzdXJlIGlmIHdlJ3JlIGd1YXJh bnRlZWQgdGhhdCB0aGUKPiBwbGFuZS1pcy1lbmFibGVkIHN0YXRlIGlzbid0IGNoYW5naW5nLCBl aXRoZXIuCgpJIGNhbiBsb29rIGludG8gYnVpbGRpbmcgc3VjaCBhIGxpc3QuIEknbGwgZG8gdGhh dCBhbmQgc2VuZCBhIHByb3Bvc2VkCm9uZSBoZXJlLgoKPiAKPiBJZiBpdCdzICJldmVyeXRoaW5n Iiwgd2UnbGwgbmVlZCB0byBpbXByb3ZlIHRoZSB2YzQgYXN5bmMgY2hlY2sgYmVmb3JlCj4gd2Ug ZXhwb3NlIHRoaXMgdW5kZXIgYW55dGhpbmcgYnV0IHRoZSBjdXJzb3IgaW9jdGwuCgoKCUd1c3Rh dm8KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=