From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mathias =?ISO-8859-1?Q?Fr=F6hlich?= Subject: Re: [PATCH] drm/amd/display: Fix reference counting for struct dc_sink. Date: Wed, 20 Feb 2019 06:24:54 +0100 Message-ID: <19888642.k12MuCASrQ@notebook.internal> References: <20190210101301.5940-1-Mathias.Froehlich@gmx.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Alex Deucher Cc: "Daenzer, Michel" , Maling list - DRI developers , Christian Koenig , amd-gfx list , "Deucher, Alexander" , "Wentland, Harry" , "Kazlauskas, Nicholas" SGksCgpwaW5nPwouLi4gdG8gdGhlIGRjIGZvbGtzPwoKYmVzdApNYXRoaWFzCgpPbiBXZWRuZXNk YXksIDEzIEZlYnJ1YXJ5IDIwMTkgMjE6Mzg6MDMgQ0VUIEFsZXggRGV1Y2hlciB3cm90ZToKPiBB ZGQgYW1kLWdmeCBhbmQgc29tZSBEQyBwZW9wbGUuCj4gCj4gQWxleAo+IAo+IE9uIFN1biwgRmVi IDEwLCAyMDE5IGF0IDU6MTMgQU0gPE1hdGhpYXMuRnJvZWhsaWNoQGdteC5uZXQ+IHdyb3RlOgo+ ID4KPiA+IEZyb206IE1hdGhpYXMgRnLDtmhsaWNoIDxNYXRoaWFzLkZyb2VobGljaEBnbXgubmV0 Pgo+ID4KPiA+IFJlZmVyZW5jZSBjb3VudGluZyBpbiBhbWRncHVfZG1fY29ubmVjdG9yIGZvciBh bWRncHVfZG1fY29ubmVjdG9yOjpkY19zaW5rCj4gPiBhbmQgYW1kZ3B1X2RtX2Nvbm5lY3Rvcjo6 ZGNfZW1fc2luayBhcyB3ZWxsIGFzIGluIGRjX2xpbms6OmxvY2FsX3Npbmsgc2VlbXMKPiA+IHRv IGJlIG91dCBvZiBzaGFwZS4gVGh1cyBtYWtlIHJlZmVyZW5jZSBjb3VudGluZyBjb25zaXN0ZW50 IGZvciB0aGVzZQo+ID4gbWVtYmVycyBhbmQganVzdCBwbGFpbiBpbmNyZW1lbnQgdGhlIHJlZmVy ZW5jZSBjb3VudCB3aGVuIHRoZSB2YXJpYWJsZQo+ID4gZ2V0cyBhc3NpZ25lZCBhbmQgZGVjcmVt ZW50IHdoZW4gdGhlIHBvaW50ZXIgaXMgc2V0IHRvIHplcm8gb3IgcmVwbGFjZWQuCj4gPiBBbHNv IHNpbXBsaWZ5IHJlZmVyZW5jZSBjb3VudGluZyBpbiBzZWxlY3RlZCBmdW5jdGlvbiBzb3BlcyB0 byBiZSBzdXJlIHRoZQo+ID4gcmVmZXJlbmNlIGlzIHJlbGVhc2VkIGluIGFueSBjYXNlLiBJbiBz b21lIGNhc2VzIGFkZCBOVUxMIHBvaW50ZXIgY2hlY2sKPiA+IGJlZm9yZSBkZXJlZmVyZW5jaW5n Lgo+ID4gQXQgYSBoYW5kIGZ1bGwgb2YgcGxhY2VzIGEgY29tbWVudCBpcyBwbGFjZWQgdG8gc3Rh dCB0aGF0IHRoZSByZWZlcmVuY2UKPiA+IGluY3JlbWVudCBoYXBwZW5lZCBhbHJlYWR5IHNvbWV3 aGVyZSBlbHNlLgo+ID4KPiA+IFRoaXMgYWN0dWFsbHkgZml4ZXMgdGhlIGZvbGxvd2luZyBrZXJu ZWwgYnVnIG9uIG15IHN5c3RlbSB3aGVuIGVuYWJsaW5nCj4gPiBkaXNwbGF5IGNvcmUgaW4gYW1k Z3B1LiBUaGVyZSBhcmUgc29tZSBtb3JlIHNpbWlsYXIgYnVnIHJlcG9ydHMgYXJvdW5kLAo+ID4g c28gaXQgcHJvYmFibHkgaGVscHMgYXQgbW9yZSBwbGFjZXMuCj4gPgo+ID4gICAga2VybmVsIEJV RyBhdCBtbS9zbHViLmM6Mjk0IQo+ID4gICAgaW52YWxpZCBvcGNvZGU6IDAwMDAgWyMxXSBTTVAg UFRJCj4gPiAgICBDUFU6IDkgUElEOiAxMTgwIENvbW06IFhvcmcgTm90IHRhaW50ZWQgNS4wLjAt cmMxKyAjMgo+ID4gICAgSGFyZHdhcmUgbmFtZTogU3VwZXJtaWNybyBYMTBEQWkvWDEwREFJLCBC SU9TIDMuMGEgMDIvMDUvMjAxOAo+ID4gICAgUklQOiAwMDEwOl9fc2xhYl9mcmVlKzB4MWUyLzB4 M2QwCj4gPiAgICBDb2RlOiA4YiA1NCAyNCAzMCA0OCA4OSA0YyAyNCAyOCBlOCBkYSBmYiBmZiBm ZiA0YyA4YiA1NCAyNCAyOCA4NSBjMCAwZiA4NSA2NyBmZSBmZiBmZiA0OCA4ZCA2NSBkOCA1YiA0 MSA1YyA0MSA1ZCA0MSA1ZSA0MSA1ZiA1ZCBjMyA8MGY+IDBiIDQ5IDNiIDVjIDI0IDI4IDc1IGFi IDQ4IDhiIDQ0IDI0IDMwIDQ5IDg5IDRjIDI0IDI4IDQ5IDg5IDQ0Cj4gPiAgICBSU1A6IDAwMTg6 ZmZmZmIwOTc4NTg5ZmE5MCBFRkxBR1M6IDAwMDEwMjQ2Cj4gPiAgICBSQVg6IGZmZmY5MmYxMjgw NmM0MDAgUkJYOiAwMDAwMDAwMDgwMjAwMDE5IFJDWDogZmZmZjkyZjEyODA2YzQwMAo+ID4gICAg UkRYOiBmZmZmOTJmMTI4MDZjNDAwIFJTSTogZmZmZmRkNjQyMWEwMWEwMCBSREk6IGZmZmY5MmVk MmY0MDZlODAKPiA+ICAgIFJCUDogZmZmZmIwOTc4NTg5ZmI0MCBSMDg6IDAwMDAwMDAwMDAwMDAw MDEgUjA5OiBmZmZmZmZmZmMwZWU0NzQ4Cj4gPiAgICBSMTA6IGZmZmY5MmYxMjgwNmM0MDAgUjEx OiAwMDAwMDAwMDAwMDAwMDAxIFIxMjogZmZmZmRkNjQyMWEwMWEwMAo+ID4gICAgUjEzOiBmZmZm OTJmMTI4MDZjNDAwIFIxNDogZmZmZjkyZWQyZjQwNmU4MCBSMTU6IGZmZmZkZDY0MjFhMDFhMjAK PiA+ICAgIEZTOiAgMDAwMDdmNDE3MGJlMGFjMCgwMDAwKSBHUzpmZmZmOTJlZDJmYjQwMDAwKDAw MDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKPiA+ICAgIENTOiAgMDAxMCBEUzogMDAwMCBFUzog MDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwMzMKPiA+ICAgIENSMjogMDAwMDU2MjgxOGFhYTAwMCBD UjM6IDAwMDAwMDA0NTc0NWEwMDIgQ1I0OiAwMDAwMDAwMDAwMzYwNmUwCj4gPiAgICBEUjA6IDAw MDAwMDAwMDAwMDAwMDAgRFIxOiAwMDAwMDAwMDAwMDAwMDAwIERSMjogMDAwMDAwMDAwMDAwMDAw MAo+ID4gICAgRFIzOiAwMDAwMDAwMDAwMDAwMDAwIERSNjogMDAwMDAwMDBmZmZlMGZmMCBEUjc6 IDAwMDAwMDAwMDAwMDA0MDAKPiA+ICAgIENhbGwgVHJhY2U6Cj4gPiAgICAgPyBkcm1fZGJnKzB4 ODcvMHg5MCBbZHJtXQo+ID4gICAgIGRjX3N0cmVhbV9yZWxlYXNlKzB4MjgvMHg1MCBbYW1kZ3B1 XQo+ID4gICAgIGFtZGdwdV9kbV9jb25uZWN0b3JfbW9kZV92YWxpZCsweGI0LzB4MWYwIFthbWRn cHVdCj4gPiAgICAgZHJtX2hlbHBlcl9wcm9iZV9zaW5nbGVfY29ubmVjdG9yX21vZGVzKzB4NDky LzB4NmIwIFtkcm1fa21zX2hlbHBlcl0KPiA+ICAgICBkcm1fbW9kZV9nZXRjb25uZWN0b3IrMHg0 NTcvMHg0OTAgW2RybV0KPiA+ICAgICA/IGRybV9jb25uZWN0b3JfcHJvcGVydHlfc2V0X2lvY3Rs KzB4NjAvMHg2MCBbZHJtXQo+ID4gICAgIGRybV9pb2N0bF9rZXJuZWwrMHhhOS8weGYwIFtkcm1d Cj4gPiAgICAgZHJtX2lvY3RsKzB4MjAxLzB4M2EwIFtkcm1dCj4gPiAgICAgPyBkcm1fY29ubmVj dG9yX3Byb3BlcnR5X3NldF9pb2N0bCsweDYwLzB4NjAgW2RybV0KPiA+ICAgICBhbWRncHVfZHJt X2lvY3RsKzB4NDkvMHg4MCBbYW1kZ3B1XQo+ID4gICAgIGRvX3Zmc19pb2N0bCsweGE0LzB4NjMw Cj4gPiAgICAgPyBfX3N5c19yZWN2bXNnKzB4ODMvMHhhMAo+ID4gICAgIGtzeXNfaW9jdGwrMHg2 MC8weDkwCj4gPiAgICAgX194NjRfc3lzX2lvY3RsKzB4MTYvMHgyMAo+ID4gICAgIGRvX3N5c2Nh bGxfNjQrMHg1Yi8weDE2MAo+ID4gICAgIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsw eDQ0LzB4YTkKPiA+ICAgIFJJUDogMDAzMzoweDdmNDE3MTEwODA5Ygo+ID4gICAgQ29kZTogMGYg MWUgZmEgNDggOGIgMDUgZWQgYmQgMGMgMDAgNjQgYzcgMDAgMjYgMDAgMDAgMDAgNDggYzcgYzAg ZmYgZmYgZmYgZmYgYzMgNjYgMGYgMWYgNDQgMDAgMDAgZjMgMGYgMWUgZmEgYjggMTAgMDAgMDAg MDAgMGYgMDUgPDQ4PiAzZCAwMSBmMCBmZiBmZiA3MyAwMSBjMyA0OCA4YiAwZCBiZCBiZCAwYyAw MCBmNyBkOCA2NCA4OSAwMSA0OAo+ID4gICAgUlNQOiAwMDJiOjAwMDA3ZmZkZDhkMWMyNjggRUZM QUdTOiAwMDAwMDI0NiBPUklHX1JBWDogMDAwMDAwMDAwMDAwMDAxMAo+ID4gICAgUkFYOiBmZmZm ZmZmZmZmZmZmZmRhIFJCWDogMDAwMDU2MjgxOGE4ZWJjMCBSQ1g6IDAwMDA3ZjQxNzExMDgwOWIK PiA+ICAgIFJEWDogMDAwMDdmZmRkOGQxYzJhMCBSU0k6IDAwMDAwMDAwYzA1MDY0YTcgUkRJOiAw MDAwMDAwMDAwMDAwMDEyCj4gPiAgICBSQlA6IDAwMDA3ZmZkZDhkMWMyYTAgUjA4OiAwMDAwNTYy ODE5MDEyMjgwIFIwOTogMDAwMDAwMDAwMDAwMDAwNwo+ID4gICAgUjEwOiAwMDAwMDAwMDAwMDAw MDAwIFIxMTogMDAwMDAwMDAwMDAwMDI0NiBSMTI6IDAwMDAwMDAwYzA1MDY0YTcKPiA+ICAgIFIx MzogMDAwMDAwMDAwMDAwMDAxMiBSMTQ6IDAwMDAwMDAwMDAwMDAwMTIgUjE1OiAwMDAwN2ZmZGQ4 ZDFjMmEwCj4gPiAgICBNb2R1bGVzIGxpbmtlZCBpbjogbmZzdjQgZG5zX3Jlc29sdmVyIG5mcyBs b2NrZCBncmFjZSBmc2NhY2hlIGZ1c2UgdmZhdCBmYXQgYW1kZ3B1IGludGVsX3JhcGwgc2JfZWRh YyB4ODZfcGtnX3RlbXBfdGhlcm1hbCBpbnRlbF9wb3dlcmNsYW1wIGNvcmV0ZW1wIGt2bV9pbnRl bCBrdm0gaXJxYnlwYXNzIGNyY3QxMGRpZl9wY2xtdWwgY2hhc2ggZ3B1X3NjaGVkIGNyYzMyX3Bj bG11bCBzbmRfaGRhX2NvZGVjX3JlYWx0ZWsgZ2hhc2hfY2xtdWxuaV9pbnRlbCBhbWRfaW9tbXVf djIgaVRDT193ZHQgaVRDT192ZW5kb3Jfc3VwcG9ydCB0dG0gc25kX2hkYV9jb2RlY19nZW5lcmlj IHNuZF9oZGFfY29kZWNfaGRtaSBsZWR0cmlnX2F1ZGlvIHNuZF9oZGFfaW50ZWwgZHJtX2ttc19o ZWxwZXIgc25kX2hkYV9jb2RlYyBpbnRlbF9jc3RhdGUgc25kX2hkYV9jb3JlIGRybSBzbmRfaHdk ZXAgc25kX3NlcSBzbmRfc2VxX2RldmljZSBpbnRlbF91bmNvcmUgc25kX3BjbSBpbnRlbF9yYXBs X3BlcmYgc25kX3RpbWVyIHNuZCBzb3VuZGNvcmUgaW9hdGRtYSBwY3Nwa3IgaW50ZWxfd21pX3Ro dW5kZXJib2x0IG14bV93bWkgaTJjX2k4MDEgbHBjX2ljaCBwY2NfY3B1ZnJlcSBhdXRoX3JwY2dz cyBzdW5ycGMgaWdiIGNyYzMyY19pbnRlbCBpMmNfYWxnb19iaXQgZGNhIHdtaSBoaWRfY2hlcnJ5 IGFuYWxvZyBnYW1lcG9ydCBqb3lkZXYKPiA+Cj4gPiBUaGlzIHBhdGNoIGlzIGJhc2VkIG9uIGFn ZDVmL2RybS1uZXh0LTUuMS13aXAuIFRoaXMgcGF0Y2ggZG9lcyBub3QgcmVxdWlyZQo+ID4gYWxs IG9mIHRoYXQsIGJ1dCBhZ2Q1Zi9kcm0tbmV4dC01LjEtd2lwIGNvbnRhaW5zIGF0IGxlYXN0IG9u ZSBtb3JlIGRjX3NpbmsKPiA+IGNvdW50aW5nIGZpeCB0aGF0IEkgY291bGQgc3BvdC4KPiA+Cj4g PiBTaWduZWQtb2ZmLWJ5OiBNYXRoaWFzIEZyw7ZobGljaCA8TWF0aGlhcy5Gcm9laGxpY2hAd2Vi LmRlPgo+ID4gLS0tCj4gPiAgLi4uL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdw dV9kbS5jIHwgNDMgKysrKysrKysrKysrKysrLS0tLQo+ID4gIC4uLi9kaXNwbGF5L2FtZGdwdV9k bS9hbWRncHVfZG1fbXN0X3R5cGVzLmMgICB8ICAxICsKPiA+ICBkcml2ZXJzL2dwdS9kcm0vYW1k L2Rpc3BsYXkvZGMvY29yZS9kY19saW5rLmMgfCAgMSArCj4gPiAgMyBmaWxlcyBjaGFuZ2VkLCAz NyBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQo+ID4KPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbS5jIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uYwo+ID4gaW5kZXggM2E2ZjU5 NWYyOTVlLi4yMGZhMDFiZmY2ODUgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbS5jCj4gPiBAQCAtODg2LDYgKzg4Niw3IEBA IHN0YXRpYyB2b2lkIGVtdWxhdGVkX2xpbmtfZGV0ZWN0KHN0cnVjdCBkY19saW5rICpsaW5rKQo+ ID4gICAgICAgICAgICAgICAgIHJldHVybjsKPiA+ICAgICAgICAgfQo+ID4KPiA+ICsgICAgICAg LyogZGNfc2lua19jcmVhdGUgcmV0dXJucyBhIG5ldyByZWZlcmVuY2UgKi8KPiA+ICAgICAgICAg bGluay0+bG9jYWxfc2luayA9IHNpbms7Cj4gPgo+ID4gICAgICAgICBlZGlkX3N0YXR1cyA9IGRt X2hlbHBlcnNfcmVhZF9sb2NhbF9lZGlkKAo+ID4gQEAgLTk1Miw2ICs5NTMsOCBAQCBzdGF0aWMg aW50IGRtX3Jlc3VtZSh2b2lkICpoYW5kbGUpCj4gPiAgICAgICAgICAgICAgICAgaWYgKGFjb25u ZWN0b3ItPmZha2VfZW5hYmxlICYmIGFjb25uZWN0b3ItPmRjX2xpbmstPmxvY2FsX3NpbmspCj4g PiAgICAgICAgICAgICAgICAgICAgICAgICBhY29ubmVjdG9yLT5mYWtlX2VuYWJsZSA9IGZhbHNl Owo+ID4KPiA+ICsgICAgICAgICAgICAgICBpZiAoYWNvbm5lY3Rvci0+ZGNfc2luaykKPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgIGRjX3NpbmtfcmVsZWFzZShhY29ubmVjdG9yLT5kY19zaW5r KTsKPiA+ICAgICAgICAgICAgICAgICBhY29ubmVjdG9yLT5kY19zaW5rID0gTlVMTDsKPiA+ICAg ICAgICAgICAgICAgICBhbWRncHVfZG1fdXBkYXRlX2Nvbm5lY3Rvcl9hZnRlcl9kZXRlY3QoYWNv bm5lY3Rvcik7Cj4gPiAgICAgICAgICAgICAgICAgbXV0ZXhfdW5sb2NrKCZhY29ubmVjdG9yLT5o cGRfbG9jayk7Cj4gPiBAQCAtMTA2MSw2ICsxMDY0LDggQEAgYW1kZ3B1X2RtX3VwZGF0ZV9jb25u ZWN0b3JfYWZ0ZXJfZGV0ZWN0KHN0cnVjdCBhbWRncHVfZG1fY29ubmVjdG9yICphY29ubmVjdG9y KQo+ID4KPiA+Cj4gPiAgICAgICAgIHNpbmsgPSBhY29ubmVjdG9yLT5kY19saW5rLT5sb2NhbF9z aW5rOwo+ID4gKyAgICAgICBpZiAoc2luaykKPiA+ICsgICAgICAgICAgICAgICBkY19zaW5rX3Jl dGFpbihzaW5rKTsKPiA+Cj4gPiAgICAgICAgIC8qCj4gPiAgICAgICAgICAqIEVkaWQgbWdtdCBj b25uZWN0b3IgZ2V0cyBmaXJzdCB1cGRhdGUgb25seSBpbiBtb2RlX3ZhbGlkIGhvb2sgYW5kIHRo ZW4KPiA+IEBAIC0xMDg1LDIxICsxMDkwLDI0IEBAIGFtZGdwdV9kbV91cGRhdGVfY29ubmVjdG9y X2FmdGVyX2RldGVjdChzdHJ1Y3QgYW1kZ3B1X2RtX2Nvbm5lY3RvciAqYWNvbm5lY3RvcikKPiA+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogdG8gaXQgYW55bW9yZSBhZnRlciBk aXNjb25uZWN0LCBzbyBvbiBuZXh0IGNydGMgdG8gY29ubmVjdG9yCj4gPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAqIHJlc2h1ZmZsZSBieSBVTUQgd2Ugd2lsbCBnZXQgaW50byB1 bndhbnRlZCBkY19zaW5rIHJlbGVhc2UKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICovCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhY29ubmVjdG9y LT5kY19zaW5rICE9IGFjb25uZWN0b3ItPmRjX2VtX3NpbmspCj4gPiAtICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGNfc2lua19yZWxlYXNlKGFjb25uZWN0b3ItPmRjX3Np bmspOwo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkY19zaW5rX3JlbGVhc2Uo YWNvbm5lY3Rvci0+ZGNfc2luayk7Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgICB9Cj4gPiAg ICAgICAgICAgICAgICAgICAgICAgICBhY29ubmVjdG9yLT5kY19zaW5rID0gc2luazsKPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgIGRjX3NpbmtfcmV0YWluKGFjb25uZWN0b3ItPmRjX3Npbmsp Owo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgYW1kZ3B1X2RtX3VwZGF0ZV9mcmVlc3luY19j YXBzKGNvbm5lY3RvciwKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhY29ubmVjdG9yLT5lZGlkKTsKPiA+ICAgICAgICAgICAgICAgICB9IGVsc2Ugewo+ID4gICAg ICAgICAgICAgICAgICAgICAgICAgYW1kZ3B1X2RtX3VwZGF0ZV9mcmVlc3luY19jYXBzKGNvbm5l Y3RvciwgTlVMTCk7Cj4gPiAtICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWFjb25uZWN0b3It PmRjX3NpbmspCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWFjb25uZWN0b3ItPmRj X3NpbmspIHsKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNvbm5lY3Rvci0+ ZGNfc2luayA9IGFjb25uZWN0b3ItPmRjX2VtX3Npbms7Cj4gPiAtICAgICAgICAgICAgICAgICAg ICAgICBlbHNlIGlmIChhY29ubmVjdG9yLT5kY19zaW5rICE9IGFjb25uZWN0b3ItPmRjX2VtX3Np bmspCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRjX3NpbmtfcmV0YWluKGFj b25uZWN0b3ItPmRjX3NpbmspOwo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgfQo+ID4gICAg ICAgICAgICAgICAgIH0KPiA+Cj4gPiAgICAgICAgICAgICAgICAgbXV0ZXhfdW5sb2NrKCZkZXYt Pm1vZGVfY29uZmlnLm11dGV4KTsKPiA+ICsKPiA+ICsgICAgICAgICAgICAgICBpZiAoc2luaykK PiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGRjX3NpbmtfcmVsZWFzZShzaW5rKTsKPiA+ICAg ICAgICAgICAgICAgICByZXR1cm47Cj4gPiAgICAgICAgIH0KPiA+Cj4gPiBAQCAtMTEwNyw4ICsx MTE1LDEwIEBAIGFtZGdwdV9kbV91cGRhdGVfY29ubmVjdG9yX2FmdGVyX2RldGVjdChzdHJ1Y3Qg YW1kZ3B1X2RtX2Nvbm5lY3RvciAqYWNvbm5lY3RvcikKPiA+ICAgICAgICAgICogVE9ETzogdGVt cG9yYXJ5IGd1YXJkIHRvIGxvb2sgZm9yIHByb3BlciBmaXgKPiA+ICAgICAgICAgICogaWYgdGhp cyBzaW5rIGlzIE1TVCBzaW5rLCB3ZSBzaG91bGQgbm90IGRvIGFueXRoaW5nCj4gPiAgICAgICAg ICAqLwo+ID4gLSAgICAgICBpZiAoc2luayAmJiBzaW5rLT5zaW5rX3NpZ25hbCA9PSBTSUdOQUxf VFlQRV9ESVNQTEFZX1BPUlRfTVNUKQo+ID4gKyAgICAgICBpZiAoc2luayAmJiBzaW5rLT5zaW5r X3NpZ25hbCA9PSBTSUdOQUxfVFlQRV9ESVNQTEFZX1BPUlRfTVNUKSB7Cj4gPiArICAgICAgICAg ICAgICAgZGNfc2lua19yZWxlYXNlKHNpbmspOwo+ID4gICAgICAgICAgICAgICAgIHJldHVybjsK PiA+ICsgICAgICAgfQo+ID4KPiA+ICAgICAgICAgaWYgKGFjb25uZWN0b3ItPmRjX3NpbmsgPT0g c2luaykgewo+ID4gICAgICAgICAgICAgICAgIC8qCj4gPiBAQCAtMTExNyw2ICsxMTI3LDggQEAg YW1kZ3B1X2RtX3VwZGF0ZV9jb25uZWN0b3JfYWZ0ZXJfZGV0ZWN0KHN0cnVjdCBhbWRncHVfZG1f Y29ubmVjdG9yICphY29ubmVjdG9yKQo+ID4gICAgICAgICAgICAgICAgICAqLwo+ID4gICAgICAg ICAgICAgICAgIERSTV9ERUJVR19EUklWRVIoIkRDSFBEOiBjb25uZWN0b3JfaWQ9JWQ6IGRjX3Np bmsgZGlkbid0IGNoYW5nZS5cbiIsCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFjb25uZWN0b3ItPmNvbm5lY3Rvcl9pZCk7Cj4gPiArICAgICAgICAgICAgICAgaWYgKHNpbmsp Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICBkY19zaW5rX3JlbGVhc2Uoc2luayk7Cj4gPiAg ICAgICAgICAgICAgICAgcmV0dXJuOwo+ID4gICAgICAgICB9Cj4gPgo+ID4gQEAgLTExMzgsNiAr MTE1MCw3IEBAIGFtZGdwdV9kbV91cGRhdGVfY29ubmVjdG9yX2FmdGVyX2RldGVjdChzdHJ1Y3Qg YW1kZ3B1X2RtX2Nvbm5lY3RvciAqYWNvbm5lY3RvcikKPiA+ICAgICAgICAgICAgICAgICAgICAg ICAgIGFtZGdwdV9kbV91cGRhdGVfZnJlZXN5bmNfY2Fwcyhjb25uZWN0b3IsIE5VTEwpOwo+ID4K PiA+ICAgICAgICAgICAgICAgICBhY29ubmVjdG9yLT5kY19zaW5rID0gc2luazsKPiA+ICsgICAg ICAgICAgICAgICBkY19zaW5rX3JldGFpbihhY29ubmVjdG9yLT5kY19zaW5rKTsKPiA+ICAgICAg ICAgICAgICAgICBpZiAoc2luay0+ZGNfZWRpZC5sZW5ndGggPT0gMCkgewo+ID4gICAgICAgICAg ICAgICAgICAgICAgICAgYWNvbm5lY3Rvci0+ZWRpZCA9IE5VTEw7Cj4gPiAgICAgICAgICAgICAg ICAgICAgICAgICBkcm1fZHBfY2VjX3Vuc2V0X2VkaWQoJmFjb25uZWN0b3ItPmRtX2RwX2F1eC5h dXgpOwo+ID4gQEAgLTExNTgsMTEgKzExNzEsMTUgQEAgYW1kZ3B1X2RtX3VwZGF0ZV9jb25uZWN0 b3JfYWZ0ZXJfZGV0ZWN0KHN0cnVjdCBhbWRncHVfZG1fY29ubmVjdG9yICphY29ubmVjdG9yKQo+ ID4gICAgICAgICAgICAgICAgIGFtZGdwdV9kbV91cGRhdGVfZnJlZXN5bmNfY2Fwcyhjb25uZWN0 b3IsIE5VTEwpOwo+ID4gICAgICAgICAgICAgICAgIGRybV9jb25uZWN0b3JfdXBkYXRlX2VkaWRf cHJvcGVydHkoY29ubmVjdG9yLCBOVUxMKTsKPiA+ICAgICAgICAgICAgICAgICBhY29ubmVjdG9y LT5udW1fbW9kZXMgPSAwOwo+ID4gKyAgICAgICAgICAgICAgIGRjX3NpbmtfcmVsZWFzZShhY29u bmVjdG9yLT5kY19zaW5rKTsKPiA+ICAgICAgICAgICAgICAgICBhY29ubmVjdG9yLT5kY19zaW5r ID0gTlVMTDsKPiA+ICAgICAgICAgICAgICAgICBhY29ubmVjdG9yLT5lZGlkID0gTlVMTDsKPiA+ ICAgICAgICAgfQo+ID4KPiA+ICAgICAgICAgbXV0ZXhfdW5sb2NrKCZkZXYtPm1vZGVfY29uZmln Lm11dGV4KTsKPiA+ICsKPiA+ICsgICAgICAgaWYgKHNpbmspCj4gPiArICAgICAgICAgICAgICAg ZGNfc2lua19yZWxlYXNlKHNpbmspOwo+ID4gIH0KPiA+Cj4gPiAgc3RhdGljIHZvaWQgaGFuZGxl X2hwZF9pcnEodm9pZCAqcGFyYW0pCj4gPiBAQCAtMjk3Nyw2ICsyOTk0LDcgQEAgY3JlYXRlX3N0 cmVhbV9mb3Jfc2luayhzdHJ1Y3QgYW1kZ3B1X2RtX2Nvbm5lY3RvciAqYWNvbm5lY3RvciwKPiA+ ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdHJlYW07Cj4gPiAgICAgICAgIH0gZWxz ZSB7Cj4gPiAgICAgICAgICAgICAgICAgc2luayA9IGFjb25uZWN0b3ItPmRjX3Npbms7Cj4gPiAr ICAgICAgICAgICAgICAgZGNfc2lua19yZXRhaW4oc2luayk7Cj4gPiAgICAgICAgIH0KPiA+Cj4g PiAgICAgICAgIHN0cmVhbSA9IGRjX2NyZWF0ZV9zdHJlYW1fZm9yX3Npbmsoc2luayk7Cj4gPiBA QCAtMzA0Miw4ICszMDYwLDcgQEAgY3JlYXRlX3N0cmVhbV9mb3Jfc2luayhzdHJ1Y3QgYW1kZ3B1 X2RtX2Nvbm5lY3RvciAqYWNvbm5lY3RvciwKPiA+ICAgICAgICAgdXBkYXRlX3N0cmVhbV9zaWdu YWwoc3RyZWFtLCBzaW5rKTsKPiA+Cj4gPiAgZmluaXNoOgo+ID4gLSAgICAgICBpZiAoc2luayAm JiBzaW5rLT5zaW5rX3NpZ25hbCA9PSBTSUdOQUxfVFlQRV9WSVJUVUFMICYmIGFjb25uZWN0b3It PmJhc2UuZm9yY2UgIT0gRFJNX0ZPUkNFX09OKQo+ID4gLSAgICAgICAgICAgICAgIGRjX3Npbmtf cmVsZWFzZShzaW5rKTsKPiA+ICsgICAgICAgZGNfc2lua19yZWxlYXNlKHNpbmspOwo+ID4KPiA+ ICAgICAgICAgcmV0dXJuIHN0cmVhbTsKPiA+ICB9Cj4gPiBAQCAtMzMwMSw2ICszMzE4LDE0IEBA IHN0YXRpYyB2b2lkIGFtZGdwdV9kbV9jb25uZWN0b3JfZGVzdHJveShzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yKQo+ID4gICAgICAgICAgICAgICAgIGRtLT5iYWNrbGlnaHRfZGV2ID0g TlVMTDsKPiA+ICAgICAgICAgfQo+ID4gICNlbmRpZgo+ID4gKwo+ID4gKyAgICAgICBpZiAoYWNv bm5lY3Rvci0+ZGNfZW1fc2luaykKPiA+ICsgICAgICAgICAgICAgICBkY19zaW5rX3JlbGVhc2Uo YWNvbm5lY3Rvci0+ZGNfZW1fc2luayk7Cj4gPiArICAgICAgIGFjb25uZWN0b3ItPmRjX2VtX3Np bmsgPSBOVUxMOwo+ID4gKyAgICAgICBpZiAoYWNvbm5lY3Rvci0+ZGNfc2luaykKPiA+ICsgICAg ICAgICAgICAgICBkY19zaW5rX3JlbGVhc2UoYWNvbm5lY3Rvci0+ZGNfc2luayk7Cj4gPiArICAg ICAgIGFjb25uZWN0b3ItPmRjX3NpbmsgPSBOVUxMOwo+ID4gKwo+ID4gICAgICAgICBkcm1fZHBf Y2VjX3VucmVnaXN0ZXJfY29ubmVjdG9yKCZhY29ubmVjdG9yLT5kbV9kcF9hdXguYXV4KTsKPiA+ ICAgICAgICAgZHJtX2Nvbm5lY3Rvcl91bnJlZ2lzdGVyKGNvbm5lY3Rvcik7Cj4gPiAgICAgICAg IGRybV9jb25uZWN0b3JfY2xlYW51cChjb25uZWN0b3IpOwo+ID4gQEAgLTMzOTgsMTAgKzM0MjMs MTIgQEAgc3RhdGljIHZvaWQgY3JlYXRlX2VtbF9zaW5rKHN0cnVjdCBhbWRncHVfZG1fY29ubmVj dG9yICphY29ubmVjdG9yKQo+ID4gICAgICAgICAgICAgICAgIChlZGlkLT5leHRlbnNpb25zICsg MSkgKiBFRElEX0xFTkdUSCwKPiA+ICAgICAgICAgICAgICAgICAmaW5pdF9wYXJhbXMpOwo+ID4K PiA+IC0gICAgICAgaWYgKGFjb25uZWN0b3ItPmJhc2UuZm9yY2UgPT0gRFJNX0ZPUkNFX09OKQo+ ID4gKyAgICAgICBpZiAoYWNvbm5lY3Rvci0+YmFzZS5mb3JjZSA9PSBEUk1fRk9SQ0VfT04pIHsK PiA+ICAgICAgICAgICAgICAgICBhY29ubmVjdG9yLT5kY19zaW5rID0gYWNvbm5lY3Rvci0+ZGNf bGluay0+bG9jYWxfc2luayA/Cj4gPiAgICAgICAgICAgICAgICAgYWNvbm5lY3Rvci0+ZGNfbGlu ay0+bG9jYWxfc2luayA6Cj4gPiAgICAgICAgICAgICAgICAgYWNvbm5lY3Rvci0+ZGNfZW1fc2lu azsKPiA+ICsgICAgICAgICAgICAgICBkY19zaW5rX3JldGFpbihhY29ubmVjdG9yLT5kY19zaW5r KTsKPiA+ICsgICAgICAgfQo+ID4gIH0KPiA+Cj4gPiAgc3RhdGljIHZvaWQgaGFuZGxlX2VkaWRf bWdtdChzdHJ1Y3QgYW1kZ3B1X2RtX2Nvbm5lY3RvciAqYWNvbm5lY3RvcikKPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbV9tc3Rf dHlwZXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2Rt X21zdF90eXBlcy5jCj4gPiBpbmRleCA0NGMxYTAyZTY0NTIuLjVlNTI0ZDczMzI0OSAxMDA2NDQK PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2Rt X21zdF90eXBlcy5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1 X2RtL2FtZGdwdV9kbV9tc3RfdHlwZXMuYwo+ID4gQEAgLTE5MCw2ICsxOTAsNyBAQCBzdGF0aWMg aW50IGRtX2RwX21zdF9nZXRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikK PiA+ICAgICAgICAgICAgICAgICAgICAgICAgICZpbml0X3BhcmFtcyk7Cj4gPgo+ID4gICAgICAg ICAgICAgICAgIGRjX3NpbmstPnByaXYgPSBhY29ubmVjdG9yOwo+ID4gKyAgICAgICAgICAgICAg IC8qIGRjX2xpbmtfYWRkX3JlbW90ZV9zaW5rIHJldHVybnMgYSBuZXcgcmVmZXJlbmNlICovCj4g PiAgICAgICAgICAgICAgICAgYWNvbm5lY3Rvci0+ZGNfc2luayA9IGRjX3Npbms7Cj4gPgo+ID4g ICAgICAgICAgICAgICAgIGlmIChhY29ubmVjdG9yLT5kY19zaW5rKQo+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jb3JlL2RjX2xpbmsuYyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvZGlzcGxheS9kYy9jb3JlL2RjX2xpbmsuYwo+ID4gaW5kZXggN2Y1YTk0N2Fk MzFkLi43OTIxMTRlNzM3Y2UgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rp c3BsYXkvZGMvY29yZS9kY19saW5rLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlz cGxheS9kYy9jb3JlL2RjX2xpbmsuYwo+ID4gQEAgLTc5NCw2ICs3OTQsNyBAQCBib29sIGRjX2xp bmtfZGV0ZWN0KHN0cnVjdCBkY19saW5rICpsaW5rLCBlbnVtIGRjX2RldGVjdF9yZWFzb24gcmVh c29uKQo+ID4gICAgICAgICAgICAgICAgIHNpbmstPmxpbmstPmRvbmdsZV9tYXhfcGl4X2NsayA9 IHNpbmtfY2Fwcy5tYXhfaGRtaV9waXhlbF9jbG9jazsKPiA+ICAgICAgICAgICAgICAgICBzaW5r LT5jb252ZXJ0ZXJfZGlzYWJsZV9hdWRpbyA9IGNvbnZlcnRlcl9kaXNhYmxlX2F1ZGlvOwo+ID4K PiA+ICsgICAgICAgICAgICAgICAvKiBkY19zaW5rX2NyZWF0ZSByZXR1cm5zIGEgbmV3IHJlZmVy ZW5jZSAqLwo+ID4gICAgICAgICAgICAgICAgIGxpbmstPmxvY2FsX3NpbmsgPSBzaW5rOwo+ID4K PiA+ICAgICAgICAgICAgICAgICBlZGlkX3N0YXR1cyA9IGRtX2hlbHBlcnNfcmVhZF9sb2NhbF9l ZGlkKAo+ID4gLS0KPiA+IDIuMjAuMQo+ID4KPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCj4gPiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4gPiBkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAoKCgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9hbWQtZ2Z4