From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [RFC 2/5] drm/i915: Expose list of clients in sysfs Date: Thu, 15 Feb 2018 09:35:44 +0000 Message-ID: <783628d0-9b2f-c7b1-5cba-0bec8cb3dd17@linux.intel.com> References: <20180214185035.8010-1-tvrtko.ursulin@linux.intel.com> <20180214185035.8010-3-tvrtko.ursulin@linux.intel.com> <151863562773.31524.12827255988009592114@mail.alporthouse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id C5014898EE for ; Thu, 15 Feb 2018 09:35:47 +0000 (UTC) In-Reply-To: <151863562773.31524.12827255988009592114@mail.alporthouse.com> Content-Language: en-GB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , Tvrtko Ursulin , Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDE0LzAyLzIwMTggMTk6MTMsIENocmlzIFdpbHNvbiB3cm90ZToKPiBRdW90aW5nIFR2cnRr byBVcnN1bGluICgyMDE4LTAyLTE0IDE4OjUwOjMyKQo+PiBGcm9tOiBUdnJ0a28gVXJzdWxpbiA8 dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+Pgo+PiBFeHBvc2UgYSBsaXN0IG9mIGNsaWVudHMg d2l0aCBvcGVuIGZpbGUgaGFuZGxlcyBpbiBzeXNmcy4KPj4KPj4gVGhpcyB3aWxsIGJlIGEgYmFz aXMgZm9yIGEgdG9wLWxpa2UgdXRpbGl0eSBzaG93aW5nIHBlci1jbGllbnQgYW5kIHBlci0KPj4g ZW5naW5lIEdQVSBsb2FkLgo+Pgo+PiBDdXJyZW50bHkgd2Ugb25seSBleHBvc2UgZWFjaCBjbGll bnQncyBwaWQgYW5kIG5hbWUgdW5kZXIgb3BhcXVlIG51bWJlcmVkCj4+IGRpcmVjdG9yaWVzIGlu IC9zeXMvY2xhc3MvZHJtL2NhcmQwL2NsaWVudHMvLgo+Pgo+PiBGb3IgaW5zdGFuY2U6Cj4+Cj4+ IC9zeXMvY2xhc3MvZHJtL2NhcmQwL2NsaWVudHMvMy9uYW1lOiBYb3JnCj4+IC9zeXMvY2xhc3Mv ZHJtL2NhcmQwL2NsaWVudHMvMy9waWQ6IDU2NjQKPj4KPj4gU2lnbmVkLW9mZi1ieTogVHZydGtv IFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KPj4gLS0tCj4+ICAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgIHwgIDEzICsrKysrCj4+ICAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW0uYyAgIHwgMTEyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zeXNmcy5jIHwgICA4ICsrKwo+ PiAgIDMgZmlsZXMgY2hhbmdlZCwgMTI2IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCj4+ Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+PiBpbmRleCA3MGNmMjg5ODU1YWYuLjIxMzNlNjdm NWZiYyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+PiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+IEBAIC0zNDUsNiArMzQ1LDE2 IEBAIHN0cnVjdCBkcm1faTkxNV9maWxlX3ByaXZhdGUgewo+PiAgICAqLwo+PiAgICNkZWZpbmUg STkxNV9NQVhfQ0xJRU5UX0NPTlRFWFRfQkFOUyAzCj4+ICAgICAgICAgIGF0b21pY190IGNvbnRl eHRfYmFuczsKPj4gKwo+IAo+IHN0cnVjdCB7Cj4gCj4+ICsgICAgICAgdW5zaWduZWQgaW50IGNs aWVudF9zeXNmc19pZDsKPj4gKyAgICAgICB1bnNpZ25lZCBpbnQgY2xpZW50X3BpZDsKPj4gKyAg ICAgICBjaGFyICpjbGllbnRfbmFtZTsKPj4gKyAgICAgICBzdHJ1Y3Qga29iamVjdCAqY2xpZW50 X3Jvb3Q7Cj4gCj4gfSBjbGllbnQ7CgpjbGllbnRfc3lzZnM/Cgo+PiArCj4+ICsgICAgICAgc3Ry dWN0IHsKPj4gKyAgICAgICAgICAgICAgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIHBpZDsKPj4g KyAgICAgICAgICAgICAgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIG5hbWU7Cj4+ICsgICAgICAg fSBhdHRyOwo+IAo+IHN5c2ZzX2F0dHI/CgpPay4KCj4+ICAgfTsKPj4gICAKPj4gICAvKiBJbnRl cmZhY2UgaGlzdG9yeToKPj4gQEAgLTIzNjUsNiArMjM3NSw5IEBAIHN0cnVjdCBkcm1faTkxNV9w cml2YXRlIHsKPj4gICAKPj4gICAgICAgICAgc3RydWN0IGk5MTVfcG11IHBtdTsKPj4gICAKPj4g KyAgICAgICBzdHJ1Y3Qga29iamVjdCAqY2xpZW50c19yb290Owo+PiArICAgICAgIGF0b21pY190 IGNsaWVudF9zZXJpYWw7Cj4gCj4gSSdkIHN0YXJ0IGEgbmV3IHN1YnN0cnVjdCB7IH0gY2xpZW50 czsKCk9rLgoKPj4gICAgICAgICAgLyoKPj4gICAgICAgICAgICogTk9URTogVGhpcyBpcyB0aGUg ZHJpMS91bXMgZHVuZ2VvbiwgZG9uJ3QgYWRkIHN0dWZmIGhlcmUuIFlvdXIgcGF0Y2gKPj4gICAg ICAgICAgICogd2lsbCBiZSByZWplY3RlZC4gSW5zdGVhZCBsb29rIGZvciBhIGJldHRlciBwbGFj ZS4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4+IGluZGV4IGZjNjhiMzU4NTRkZi4uMjQ2MDdi Y2UyZWZlIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPj4gQEAgLTU2MTMsNiArNTYx Myw4OSBAQCBpbnQgaTkxNV9nZW1fZnJlZXplX2xhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQo+PiAgICAgICAgICByZXR1cm4gMDsKPj4gICB9Cj4+ICAgCj4+ICtzdGF0aWMg c3NpemVfdAo+PiArc2hvd19jbGllbnRfbmFtZShzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3Qg ZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQo+PiArewo+PiArICAgICAgIHN0cnVj dCBkcm1faTkxNV9maWxlX3ByaXZhdGUgKmZpbGVfcHJpdiA9Cj4+ICsgICAgICAgICAgICAgICBj b250YWluZXJfb2YoYXR0ciwgc3RydWN0IGRybV9pOTE1X2ZpbGVfcHJpdmF0ZSwgYXR0ci5uYW1l KTsKPj4gKwo+PiArICAgICAgIHJldHVybiBzbnByaW50ZihidWYsIFBBR0VfU0laRSwgIiVzIiwg ZmlsZV9wcml2LT5jbGllbnRfbmFtZSk7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBzc2l6ZV90Cj4+ ICtzaG93X2NsaWVudF9waWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRy aWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKPj4gK3sKPj4gKyAgICAgICBzdHJ1Y3QgZHJtX2k5MTVf ZmlsZV9wcml2YXRlICpmaWxlX3ByaXYgPQo+PiArICAgICAgICAgICAgICAgY29udGFpbmVyX29m KGF0dHIsIHN0cnVjdCBkcm1faTkxNV9maWxlX3ByaXZhdGUsIGF0dHIucGlkKTsKPj4gKwo+PiAr ICAgICAgIHJldHVybiBzbnByaW50ZihidWYsIFBBR0VfU0laRSwgIiV1IiwgZmlsZV9wcml2LT5j bGllbnRfcGlkKTsKPj4gK30KPj4gKwo+PiArc3RhdGljIGludAo+PiAraTkxNV9nZW1fYWRkX2Ns aWVudChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKPj4gKyAgICAgICAgICAgICAgIHN0 cnVjdCBkcm1faTkxNV9maWxlX3ByaXZhdGUgKmZpbGVfcHJpdiwKPj4gKyAgICAgICAgICAgICAg IHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywKPj4gKyAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu dCBzZXJpYWwpCj4+ICt7Cj4+ICsgICAgICAgaW50IHJldCA9IC1FTk9NRU07Cj4+ICsgICAgICAg c3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHI7Cj4+ICsgICAgICAgY2hhciBpZFszMl07Cj4+ ICsKPj4gKyAgICAgICBmaWxlX3ByaXYtPmNsaWVudF9uYW1lID0ga3N0cmR1cCh0YXNrLT5jb21t LCBHRlBfS0VSTkVMKTsKPj4gKyAgICAgICBpZiAoIWZpbGVfcHJpdi0+Y2xpZW50X25hbWUpCj4+ ICsgICAgICAgICAgICAgICBnb3RvIGVycl9uYW1lOwo+PiArCj4+ICsgICAgICAgc25wcmludGYo aWQsIHNpemVvZihpZCksICIldSIsIHNlcmlhbCk7Cj4+ICsgICAgICAgZmlsZV9wcml2LT5jbGll bnRfcm9vdCA9IGtvYmplY3RfY3JlYXRlX2FuZF9hZGQoaWQsCj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaTkxNS0+Y2xpZW50c19yb290 KTsKPiAKPiBEbyB3ZSBoYXZlIHRvIGNhcmUgYWJvdXQgaTkxNS0+Y2xpZW50c19yb290IGJlaW5n IE5VTEwgaGVyZT8KClllcCwgZHVlIG91ciBsYXggaGFuZGxpbmcgb2Ygc3lzZnMgcmVnaXN0cmF0 aW9uIGZhaWx1cmVzLiA6LwoKPj4gKyAgICAgICBpZiAoIWZpbGVfcHJpdi0+Y2xpZW50X3Jvb3Qp Cj4+ICsgICAgICAgICAgICAgICBnb3RvIGVycl9jbGllbnQ7Cj4+ICsKPj4gKyAgICAgICBhdHRy ID0gJmZpbGVfcHJpdi0+YXR0ci5uYW1lOwo+PiArICAgICAgIGF0dHItPmF0dHIubmFtZSA9ICJu YW1lIjsKPj4gKyAgICAgICBhdHRyLT5hdHRyLm1vZGUgPSAwNDQ0Owo+PiArICAgICAgIGF0dHIt PnNob3cgPSBzaG93X2NsaWVudF9uYW1lOwo+PiArCj4+ICsgICAgICAgcmV0ID0gc3lzZnNfY3Jl YXRlX2ZpbGUoZmlsZV9wcml2LT5jbGllbnRfcm9vdCwKPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoc3RydWN0IGF0dHJpYnV0ZSAqKWF0dHIpOwo+PiArICAgICAgIGlmIChyZXQp Cj4+ICsgICAgICAgICAgICAgICBnb3RvIGVycl9hdHRyX25hbWU7Cj4+ICsKPj4gKyAgICAgICBh dHRyID0gJmZpbGVfcHJpdi0+YXR0ci5waWQ7Cj4+ICsgICAgICAgYXR0ci0+YXR0ci5uYW1lID0g InBpZCI7Cj4+ICsgICAgICAgYXR0ci0+YXR0ci5tb2RlID0gMDQ0NDsKPj4gKyAgICAgICBhdHRy LT5zaG93ID0gc2hvd19jbGllbnRfcGlkOwo+PiArCj4+ICsgICAgICAgcmV0ID0gc3lzZnNfY3Jl YXRlX2ZpbGUoZmlsZV9wcml2LT5jbGllbnRfcm9vdCwKPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoc3RydWN0IGF0dHJpYnV0ZSAqKWF0dHIpOwo+PiArICAgICAgIGlmIChyZXQp Cj4+ICsgICAgICAgICAgICAgICBnb3RvIGVycl9hdHRyX3BpZDsKPj4gKwo+PiArICAgICAgIGZp bGVfcHJpdi0+Y2xpZW50X3BpZCA9IHBpZF9ucihnZXRfdGFza19waWQodGFzaywgUElEVFlQRV9Q SUQpKTsKPiAKPiBBcmUgd2UgYmVmb3JlIG9yIGFmdGVyIHRoZSAiY3JlYXRlX2NvbnRleHQgZ2V0 IG5ldyBwaWQiPyBKdXN0IHdvbmRlcmluZwo+IGFsb3VkIGhvdyB0aGF0J3MgZ29pbmcgdG8gdGll IGluLgoKQmVmb3JlLCBjcmVhdGVfY29udGV4dCB0aGVuIHVwZGF0ZXMgaXQgaW4gYSBmb2xsb3dp bmcgcGF0Y2guIFdoaWNoIApwcm9iYWJseSBuZWVkcyBpbXByb3ZpbmcgdG8gYXZvaWQgcmVtb3Zl IGFuZCByZS1hZGQsIGFuZCBhZGQgYSBwcm9wZXIgCnVwZGF0ZSBoZWxwZXIuCgo+IAo+PiArCj4+ ICsgICAgICAgcmV0dXJuIDA7Cj4+ICsKPj4gK2Vycl9hdHRyX3BpZDoKPj4gKyAgICAgICBzeXNm c19yZW1vdmVfZmlsZShmaWxlX3ByaXYtPmNsaWVudF9yb290LAo+PiArICAgICAgICAgICAgICAg ICAgICAgICAgIChzdHJ1Y3QgYXR0cmlidXRlICopJmZpbGVfcHJpdi0+YXR0ci5uYW1lKTsKPj4g K2Vycl9hdHRyX25hbWU6Cj4+ICsgICAgICAga29iamVjdF9wdXQoZmlsZV9wcml2LT5jbGllbnRf cm9vdCk7Cj4+ICtlcnJfY2xpZW50Ogo+PiArICAgICAgIGtmcmVlKGZpbGVfcHJpdi0+Y2xpZW50 X25hbWUpOwo+PiArZXJyX25hbWU6Cj4+ICsgICAgICAgcmV0dXJuIHJldDsKPj4gK30KPj4gKwo+ PiArc3RhdGljIHZvaWQgaTkxNV9nZW1fcmVtb3ZlX2NsaWVudChzdHJ1Y3QgZHJtX2k5MTVfZmls ZV9wcml2YXRlICpmaWxlX3ByaXYpCj4+ICt7Cj4+ICsgICAgICAgc3lzZnNfcmVtb3ZlX2ZpbGUo ZmlsZV9wcml2LT5jbGllbnRfcm9vdCwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAoc3Ry dWN0IGF0dHJpYnV0ZSAqKSZmaWxlX3ByaXYtPmF0dHIucGlkKTsKPj4gKyAgICAgICBzeXNmc19y ZW1vdmVfZmlsZShmaWxlX3ByaXYtPmNsaWVudF9yb290LAo+PiArICAgICAgICAgICAgICAgICAg ICAgICAgIChzdHJ1Y3QgYXR0cmlidXRlICopJmZpbGVfcHJpdi0+YXR0ci5uYW1lKTsKPj4gKyAg ICAgICBrb2JqZWN0X3B1dChmaWxlX3ByaXYtPmNsaWVudF9yb290KTsKPj4gKyAgICAgICBrZnJl ZShmaWxlX3ByaXYtPmNsaWVudF9uYW1lKTsKPj4gK30KPj4gKwo+PiAgIHZvaWQgaTkxNV9nZW1f cmVsZWFzZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCj4+ ICAgewo+PiAgICAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZmlsZV9wcml2YXRlICpmaWxlX3ByaXYg PSBmaWxlLT5kcml2ZXJfcHJpdjsKPj4gQEAgLTU2MjYsMzIgKzU3MDksNDcgQEAgdm9pZCBpOTE1 X2dlbV9yZWxlYXNlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmls ZSkKPj4gICAgICAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeShyZXF1ZXN0LCAmZmlsZV9wcml2LT5t bS5yZXF1ZXN0X2xpc3QsIGNsaWVudF9saW5rKQo+PiAgICAgICAgICAgICAgICAgIHJlcXVlc3Qt PmZpbGVfcHJpdiA9IE5VTEw7Cj4+ICAgICAgICAgIHNwaW5fdW5sb2NrKCZmaWxlX3ByaXYtPm1t LmxvY2spOwo+PiArCj4+ICsgICAgICAgaTkxNV9nZW1fcmVtb3ZlX2NsaWVudChmaWxlX3ByaXYp Owo+PiAgIH0KPj4gICAKPj4gICBpbnQgaTkxNV9nZW1fb3BlbihzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSwgc3RydWN0IGRybV9maWxlICpmaWxlKQo+PiAgIHsKPj4gKyAgICAgICBpbnQg cmV0ID0gLUVOT01FTTsKPj4gICAgICAgICAgc3RydWN0IGRybV9pOTE1X2ZpbGVfcHJpdmF0ZSAq ZmlsZV9wcml2Owo+PiAtICAgICAgIGludCByZXQ7Cj4+ICAgCj4+ICAgICAgICAgIERSTV9ERUJV RygiXG4iKTsKPj4gICAKPj4gICAgICAgICAgZmlsZV9wcml2ID0ga3phbGxvYyhzaXplb2YoKmZp bGVfcHJpdiksIEdGUF9LRVJORUwpOwo+PiAgICAgICAgICBpZiAoIWZpbGVfcHJpdikKPj4gLSAg ICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOwo+PiArICAgICAgICAgICAgICAgZ290byBlcnJf YWxsb2M7Cj4+ICsKPj4gKyAgICAgICBmaWxlX3ByaXYtPmNsaWVudF9zeXNmc19pZCA9IGF0b21p Y19pbmNfcmV0dXJuKCZpOTE1LT5jbGllbnRfc2VyaWFsKTsKPiAKPiBXaGF0J3MgdGhlIHVzZSBm b3IgY2xpZW50X3N5c2ZkX2lkPyBJIGRvbid0IHNlZSBpdCB1c2VkIGFnYWluLgoKVXNlZCBmcm9t IGNvbnRleHQgY3JlYXRlIHBpZCB1cGRhdGUsIGJ1dCBpdHMgd2Vhay4uIEknbGwgZWxpbWluYXRl IGl0IAphZnRlciBhYm92ZSBtZW50aW9uZWQgaW1wcm92ZW1lbnRzLgoKUmVnYXJkcywKClR2cnRr bwoKPiAKPj4gKyAgICAgICByZXQgPSBpOTE1X2dlbV9hZGRfY2xpZW50KGk5MTUsIGZpbGVfcHJp diwgY3VycmVudCwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVfcHJp di0+Y2xpZW50X3N5c2ZzX2lkKTsKPj4gKyAgICAgICBpZiAocmV0KQo+PiArICAgICAgICAgICAg ICAgZ290byBlcnJfY2xpZW50Owo+PiAgIAo+PiAgICAgICAgICBmaWxlLT5kcml2ZXJfcHJpdiA9 IGZpbGVfcHJpdjsKPj4gKyAgICAgICByZXQgPSBpOTE1X2dlbV9jb250ZXh0X29wZW4oaTkxNSwg ZmlsZSk7Cj4+ICsgICAgICAgaWYgKHJldCkKPj4gKyAgICAgICAgICAgICAgIGdvdG8gZXJyX2Nv bnRleHQ7Cj4+ICsKPj4gICAgICAgICAgZmlsZV9wcml2LT5kZXZfcHJpdiA9IGk5MTU7Cj4+ICAg ICAgICAgIGZpbGVfcHJpdi0+ZmlsZSA9IGZpbGU7Cj4+ICsgICAgICAgZmlsZV9wcml2LT5ic2Rf ZW5naW5lID0gLTE7Cj4+ICAgCj4+ICAgICAgICAgIHNwaW5fbG9ja19pbml0KCZmaWxlX3ByaXYt Pm1tLmxvY2spOwo+PiAgICAgICAgICBJTklUX0xJU1RfSEVBRCgmZmlsZV9wcml2LT5tbS5yZXF1 ZXN0X2xpc3QpOwo+PiAgIAo+PiAtICAgICAgIGZpbGVfcHJpdi0+YnNkX2VuZ2luZSA9IC0xOwo+ PiAtCj4+IC0gICAgICAgcmV0ID0gaTkxNV9nZW1fY29udGV4dF9vcGVuKGk5MTUsIGZpbGUpOwo+ PiAtICAgICAgIGlmIChyZXQpCj4+IC0gICAgICAgICAgICAgICBrZnJlZShmaWxlX3ByaXYpOwo+ PiArICAgICAgIHJldHVybiAwOwo+PiAgIAo+PiArZXJyX2NvbnRleHQ6Cj4+ICsgICAgICAgaTkx NV9nZW1fcmVtb3ZlX2NsaWVudChmaWxlX3ByaXYpOwo+PiArZXJyX2NsaWVudDoKPj4gKyAgICAg ICBhdG9taWNfZGVjKCZpOTE1LT5jbGllbnRfc2VyaWFsKTsKPj4gKyAgICAgICBrZnJlZShmaWxl X3ByaXYpOwo+PiArZXJyX2FsbG9jOgo+PiAgICAgICAgICByZXR1cm4gcmV0Owo+PiAgIH0KPj4g ICAKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3lzZnMuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3lzZnMuYwo+PiBpbmRleCBiMzNkMjE1OGMyMzQuLjZj ZjAzMmJjMTU3MyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zeXNm cy5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3lzZnMuYwo+PiBAQCAtNTc1 LDYgKzU3NSwxMSBAQCB2b2lkIGk5MTVfc2V0dXBfc3lzZnMoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQo+PiAgICAgICAgICBzdHJ1Y3QgZGV2aWNlICprZGV2ID0gZGV2X3ByaXYt PmRybS5wcmltYXJ5LT5rZGV2Owo+PiAgICAgICAgICBpbnQgcmV0Owo+PiAgIAo+PiArICAgICAg IGRldl9wcml2LT5jbGllbnRzX3Jvb3QgPQo+PiArICAgICAgICAgICAgICAga29iamVjdF9jcmVh dGVfYW5kX2FkZCgiY2xpZW50cyIsICZrZGV2LT5rb2JqKTsKPj4gKyAgICAgICBpZiAoIWRldl9w cml2LT5jbGllbnRzX3Jvb3QpCj4+ICsgICAgICAgICAgICAgICBEUk1fRVJST1IoIlBlci1jbGll bnQgc3lzZnMgc2V0dXAgZmFpbGVkXG4iKTsKPj4gKwo+PiAgICNpZmRlZiBDT05GSUdfUE0KPj4g ICAgICAgICAgaWYgKEhBU19SQzYoZGV2X3ByaXYpKSB7Cj4+ICAgICAgICAgICAgICAgICAgcmV0 ID0gc3lzZnNfbWVyZ2VfZ3JvdXAoJmtkZXYtPmtvYmosCj4+IEBAIC02MzUsNCArNjQwLDcgQEAg dm9pZCBpOTE1X3RlYXJkb3duX3N5c2ZzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKPj4gICAgICAgICAgc3lzZnNfdW5tZXJnZV9ncm91cCgma2Rldi0+a29iaiwgJnJjNl9hdHRy X2dyb3VwKTsKPj4gICAgICAgICAgc3lzZnNfdW5tZXJnZV9ncm91cCgma2Rldi0+a29iaiwgJnJj NnBfYXR0cl9ncm91cCk7Cj4+ICAgI2VuZGlmCj4+ICsKPj4gKyAgICAgICBpZiAoZGV2X3ByaXYt PmNsaWVudHNfcm9vdCkKPj4gKyAgICAgICAgICAgICAgIGtvYmplY3RfcHV0KGRldl9wcml2LT5j bGllbnRzX3Jvb3QpOwo+PiAgIH0KPj4gLS0gCj4+IDIuMTQuMQo+Pgo+PiBfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBJbnRlbC1nZnggbWFpbGluZyBs aXN0Cj4+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKPiBfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxp c3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKPiAKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==