From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v2 1/2] drm/crtc: fix connector reference counting mismatch in drm_crtc_helper_set_config Date: Tue, 14 Jun 2016 19:40:27 +0200 Message-ID: <20160614174027.GC1338@phenom.ffwll.local> References: <1464888472-21581-1-git-send-email-p.zabel@pengutronix.de> <20160614160835.GV1338@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 42DA36E350 for ; Tue, 14 Jun 2016 17:40:32 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id n184so240202wmn.1 for ; Tue, 14 Jun 2016 10:40:32 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20160614160835.GV1338@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Philipp Zabel Cc: Daniel Vetter , kernel@pengutronix.de, Daniel Stone , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBKdW4gMTQsIDIwMTYgYXQgMDY6MDg6MzVQTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBUaHUsIEp1biAwMiwgMjAxNiBhdCAwNzoyNzo1MVBNICswMjAwLCBQaGlsaXBw IFphYmVsIHdyb3RlOgo+ID4gU2luY2UgY29tbWl0IDA5NTVjMTI1MGU5NiAoImRybS9jcnRjOiB0 YWtlIHJlZmVyZW5jZXMgdG8gY29ubmVjdG9ycyB1c2VkCj4gPiBpbiBhIG1vZGVzZXQuICh2Miki KSwgdGhlIHJlZmVyZW5jZSBjb3VudHMgb2YgYWxsIGNvbm5lY3RvcnMgaW4gdGhlCj4gPiBkcm1f bW9kZV9zZXQgZ2l2ZW4gdG8gZHJtX2NydGNfaGVscGVyX3NldF9jb25maWcgYXJlIGluY3JlbWVu dGVkLCBhbmQgdGhlbgo+ID4gdGhlIHJlZmVyZW5jZSBjb3VudHMgb2YgYWxsIGNvbm5lY3RvcnMg YXJlIGRlY3JlbWVudGVkIG9uIHN1Y2Nlc3MsIGJ1dCBpbiBhCj4gPiB0ZW1wb3JhcnkgY29weSBv ZiB0aGUgY29ubmVjdG9yIHN0cnVjdHVyZS4gVGhpcyBsZWFkcyB0byB0aGUgZm9sbG93aW5nCj4g PiBlcnJvciBhZnRlciB0aGUgZmlyc3QgbW9kZXNldCBvbiBpbXgtZHJtOgo+ID4gCj4gPiAgICAg VW5hYmxlIHRvIGhhbmRsZSBrZXJuZWwgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIGF0IHZpcnR1 YWwgYWRkcmVzcyAwMDAwMDAwNAo+ID4gICAgIHBnZCA9IGFkOGM0MDAwCj4gPiAgICAgWzAwMDAw MDA0XSAqcGdkPTNkOWM1ODMxLCAqcHRlPTAwMDAwMDAwLCAqcHB0ZT0wMDAwMDAwMAo+ID4gICAg IEludGVybmFsIGVycm9yOiBPb3BzOiA4MTcgWyMxXSBQUkVFTVBUIFNNUCBBUk0KPiA+ICAgICBN b2R1bGVzIGxpbmtlZCBpbjoKPiA+ICAgICBDUFU6IDEgUElEOiAxOTAgQ29tbToga21zZmItbWFu YWdlIE5vdCB0YWludGVkIDQuNy4wLXJjMSsgIzY1Nwo+ID4gICAgIEhhcmR3YXJlIG5hbWU6IEZy ZWVzY2FsZSBpLk1YNiBRdWFkL0R1YWxMaXQ6IFs8ODA1MDYwOTg+XSAgICBsciA6IFs8ODAyNTJl OTQ+XSAgICBwc3I6IDIwMGMwMDEzCj4gPiAgICAgc3AgOiBhZGNhN2NhOCAgaXAgOiBhZGNhN2I5 MCAgZnAgOiBhZGNhN2NkNAo+ID4gICAgIHIxMDogMDAwMDAwMDAgIHI5IDogMDAwMDAxMDAgIHI4 IDogMDAwMDAyMDAKPiA+ICAgICByNyA6IGFmM2M5ODAwICByNiA6IGFkZWQ3ODQ4ICByNSA6IGFk ZWQ3ODAwICByNCA6IDAwMDAwMDAwCj4gPiAgICAgcjMgOiBhZjNjYTA1OCAgcjIgOiAwMDAwMDIw MCAgcjEgOiBhZjNjYTA1OCAgcjAgOiAwMDAwMDAwMAo+ID4gICAgIEZsYWdzOiBuekN2ICBJUlFz IG9uICBGSVFzIG9uICBNb2RlIFNWQ18zMiAgSVNBIEFSTSAgU2VnbWVudCBub25lCj4gPiAgICAg Q29udHJvbDogMTBjNTM4N2QgIFRhYmxlOiAzZDhjNDA0YSAgREFDOiAwMDAwMDA1MQo+ID4gICAg IFByb2Nlc3Mga21zZmItbWFuYWdlIChwaWQ6IDE5MCwgc3RhY2sgbGltaXQgPSAweGFkY2E2MjEw KQo+ID4gICAgIFN0YWNrOiAoMHhhZGNhN2NhOCB0byAweGFkY2E4MDAwKQo+ID4gICAgIDdjYTA6 ICAgICAgICAgICAgICAgICAgIDgwNTE5MGUwIGFkZWQ3ODAwIGFkZWQ3ODIwIDgwNTAxYTg4IDgx NTVhMjkwIGFmM2M5YzZjCj4gPiAgICAgN2NjMDogYWRjYTdkZGMgMDAwMDAwMGYgYWRjYTdjZWMg YWRjYTdjZDggODA1MTkxMDQgODA1MDYwNDQgODA1MTkwZTAgYWRlZDc4MDAKPiA+ICAgICA3Y2Uw OiBhZGNhN2QwNCBhZGNhN2NmMCA4MDUwMWFjMCA4MDUxOTBlYyBhZGVkNzgyMCBhZGVkNzgxNCBh ZGNhN2QyNCBhZGNhN2QwOAo+ID4gICAgIDdkMDA6IDgwNGZkYjgwIDgwNTAxYTk0IGFkZWQ3ODAw IGFmM2NhMDEwIGFkZWQ3YWZjIGFmM2M5YzYwIGFkY2E3ZDk0IGFkY2E3ZDI4Cj4gPiAgICAgN2Qy MDogODA0ZTM1MTggODA0ZmRiMjAgMDAwMDAwMDAgYWYzYzliMWMgYWRjYTdkNTAgODE1MDZmNDQg MDAwMDAwMDAgODA5M2M1MDAKPiA+ICAgICA3ZDQwOiBhZjNjOWM2YyBhZTRmMmNhOCBhZTRmMmMx OCAwMDAwMDAwMCAwMDAwMDAwMCBhZTYzN2YwMCAwMDAwMDAwMCBhZGVkNzgwMAo+ID4gICAgIDdk NjA6IDAwMDAwMDAxIGFmM2M5ODAwIGFmMjNjMzAwIGFlNzdmY2MwIGFlNGYyYzE4IDAwMDAwMDAx IGFmM2M5ODAwIDgxNTVhMjkwCj4gPiAgICAgN2Q4MDogYWYxYWY3MDAgYWRjYTYwMDAgYWRjYTdk YjQgYWRjYTdkOTggODA0ZmVhNmMgODA0ZTJkZTQgYWRjYTdlNTAgYWRiM2Q5NDAKPiA+ICAgICA3 ZGEwOiAwMDAwMDAwMSBhZjNjOTgwMCBhZGNhN2UyNCBhZGNhN2RiOCA4MDUwNDQwYyA4MDRmZWEw YyBhZTc3ZmNjMCAwMDAwMDAwMwo+ID4gICAgIDdkYzA6IGFkY2E3ZTI0IGFkYjNkOTQwIGFmMWFm NzAwIGFlNzdmY2MwIGFlNzdmY2NjIGFlNGYyYzE4IDgwODNkNDRjIGFlNzdmY2MwCj4gPiAgICAg N2RlMDogYWU0MDAyIDgwZDAzMDQwIGFkY2E3ZTY0IGFkY2E3ZTQwIGFkY2E3ZTUwIDgwNTAzZjA4 Cj4gPiAgICAgN2U0MDogN2ViZDU2MzAgYWRjYTdlNTAgMDAwMDAwNjggYzA2ODY0YTIgN2ViZDVi ZTggMDAwMDAwMDAgMDAwMDAwMDEgMDAwMDAwMTgKPiA+ICAgICA3ZTYwOiAwMDAwMDAyNiAwMDAw MDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSAwMDAxMTViYyAwNTAxMDUwMCAwNWEwMDU5 Zgo+ID4gICAgIDdlODA6IDAzMjAwMDAwIDAzMzYwMzIxIDAwMDAwMzM3IDAwMDAwMDNjIDAwMDAw MDAwIDAwMDAwMDQwIDMwMzgzMjMxIDMwMzAzODc4Cj4gPiAgICAgN2VhMDogMDAwMDAwMDAgMDAw MDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgODAxNzMwNTggODAxNzJl MzAKPiA+ICAgICA3ZWMwOiA4MGQ3N2QzMiAwMDAwNDAwMCBhZGY3ZDkwMCAwMDAwMDAwMyAwMDAw MDAwMCA3ZWJkNTYzMCBhZjM0MmJiMCBhZGZlM2I4MAo+ID4gICAgIDdlZTA6IDgwMjcyZjUwIDAw MDAwMDAzIGFkY2E2MDAwIDAwMDAwMDAwIGFkY2E3ZjdjIGFkY2E3ZjAwIDgwMjcyNWVjIDgwNGY1 MmNjCj4gPiAgICAgN2YwMDogODAyODA5Y2MgODAxNzg0NTAgMDAwMDAwMDAgMDAwMDAwMDAgODAy ODA4ODAgODAxNDU5MDQgYWRiM2Q4YzAgYWRmN2Q5OTAKPiA+ICAgICA3ZjIwOiBmZmZmZmZmZiAw MDAwMDAwMyAwMDAwNDAwMCAwMTYxNGMxMCBjMDY4NjRhMiAwMDAwMDAwMyBhZGNhNjAwMCAwMDAw MDAwMAo+ID4gICAgIDdmNDA6IGFkY2E3ZjZjIGFkY2E3ZjUwIDgwMjgwYjA0IDgwMjgwODhjIDAw MDExNWJjIGFkZmUzYjgxIDdlYmQ1NjMwIGFkZmUzYjgwCj4gPiAgICAgN2Y2MDogYzA2ODY0YTIg MDAwMDAwMDMgYWRjYTYwMDAgMDAwMDAwMDAgYWRjYTdmYTQgYWRjYTdmODAgODAyNzJmNTAgODAy NzI1NDgKPiA+ICAgICA3ZjgwOiAwMDAxMTViYyAwMDAxNzA1MCAwMDAwMDAwMSAwMTYxNGMxMCAw MDAwMDAzNiA4MDEwODllNCAwMDAwMDAwMCBhZGNhN2ZhOAo+ID4gICAgIDdmYTA6IDgwMTA4ODQw IDgwMjcyZjE4IDAwMDE3MDUwIDAwMDAwMDAxIDAwMDAwMDAzIGMwNjg2NGEyIDdlYmQ1NjMwIDAw MDExNWJjCj4gPiAgICAgN2ZjMDogMDAwMTcwNTAgMDAwMDAwMDEgMDE2MTRjMTAgMDAwMDAwMzYg MDAwMDAwMDMgMDAwMDAwMDAgMDAwMDAwMjYgMDAwMDAwMTgKPiA+ICAgICA3ZmUwOiAwMDAxNmYz OCA3ZWJkNTYyYyAwMDAwYjVlOSA3NmVmMzFlNiA0MDBjMDAzMCAwMDAwMDAwMyBmZjVmMzdkYiBi ZmU3ZGQ0ZAo+ID4gICAgIEJhY2t0cmFjZToKPiA+ICAgICBbPDgwNTA2MDM4Pl0gKGRybV9jb25u ZWN0b3JfY2xlYW51cCkgZnJvbSBbPDgwNTE5MTA0Pl0gKGR3X2hkbWlfY29ubmVjdG9yX2Rlc3Ry b3krMHgyNC8weDI4KQo+ID4gICAgICByMTA6MDAwMDAwMGYgcjk6YWRjYTdkZGMgcjg6YWYzYzlj NmMgcjc6ODE1NWEyOTAgcjY6ODA1MDFhODggcjU6YWRlZDc4MjAKPiA+ICAgICAgcjQ6YWRlZDc4 MDAgcjM6ODA1MTkwZTAKPiA+ICAgICBbPDgwNTE5MGUwPl0gKGR3X2hkbWlfY29ubmVjdG9yX2Rl c3Ryb3kpIGZyb20gWzw4MDUwMWFjMD5dIChkcm1fY29ubmVjdG9yX2ZyZWUrMHgzOC8weDNjKQo+ ID4gICAgICByNDphZGVkNzgwMCBucmVmZXJlbmNlKSBmcm9tIFs8ODA0ZTM1MTg+XSAoZHJtX2Ny dGNfaGVscGVyX3NldF9jb25maWcrMHg3NDAvMHhiZjQpCj4gPiAgICAgIHI2OmFmM2M5YzYwIHI1 OmFkZWQ3YWZjIHI0OmFmM2NhMDEwIHIzOmFkZWQ3ODAwCj4gPiAgICAgWzw4MDRlMmRkOD5dIChk cm1fY3J0Y19oZWxwZXJfc2V0X2NvbmZpZykgZnJvbSBbPDgwNGZlYTZjPl0gKGRybV9tb2RlX3Nl dF9jb25maWdfaW50ZXJuYWwrMHg2Yy8weGY0KQo+ID4gICAgICByMTA6YWRjYTYwMDAgcjk6YWYx YWY3MDAgcjg6ODE1NWEyOTAgcjc6YWYzYzk4MDAgcjY6MDAwMDAwMDEgcjU6YWU0ZjJjMTgKPiA+ ICAgICAgcjQ6YWU3N2ZjYzAKPiA+ICAgICBbPDgwNGZlYTAwPl0gKGRybV9tb2RlX3NldF9jb25m aWdfaW50ZXJuYWwpIGZyb20gWzw4MDUwNDQwYz5dIChkcm1fbW9kZV9zZXRjcnRjKzB4NTA0LzB4 NTdjKQo+ID4gICAgICByNzphZjNjOTgwMCByNjowMDAwMDAwMSByNTphZGIzZDk0MCByNDphZGNh N2U1MAo+ID4gICAgIFs8ODA1MDNmMDg+XSAoZHJtX21vZGVfc2V0Y3J0YykgZnJvbSBbPDgwNGY1 NDA0Pl0gKGRybV9pb2N0bCsweDE0NC8weDRkYykKPiA+ICAgICAgcjEwOmFkYTJlMDAwIHI5OjAw MDAwMGEyIHI4OmFmM2M5ODAwIHI3OjgxNTVhMjkwIHI2OjgwOTMyMGI0IHI1OjAwMDAwMDUxCj4g PiAgICAgIHI0OmFkY2E3ZTUwCj4gPiAgICAgWzw4MDRmNTJjMD5dIChkcm1faW9jdGwpIGZyb20g Wzw4MDI3MjVlYz5dIChkb192ZnNfaW9jdGwrMHhiMC8weDlkMCkKPiA+ICAgICAgcjEwOjAwMDAw MDAwIHI5OmFkY2E2MDAwIHI4OjAwMDAwMDAzIHI3OjgwMjcyZjUwIHI2OmFkZmUzYjgwIHI1OmFm MzQyYmIwCj4gPiAgICAgIHI0OjdlYmQ1NjMwCj4gPiAgICAgWzw4MDI3MjUzYz5dIChkb192ZnNf aW9jdGwpIGZyb20gWzw4MDI3MmY1MD5dIChTeVNfaW9jdGwrMHg0NC8weDZjKQo+ID4gICAgICBy MTA6MDAwMDAwMDAgcjk6YWRjYTYwMDAgcjg6MDAwMDAwMDMgcjc6YzA2ODY0YTIgcjY6YWRmZTNi ODAgcjU6N2ViZDU2MzAKPiA+ICAgICAgcjQ6YWRmZTNiODEKPiA+ICAgICBbPDgwMjcyZjBjPl0g KFN5U19pb2N0bCkgZnJvbSBbPDgwMTA4ODQwPl0gKHJldF9mYXN0X3N5c2NhbGwrMHgwLzB4MWMp Cj4gPiAgICAgIHI4OjgwMTA4OWU0IHI3OjAwMDAwMDM2IHI2OjAxNjE0YzEwIHI1OjAwMDAwMDAx IHI0OjAwMDE3MDUwIHIzOjAwMDExNWJjCj4gPiAgICAgQ29kZTogMGEwMDAwMGMgZTU5MzIwMDQg ZTFhMDEwMDMgZTFhMGEwMDQgKGU1ODQyMDA0KQo+ID4gICAgIC0tLVsgZW5kIHRyYWNlIDlhNzI1 NzU3MmNjYWNiMTYgXS0tLQo+ID4gCj4gPiBPbmx5IHRoZSByZWZlcmVuY2UgY291bnQgb2YgY29u bmVjdG9ycyB0aGF0IHdlcmVuJ3QgcHJldmlvdXNseSBib3VuZCB0bwo+ID4gYW4gZW5jb2RlciBz aG91bGQgYmUgaW5jcmVtZW50ZWQgYWZ0ZXIgYSBjYWxsIHRvIGRybV9jcnRjX2hlbHBlcl9zZXRf Y29uZmlnLgo+ID4gQW5kIG9ubHkgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiBjb25uZWN0b3JzIHRo YXQgd2VyZSBwcmV2aW91c2x5IGJvdW5kIHRvCj4gPiBhbiBlbmNvZGVyIGFuZCBhcmUgdW5ib3Vu ZCBhZnRlcndhcmRzIHNob3VsZCBldmVyIGJlIGRlY3JlbWVudGVkLgo+ID4gVGhlIHJlZmVyZW5j ZSBjb3VudHMgb2YgdGhlIHRlbXBvcmFyeSBjb3BpZXMgaW4gdGhlIHNhdmVfY29ubmVjdG9ycwo+ ID4gc2hvdWxkIG5vdCBiZSB0b3VjaGVkIGF0IGFsbC4KPiA+IAo+ID4gVGhpcyBwYXRjaCBmaXhl cyB0aGUgYWJvdmUgZXJyb3IgYnkgb25seSBpbmNyZW1lbnRpbmcgdGhlIHJlZmVyZW5jZSBjb3Vu dAo+ID4gb2YgdGhvc2UgY29ubmVjdG9ycyBpbiB0aGUgc2V0IHRoYXQgYXJlIGluaXRpYWxseSBu b3QgYm91bmQgdG8gYW55IGVuY29kZXIsCj4gPiBhbmQgYWxzbyBieSByZXN0b3JpbmcgdGhlIHJl ZmVyZW5jZSBjb3VudCBvZiBvbmx5IHRob3NlIGNvbm5lY3RvcnMgaW4gdGhlCj4gPiBzZXQgaW4g dGhlIGZhaWx1cmUgY2FzZS4KPiA+IAo+ID4gRml4ZXM6IDA5NTVjMTI1MGU5NiAoImRybS9jcnRj OiB0YWtlIHJlZmVyZW5jZXMgdG8gY29ubmVjdG9ycyB1c2VkIGluIGEgbW9kZXNldC4gKHYyKSIp Cj4gPiBTaWduZWQtb2ZmLWJ5OiBQaGlsaXBwIFphYmVsIDxwLnphYmVsQHBlbmd1dHJvbml4LmRl Pgo+IAo+IENvbW1pdCBtZXNzYWdlIG5lZWRzIHRvIGJlIGF1Z21lbnRlZDoKPiAKPiAiTm90ZSB0 aGF0IHRoaXMgY2FuIG9ubHkgYmUgaGl0IHdoZW4gZmJkZXYgZW11bGF0aW9uIGlzIGRpc2FibGVk LCBzaW5jZQo+IHRoZW4gdGhlIHJlZmNvdW50IGRyb3BzIGZyb20gMSB0byAwIGFuZCB3ZSBjYWxs IHRoZSBjb25uZWN0b3IgZGVzdHJveQo+IGZ1bmN0aW9ucyBvbiB0aGUgYmFja3VwIGNvcHksIHdo aWNoIGV2ZW50dWFsbHkgcmVzdWx0cyBpbiB0ZWFycy4gV2l0aAo+IGZiZGV2IGVtdWxhdGlvbiB0 aGUgcmVmY291bnQgb25seSBnb2VzIGRvd24gZnJvbSAyIHRvIDEgZXZlci4gQW5kIHNpbmNlIHdl Cj4gdW5jb25kaXRpb25hbGx5IGluY3JlbWVudCB0aGUgcmVmY291bnQgb24gdGhlIHJlYWwgb2Jq ZWN0LCB0aGUgcmVmY291bnQgb2YKPiB0aGF0IHdpbGwgc2xvd2x5IGluY3JlYXNlLiBUaGUgYmFj a3VwIGNvbm5lY3RvcidzIHJlZmNvdW50IGRvZXNuJ3QgbWF0dGVyLAo+IHNpbmNlIHdlIGtmcmVl KCkgdGhhdCBlaXRoZXIgd2F5IGluIHRoZSBlbmQgb2YKPiBkcm1fY3J0Y19oZWxwZXJfc2V0X2Nv bmZpZygpLiIKPiA+IC0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19oZWxwZXIuYyB8 IDE4ICsrKysrKysrKystLS0tLS0tLQo+ID4gIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25z KCspLCA4IGRlbGV0aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2RybV9jcnRjX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2hlbHBlci5jCj4g PiBpbmRleCBhNmU0MjQzLi4xYzRkNjc0IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2RybV9jcnRjX2hlbHBlci5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaGVs cGVyLmMKPiA+IEBAIC02MzEsOCArNjMxLDEyIEBAIGludCBkcm1fY3J0Y19oZWxwZXJfc2V0X2Nv bmZpZyhzdHJ1Y3QgZHJtX21vZGVfc2V0ICpzZXQpCj4gPiAgCQltb2RlX2NoYW5nZWQgPSB0cnVl Owo+ID4gIAl9Cj4gPiAgCj4gPiAtCS8qIHRha2UgYSByZWZlcmVuY2Ugb24gYWxsIGNvbm5lY3Rv cnMgaW4gc2V0ICovCj4gPiArCS8qIHRha2UgYSByZWZlcmVuY2Ugb24gYWxsIHVuYm91bmQgY29u bmVjdG9ycyBpbiBzZXQsIHJldXNlIHRoZQo+ID4gKwkgKiBhbHJlYWR5IHRha2VuIHJlZmVyZW5j ZSBmb3IgYm91bmQgY29ubmVjdG9ycwo+ID4gKwkgKi8KPiA+ICAJZm9yIChybyA9IDA7IHJvIDwg c2V0LT5udW1fY29ubmVjdG9yczsgcm8rKykgewo+ID4gKwkJaWYgKHNldC0+Y29ubmVjdG9yc1ty b10tPmVuY29kZXIpCj4gPiArCQkJY29udGludWU7Cj4gCj4gVGhlIHJlYWwgYnVnZml4IGlzIHRo YXQgeW91J3JlIHN3aXRjaGluZyBmcm9tIHNhdmVfY29ubmVjdG9ycyB0bwo+IHNldC0+Y29ubmVj dG9ycy4gVGhpcyBmaWx0ZXJpbmcgaGVyZSBzaG91bGQgYmUgaXJyZWxldmFudC4KPiAKPiA+ICAJ CWRybV9jb25uZWN0b3JfcmVmZXJlbmNlKHNldC0+Y29ubmVjdG9yc1tyb10pOwo+ID4gIAl9Cj4g PiAgCj4gPiBAQCAtNzU0LDEyICs3NTgsNiBAQCBpbnQgZHJtX2NydGNfaGVscGVyX3NldF9jb25m aWcoc3RydWN0IGRybV9tb2RlX3NldCAqc2V0KQo+ID4gIAkJfQo+ID4gIAl9Cj4gPiAgCj4gPiAt CS8qIGFmdGVyIGZhaWwgZHJvcCByZWZlcmVuY2Ugb24gYWxsIGNvbm5lY3RvcnMgaW4gc2F2ZSBz ZXQgKi8KPiA+IC0JY291bnQgPSAwOwo+ID4gLQlkcm1fZm9yX2VhY2hfY29ubmVjdG9yKGNvbm5l Y3RvciwgZGV2KSB7Cj4gPiAtCQlkcm1fY29ubmVjdG9yX3VucmVmZXJlbmNlKCZzYXZlX2Nvbm5l Y3RvcnNbY291bnQrK10pOwo+IAo+IEFuZCB3ZSBuZWVkIHRvIGtlZXAgdGhlIHVucmVmZXJlbmNl IGhlcmUgKGJ1dCBvbiBzZXQtPmNvbm5lY3RvcnMgaW5zdGVhZCksCj4gb3RoZXJ3aXNlIHRoaXMg d2lsbCBsZWFrIGJhZGx5LiBJbiBzaG9ydCB0aGlzIGlzIHRoZSBvbmx5IHBsYWNlIHlvdSBuZWVk Cj4gdG8gZml4IHVwLCB0aGUgb3RoZXIgaHVua3Mgc2hvdWxkbid0IGJlIG5lZWRlZC4KPiAKPiA+ IC0JfQo+ID4gLQo+ID4gIAlrZnJlZShzYXZlX2Nvbm5lY3RvcnMpOwo+ID4gIAlrZnJlZShzYXZl X2VuY29kZXJzKTsKPiA+ICAJcmV0dXJuIDA7Cj4gPiBAQCAtNzc2LDggKzc3NCwxMiBAQCBmYWls Ogo+ID4gIAkJKmNvbm5lY3RvciA9IHNhdmVfY29ubmVjdG9yc1tjb3VudCsrXTsKPiA+ICAJfQo+ ID4gIAo+ID4gLQkvKiBhZnRlciBmYWlsIGRyb3AgcmVmZXJlbmNlIG9uIGFsbCBjb25uZWN0b3Jz IGluIHNldCAqLwo+ID4gKwkvKiBhZnRlciBmYWlsIGRyb3AgcmVmZXJlbmNlIG9uIGFsbCB1bmJv dW5kIGNvbm5lY3RvcnMgaW4gc2V0LCBsZXQKPiA+ICsJICogYm91bmQgY29ubmVjdG9ycyBrZWVw IHRoZWlyIHJlZmVyZW5jZQo+ID4gKwkgKi8KPiA+ICAJZm9yIChybyA9IDA7IHJvIDwgc2V0LT5u dW1fY29ubmVjdG9yczsgcm8rKykgewo+ID4gKwkJaWYgKHNldC0+Y29ubmVjdG9yc1tyb10tPmVu Y29kZXIpCj4gPiArCQkJY29udGludWU7Cj4gCj4gQWdhaW4sIGZpbHRlcmluZyBvbiAtPmVuY29k ZXIgaXMgc3VwZXJmbG91cy4KPiAKPiA+ICAJCWRybV9jb25uZWN0b3JfdW5yZWZlcmVuY2Uoc2V0 LT5jb25uZWN0b3JzW3JvXSk7Cj4gPiAgCX0KPiAKPiBXaXRoIHRoZSBidWdzIGluIHRoZSBjb2Rl IGZpeGVkIGFuZCB0aGUgY29tbWl0IG1lc3NhZ2UgYXVnbWVudGVkOgoKT2ssIEkgdGhvdWdodCBh Ym91dCB0aGlzIHNvbWUgbW9yZSB3aGlsZSBlYXRpbmcsIGFuZCBJIHdhcyB0b3RhbGx5IG9mZiB0 aGUKdHJhY2tzLiBUaGUgcGF0Y2ggaXMgc291bmQsIGJ1dCBzdGlsbCBuZWVkcyB0aGUgY29tbWl0 IG1lc3NhZ2UgYW1tZW5kZWQuCldpdGggdGhhdDoKIApSZXZpZXdlZC1ieTogRGFuaWVsIFZldHRl ciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5n aW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxp c3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=