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 18:08:35 +0200 Message-ID: <20160614160835.GV1338@phenom.ffwll.local> References: <1464888472-21581-1-git-send-email-p.zabel@pengutronix.de> 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 CDA076E7CA for ; Tue, 14 Jun 2016 16:08:40 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id n184so23540807wmn.1 for ; Tue, 14 Jun 2016 09:08:40 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1464888472-21581-1-git-send-email-p.zabel@pengutronix.de> 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 T24gVGh1LCBKdW4gMDIsIDIwMTYgYXQgMDc6Mjc6NTFQTSArMDIwMCwgUGhpbGlwcCBaYWJlbCB3 cm90ZToKPiBTaW5jZSBjb21taXQgMDk1NWMxMjUwZTk2ICgiZHJtL2NydGM6IHRha2UgcmVmZXJl bmNlcyB0byBjb25uZWN0b3JzIHVzZWQKPiBpbiBhIG1vZGVzZXQuICh2MikiKSwgdGhlIHJlZmVy ZW5jZSBjb3VudHMgb2YgYWxsIGNvbm5lY3RvcnMgaW4gdGhlCj4gZHJtX21vZGVfc2V0IGdpdmVu IHRvIGRybV9jcnRjX2hlbHBlcl9zZXRfY29uZmlnIGFyZSBpbmNyZW1lbnRlZCwgYW5kIHRoZW4K PiB0aGUgcmVmZXJlbmNlIGNvdW50cyBvZiBhbGwgY29ubmVjdG9ycyBhcmUgZGVjcmVtZW50ZWQg b24gc3VjY2VzcywgYnV0IGluIGEKPiB0ZW1wb3JhcnkgY29weSBvZiB0aGUgY29ubmVjdG9yIHN0 cnVjdHVyZS4gVGhpcyBsZWFkcyB0byB0aGUgZm9sbG93aW5nCj4gZXJyb3IgYWZ0ZXIgdGhlIGZp cnN0IG1vZGVzZXQgb24gaW14LWRybToKPiAKPiAgICAgVW5hYmxlIHRvIGhhbmRsZSBrZXJuZWwg TlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIGF0IHZpcnR1YWwgYWRkcmVzcyAwMDAwMDAwNAo+ICAg ICBwZ2QgPSBhZDhjNDAwMAo+ICAgICBbMDAwMDAwMDRdICpwZ2Q9M2Q5YzU4MzEsICpwdGU9MDAw MDAwMDAsICpwcHRlPTAwMDAwMDAwCj4gICAgIEludGVybmFsIGVycm9yOiBPb3BzOiA4MTcgWyMx XSBQUkVFTVBUIFNNUCBBUk0KPiAgICAgTW9kdWxlcyBsaW5rZWQgaW46Cj4gICAgIENQVTogMSBQ SUQ6IDE5MCBDb21tOiBrbXNmYi1tYW5hZ2UgTm90IHRhaW50ZWQgNC43LjAtcmMxKyAjNjU3Cj4g ICAgIEhhcmR3YXJlIG5hbWU6IEZyZWVzY2FsZSBpLk1YNiBRdWFkL0R1YWxMaXQ6IFs8ODA1MDYw OTg+XSAgICBsciA6IFs8ODAyNTJlOTQ+XSAgICBwc3I6IDIwMGMwMDEzCj4gICAgIHNwIDogYWRj YTdjYTggIGlwIDogYWRjYTdiOTAgIGZwIDogYWRjYTdjZDQKPiAgICAgcjEwOiAwMDAwMDAwMCAg cjkgOiAwMDAwMDEwMCAgcjggOiAwMDAwMDIwMAo+ICAgICByNyA6IGFmM2M5ODAwICByNiA6IGFk ZWQ3ODQ4ICByNSA6IGFkZWQ3ODAwICByNCA6IDAwMDAwMDAwCj4gICAgIHIzIDogYWYzY2EwNTgg IHIyIDogMDAwMDAyMDAgIHIxIDogYWYzY2EwNTggIHIwIDogMDAwMDAwMDAKPiAgICAgRmxhZ3M6 IG56Q3YgIElSUXMgb24gIEZJUXMgb24gIE1vZGUgU1ZDXzMyICBJU0EgQVJNICBTZWdtZW50IG5v bmUKPiAgICAgQ29udHJvbDogMTBjNTM4N2QgIFRhYmxlOiAzZDhjNDA0YSAgREFDOiAwMDAwMDA1 MQo+ICAgICBQcm9jZXNzIGttc2ZiLW1hbmFnZSAocGlkOiAxOTAsIHN0YWNrIGxpbWl0ID0gMHhh ZGNhNjIxMCkKPiAgICAgU3RhY2s6ICgweGFkY2E3Y2E4IHRvIDB4YWRjYTgwMDApCj4gICAgIDdj YTA6ICAgICAgICAgICAgICAgICAgIDgwNTE5MGUwIGFkZWQ3ODAwIGFkZWQ3ODIwIDgwNTAxYTg4 IDgxNTVhMjkwIGFmM2M5YzZjCj4gICAgIDdjYzA6IGFkY2E3ZGRjIDAwMDAwMDBmIGFkY2E3Y2Vj IGFkY2E3Y2Q4IDgwNTE5MTA0IDgwNTA2MDQ0IDgwNTE5MGUwIGFkZWQ3ODAwCj4gICAgIDdjZTA6 IGFkY2E3ZDA0IGFkY2E3Y2YwIDgwNTAxYWMwIDgwNTE5MGVjIGFkZWQ3ODIwIGFkZWQ3ODE0IGFk Y2E3ZDI0IGFkY2E3ZDA4Cj4gICAgIDdkMDA6IDgwNGZkYjgwIDgwNTAxYTk0IGFkZWQ3ODAwIGFm M2NhMDEwIGFkZWQ3YWZjIGFmM2M5YzYwIGFkY2E3ZDk0IGFkY2E3ZDI4Cj4gICAgIDdkMjA6IDgw NGUzNTE4IDgwNGZkYjIwIDAwMDAwMDAwIGFmM2M5YjFjIGFkY2E3ZDUwIDgxNTA2ZjQ0IDAwMDAw MDAwIDgwOTNjNTAwCj4gICAgIDdkNDA6IGFmM2M5YzZjIGFlNGYyY2E4IGFlNGYyYzE4IDAwMDAw MDAwIDAwMDAwMDAwIGFlNjM3ZjAwIDAwMDAwMDAwIGFkZWQ3ODAwCj4gICAgIDdkNjA6IDAwMDAw MDAxIGFmM2M5ODAwIGFmMjNjMzAwIGFlNzdmY2MwIGFlNGYyYzE4IDAwMDAwMDAxIGFmM2M5ODAw IDgxNTVhMjkwCj4gICAgIDdkODA6IGFmMWFmNzAwIGFkY2E2MDAwIGFkY2E3ZGI0IGFkY2E3ZDk4 IDgwNGZlYTZjIDgwNGUyZGU0IGFkY2E3ZTUwIGFkYjNkOTQwCj4gICAgIDdkYTA6IDAwMDAwMDAx IGFmM2M5ODAwIGFkY2E3ZTI0IGFkY2E3ZGI4IDgwNTA0NDBjIDgwNGZlYTBjIGFlNzdmY2MwIDAw MDAwMDAzCj4gICAgIDdkYzA6IGFkY2E3ZTI0IGFkYjNkOTQwIGFmMWFmNzAwIGFlNzdmY2MwIGFl NzdmY2NjIGFlNGYyYzE4IDgwODNkNDRjIGFlNzdmY2MwCj4gICAgIDdkZTA6IGFlNDAwMiA4MGQw MzA0MCBhZGNhN2U2NCBhZGNhN2U0MCBhZGNhN2U1MCA4MDUwM2YwOAo+ICAgICA3ZTQwOiA3ZWJk NTYzMCBhZGNhN2U1MCAwMDAwMDA2OCBjMDY4NjRhMiA3ZWJkNWJlOCAwMDAwMDAwMCAwMDAwMDAw MSAwMDAwMDAxOAo+ICAgICA3ZTYwOiAwMDAwMDAyNiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAw MCAwMDAwMDAwMSAwMDAxMTViYyAwNTAxMDUwMCAwNWEwMDU5Zgo+ICAgICA3ZTgwOiAwMzIwMDAw MCAwMzM2MDMyMSAwMDAwMDMzNyAwMDAwMDAzYyAwMDAwMDAwMCAwMDAwMDA0MCAzMDM4MzIzMSAz MDMwMzg3OAo+ICAgICA3ZWEwOiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAw MDAwMDAwMCAwMDAwMDAwMCA4MDE3MzA1OCA4MDE3MmUzMAo+ICAgICA3ZWMwOiA4MGQ3N2QzMiAw MDAwNDAwMCBhZGY3ZDkwMCAwMDAwMDAwMyAwMDAwMDAwMCA3ZWJkNTYzMCBhZjM0MmJiMCBhZGZl M2I4MAo+ICAgICA3ZWUwOiA4MDI3MmY1MCAwMDAwMDAwMyBhZGNhNjAwMCAwMDAwMDAwMCBhZGNh N2Y3YyBhZGNhN2YwMCA4MDI3MjVlYyA4MDRmNTJjYwo+ICAgICA3ZjAwOiA4MDI4MDljYyA4MDE3 ODQ1MCAwMDAwMDAwMCAwMDAwMDAwMCA4MDI4MDg4MCA4MDE0NTkwNCBhZGIzZDhjMCBhZGY3ZDk5 MAo+ICAgICA3ZjIwOiBmZmZmZmZmZiAwMDAwMDAwMyAwMDAwNDAwMCAwMTYxNGMxMCBjMDY4NjRh MiAwMDAwMDAwMyBhZGNhNjAwMCAwMDAwMDAwMAo+ICAgICA3ZjQwOiBhZGNhN2Y2YyBhZGNhN2Y1 MCA4MDI4MGIwNCA4MDI4MDg4YyAwMDAxMTViYyBhZGZlM2I4MSA3ZWJkNTYzMCBhZGZlM2I4MAo+ ICAgICA3ZjYwOiBjMDY4NjRhMiAwMDAwMDAwMyBhZGNhNjAwMCAwMDAwMDAwMCBhZGNhN2ZhNCBh ZGNhN2Y4MCA4MDI3MmY1MCA4MDI3MjU0OAo+ICAgICA3ZjgwOiAwMDAxMTViYyAwMDAxNzA1MCAw MDAwMDAwMSAwMTYxNGMxMCAwMDAwMDAzNiA4MDEwODllNCAwMDAwMDAwMCBhZGNhN2ZhOAo+ICAg ICA3ZmEwOiA4MDEwODg0MCA4MDI3MmYxOCAwMDAxNzA1MCAwMDAwMDAwMSAwMDAwMDAwMyBjMDY4 NjRhMiA3ZWJkNTYzMCAwMDAxMTViYwo+ICAgICA3ZmMwOiAwMDAxNzA1MCAwMDAwMDAwMSAwMTYx NGMxMCAwMDAwMDAzNiAwMDAwMDAwMyAwMDAwMDAwMCAwMDAwMDAyNiAwMDAwMDAxOAo+ICAgICA3 ZmUwOiAwMDAxNmYzOCA3ZWJkNTYyYyAwMDAwYjVlOSA3NmVmMzFlNiA0MDBjMDAzMCAwMDAwMDAw MyBmZjVmMzdkYiBiZmU3ZGQ0ZAo+ICAgICBCYWNrdHJhY2U6Cj4gICAgIFs8ODA1MDYwMzg+XSAo ZHJtX2Nvbm5lY3Rvcl9jbGVhbnVwKSBmcm9tIFs8ODA1MTkxMDQ+XSAoZHdfaGRtaV9jb25uZWN0 b3JfZGVzdHJveSsweDI0LzB4MjgpCj4gICAgICByMTA6MDAwMDAwMGYgcjk6YWRjYTdkZGMgcjg6 YWYzYzljNmMgcjc6ODE1NWEyOTAgcjY6ODA1MDFhODggcjU6YWRlZDc4MjAKPiAgICAgIHI0OmFk ZWQ3ODAwIHIzOjgwNTE5MGUwCj4gICAgIFs8ODA1MTkwZTA+XSAoZHdfaGRtaV9jb25uZWN0b3Jf ZGVzdHJveSkgZnJvbSBbPDgwNTAxYWMwPl0gKGRybV9jb25uZWN0b3JfZnJlZSsweDM4LzB4M2Mp Cj4gICAgICByNDphZGVkNzgwMCBucmVmZXJlbmNlKSBmcm9tIFs8ODA0ZTM1MTg+XSAoZHJtX2Ny dGNfaGVscGVyX3NldF9jb25maWcrMHg3NDAvMHhiZjQpCj4gICAgICByNjphZjNjOWM2MCByNTph ZGVkN2FmYyByNDphZjNjYTAxMCByMzphZGVkNzgwMAo+ICAgICBbPDgwNGUyZGQ4Pl0gKGRybV9j cnRjX2hlbHBlcl9zZXRfY29uZmlnKSBmcm9tIFs8ODA0ZmVhNmM+XSAoZHJtX21vZGVfc2V0X2Nv bmZpZ19pbnRlcm5hbCsweDZjLzB4ZjQpCj4gICAgICByMTA6YWRjYTYwMDAgcjk6YWYxYWY3MDAg cjg6ODE1NWEyOTAgcjc6YWYzYzk4MDAgcjY6MDAwMDAwMDEgcjU6YWU0ZjJjMTgKPiAgICAgIHI0 OmFlNzdmY2MwCj4gICAgIFs8ODA0ZmVhMDA+XSAoZHJtX21vZGVfc2V0X2NvbmZpZ19pbnRlcm5h bCkgZnJvbSBbPDgwNTA0NDBjPl0gKGRybV9tb2RlX3NldGNydGMrMHg1MDQvMHg1N2MpCj4gICAg ICByNzphZjNjOTgwMCByNjowMDAwMDAwMSByNTphZGIzZDk0MCByNDphZGNhN2U1MAo+ICAgICBb PDgwNTAzZjA4Pl0gKGRybV9tb2RlX3NldGNydGMpIGZyb20gWzw4MDRmNTQwND5dIChkcm1faW9j dGwrMHgxNDQvMHg0ZGMpCj4gICAgICByMTA6YWRhMmUwMDAgcjk6MDAwMDAwYTIgcjg6YWYzYzk4 MDAgcjc6ODE1NWEyOTAgcjY6ODA5MzIwYjQgcjU6MDAwMDAwNTEKPiAgICAgIHI0OmFkY2E3ZTUw Cj4gICAgIFs8ODA0ZjUyYzA+XSAoZHJtX2lvY3RsKSBmcm9tIFs8ODAyNzI1ZWM+XSAoZG9fdmZz X2lvY3RsKzB4YjAvMHg5ZDApCj4gICAgICByMTA6MDAwMDAwMDAgcjk6YWRjYTYwMDAgcjg6MDAw MDAwMDMgcjc6ODAyNzJmNTAgcjY6YWRmZTNiODAgcjU6YWYzNDJiYjAKPiAgICAgIHI0OjdlYmQ1 NjMwCj4gICAgIFs8ODAyNzI1M2M+XSAoZG9fdmZzX2lvY3RsKSBmcm9tIFs8ODAyNzJmNTA+XSAo U3lTX2lvY3RsKzB4NDQvMHg2YykKPiAgICAgIHIxMDowMDAwMDAwMCByOTphZGNhNjAwMCByODow MDAwMDAwMyByNzpjMDY4NjRhMiByNjphZGZlM2I4MCByNTo3ZWJkNTYzMAo+ICAgICAgcjQ6YWRm ZTNiODEKPiAgICAgWzw4MDI3MmYwYz5dIChTeVNfaW9jdGwpIGZyb20gWzw4MDEwODg0MD5dIChy ZXRfZmFzdF9zeXNjYWxsKzB4MC8weDFjKQo+ICAgICAgcjg6ODAxMDg5ZTQgcjc6MDAwMDAwMzYg cjY6MDE2MTRjMTAgcjU6MDAwMDAwMDEgcjQ6MDAwMTcwNTAgcjM6MDAwMTE1YmMKPiAgICAgQ29k ZTogMGEwMDAwMGMgZTU5MzIwMDQgZTFhMDEwMDMgZTFhMGEwMDQgKGU1ODQyMDA0KQo+ICAgICAt LS1bIGVuZCB0cmFjZSA5YTcyNTc1NzJjY2FjYjE2IF0tLS0KPiAKPiBPbmx5IHRoZSByZWZlcmVu Y2UgY291bnQgb2YgY29ubmVjdG9ycyB0aGF0IHdlcmVuJ3QgcHJldmlvdXNseSBib3VuZCB0bwo+ IGFuIGVuY29kZXIgc2hvdWxkIGJlIGluY3JlbWVudGVkIGFmdGVyIGEgY2FsbCB0byBkcm1fY3J0 Y19oZWxwZXJfc2V0X2NvbmZpZy4KPiBBbmQgb25seSB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIGNv bm5lY3RvcnMgdGhhdCB3ZXJlIHByZXZpb3VzbHkgYm91bmQgdG8KPiBhbiBlbmNvZGVyIGFuZCBh cmUgdW5ib3VuZCBhZnRlcndhcmRzIHNob3VsZCBldmVyIGJlIGRlY3JlbWVudGVkLgo+IFRoZSBy ZWZlcmVuY2UgY291bnRzIG9mIHRoZSB0ZW1wb3JhcnkgY29waWVzIGluIHRoZSBzYXZlX2Nvbm5l Y3RvcnMKPiBzaG91bGQgbm90IGJlIHRvdWNoZWQgYXQgYWxsLgo+IAo+IFRoaXMgcGF0Y2ggZml4 ZXMgdGhlIGFib3ZlIGVycm9yIGJ5IG9ubHkgaW5jcmVtZW50aW5nIHRoZSByZWZlcmVuY2UgY291 bnQKPiBvZiB0aG9zZSBjb25uZWN0b3JzIGluIHRoZSBzZXQgdGhhdCBhcmUgaW5pdGlhbGx5IG5v dCBib3VuZCB0byBhbnkgZW5jb2RlciwKPiBhbmQgYWxzbyBieSByZXN0b3JpbmcgdGhlIHJlZmVy ZW5jZSBjb3VudCBvZiBvbmx5IHRob3NlIGNvbm5lY3RvcnMgaW4gdGhlCj4gc2V0IGluIHRoZSBm YWlsdXJlIGNhc2UuCj4gCj4gRml4ZXM6IDA5NTVjMTI1MGU5NiAoImRybS9jcnRjOiB0YWtlIHJl ZmVyZW5jZXMgdG8gY29ubmVjdG9ycyB1c2VkIGluIGEgbW9kZXNldC4gKHYyKSIpCj4gU2lnbmVk LW9mZi1ieTogUGhpbGlwcCBaYWJlbCA8cC56YWJlbEBwZW5ndXRyb25peC5kZT4KCkNvbW1pdCBt ZXNzYWdlIG5lZWRzIHRvIGJlIGF1Z21lbnRlZDoKCiJOb3RlIHRoYXQgdGhpcyBjYW4gb25seSBi ZSBoaXQgd2hlbiBmYmRldiBlbXVsYXRpb24gaXMgZGlzYWJsZWQsIHNpbmNlCnRoZW4gdGhlIHJl ZmNvdW50IGRyb3BzIGZyb20gMSB0byAwIGFuZCB3ZSBjYWxsIHRoZSBjb25uZWN0b3IgZGVzdHJv eQpmdW5jdGlvbnMgb24gdGhlIGJhY2t1cCBjb3B5LCB3aGljaCBldmVudHVhbGx5IHJlc3VsdHMg aW4gdGVhcnMuIFdpdGgKZmJkZXYgZW11bGF0aW9uIHRoZSByZWZjb3VudCBvbmx5IGdvZXMgZG93 biBmcm9tIDIgdG8gMSBldmVyLiBBbmQgc2luY2Ugd2UKdW5jb25kaXRpb25hbGx5IGluY3JlbWVu dCB0aGUgcmVmY291bnQgb24gdGhlIHJlYWwgb2JqZWN0LCB0aGUgcmVmY291bnQgb2YKdGhhdCB3 aWxsIHNsb3dseSBpbmNyZWFzZS4gVGhlIGJhY2t1cCBjb25uZWN0b3IncyByZWZjb3VudCBkb2Vz bid0IG1hdHRlciwKc2luY2Ugd2Uga2ZyZWUoKSB0aGF0IGVpdGhlciB3YXkgaW4gdGhlIGVuZCBv Zgpkcm1fY3J0Y19oZWxwZXJfc2V0X2NvbmZpZygpLiIKPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJt L2RybV9jcnRjX2hlbHBlci5jIHwgMTggKysrKysrKysrKy0tLS0tLS0tCj4gIDEgZmlsZSBjaGFu Z2VkLCAxMCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Ny dGNfaGVscGVyLmMKPiBpbmRleCBhNmU0MjQzLi4xYzRkNjc0IDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9kcm1fY3J0Y19oZWxwZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f Y3J0Y19oZWxwZXIuYwo+IEBAIC02MzEsOCArNjMxLDEyIEBAIGludCBkcm1fY3J0Y19oZWxwZXJf c2V0X2NvbmZpZyhzdHJ1Y3QgZHJtX21vZGVfc2V0ICpzZXQpCj4gIAkJbW9kZV9jaGFuZ2VkID0g dHJ1ZTsKPiAgCX0KPiAgCj4gLQkvKiB0YWtlIGEgcmVmZXJlbmNlIG9uIGFsbCBjb25uZWN0b3Jz IGluIHNldCAqLwo+ICsJLyogdGFrZSBhIHJlZmVyZW5jZSBvbiBhbGwgdW5ib3VuZCBjb25uZWN0 b3JzIGluIHNldCwgcmV1c2UgdGhlCj4gKwkgKiBhbHJlYWR5IHRha2VuIHJlZmVyZW5jZSBmb3Ig Ym91bmQgY29ubmVjdG9ycwo+ICsJICovCj4gIAlmb3IgKHJvID0gMDsgcm8gPCBzZXQtPm51bV9j b25uZWN0b3JzOyBybysrKSB7Cj4gKwkJaWYgKHNldC0+Y29ubmVjdG9yc1tyb10tPmVuY29kZXIp Cj4gKwkJCWNvbnRpbnVlOwoKVGhlIHJlYWwgYnVnZml4IGlzIHRoYXQgeW91J3JlIHN3aXRjaGlu ZyBmcm9tIHNhdmVfY29ubmVjdG9ycyB0bwpzZXQtPmNvbm5lY3RvcnMuIFRoaXMgZmlsdGVyaW5n IGhlcmUgc2hvdWxkIGJlIGlycmVsZXZhbnQuCgo+ICAJCWRybV9jb25uZWN0b3JfcmVmZXJlbmNl KHNldC0+Y29ubmVjdG9yc1tyb10pOwo+ICAJfQo+ICAKPiBAQCAtNzU0LDEyICs3NTgsNiBAQCBp bnQgZHJtX2NydGNfaGVscGVyX3NldF9jb25maWcoc3RydWN0IGRybV9tb2RlX3NldCAqc2V0KQo+ ICAJCX0KPiAgCX0KPiAgCj4gLQkvKiBhZnRlciBmYWlsIGRyb3AgcmVmZXJlbmNlIG9uIGFsbCBj b25uZWN0b3JzIGluIHNhdmUgc2V0ICovCj4gLQljb3VudCA9IDA7Cj4gLQlkcm1fZm9yX2VhY2hf Y29ubmVjdG9yKGNvbm5lY3RvciwgZGV2KSB7Cj4gLQkJZHJtX2Nvbm5lY3Rvcl91bnJlZmVyZW5j ZSgmc2F2ZV9jb25uZWN0b3JzW2NvdW50KytdKTsKCkFuZCB3ZSBuZWVkIHRvIGtlZXAgdGhlIHVu cmVmZXJlbmNlIGhlcmUgKGJ1dCBvbiBzZXQtPmNvbm5lY3RvcnMgaW5zdGVhZCksCm90aGVyd2lz ZSB0aGlzIHdpbGwgbGVhayBiYWRseS4gSW4gc2hvcnQgdGhpcyBpcyB0aGUgb25seSBwbGFjZSB5 b3UgbmVlZAp0byBmaXggdXAsIHRoZSBvdGhlciBodW5rcyBzaG91bGRuJ3QgYmUgbmVlZGVkLgoK PiAtCX0KPiAtCj4gIAlrZnJlZShzYXZlX2Nvbm5lY3RvcnMpOwo+ICAJa2ZyZWUoc2F2ZV9lbmNv ZGVycyk7Cj4gIAlyZXR1cm4gMDsKPiBAQCAtNzc2LDggKzc3NCwxMiBAQCBmYWlsOgo+ICAJCSpj b25uZWN0b3IgPSBzYXZlX2Nvbm5lY3RvcnNbY291bnQrK107Cj4gIAl9Cj4gIAo+IC0JLyogYWZ0 ZXIgZmFpbCBkcm9wIHJlZmVyZW5jZSBvbiBhbGwgY29ubmVjdG9ycyBpbiBzZXQgKi8KPiArCS8q IGFmdGVyIGZhaWwgZHJvcCByZWZlcmVuY2Ugb24gYWxsIHVuYm91bmQgY29ubmVjdG9ycyBpbiBz ZXQsIGxldAo+ICsJICogYm91bmQgY29ubmVjdG9ycyBrZWVwIHRoZWlyIHJlZmVyZW5jZQo+ICsJ ICovCj4gIAlmb3IgKHJvID0gMDsgcm8gPCBzZXQtPm51bV9jb25uZWN0b3JzOyBybysrKSB7Cj4g KwkJaWYgKHNldC0+Y29ubmVjdG9yc1tyb10tPmVuY29kZXIpCj4gKwkJCWNvbnRpbnVlOwoKQWdh aW4sIGZpbHRlcmluZyBvbiAtPmVuY29kZXIgaXMgc3VwZXJmbG91cy4KCj4gIAkJZHJtX2Nvbm5l Y3Rvcl91bnJlZmVyZW5jZShzZXQtPmNvbm5lY3RvcnNbcm9dKTsKPiAgCX0KCldpdGggdGhlIGJ1 Z3MgaW4gdGhlIGNvZGUgZml4ZWQgYW5kIHRoZSBjb21taXQgbWVzc2FnZSBhdWdtZW50ZWQ6CgpS ZXZpZXdlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiAgCj4g LS0gCj4gMi44LjEKPiAKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRl bCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9kcmktZGV2ZWwK