From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lionel Landwerlin Subject: Re: [PATCH v3 1/2] drm/i915/perf: prune OA configs Date: Fri, 14 Jul 2017 15:32:57 +0100 Message-ID: References: <20170714102440.25067-1-lionel.g.landwerlin@intel.com> <20170714102440.25067-2-lionel.g.landwerlin@intel.com> <20170714122039.ghto4vb5jmvfvvhu@mwahaha> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id DB8D26E847 for ; Fri, 14 Jul 2017 14:32:58 +0000 (UTC) In-Reply-To: <20170714122039.ghto4vb5jmvfvvhu@mwahaha> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Matthew Auld Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gMTQvMDcvMTcgMTM6MjAsIE1hdHRoZXcgQXVsZCB3cm90ZToKPiBPbiAwNy8xNCwgTGlvbmVs IExhbmR3ZXJsaW4gd3JvdGU6Cj4+IEluIHRoZSBmb2xsb3dpbmcgY29tbWl0IHdlJ2xsIGludHJv ZHVjZSBsb2FkYWJsZSB1c2Vyc3BhY2UKPj4gY29uZmlncy4gVGhpcyBjaGFuZ2UgcmV3b3JrcyBo b3cgY29uZmlndXJhdGlvbnMgYXJlIGhhbmRsZWQgaW4gdGhlCj4+IHBlcmYgZHJpdmVyIGFuZCBy ZXRhaW5zIG9ubHkgdGhlIHRlc3QgY29uZmlndXJhdGlvbnMgaW4ga2VybmVsIHNwYWNlLgo+Pgo+ PiBXZSBub3cgc3RvcmUgdGhlIHRlc3QgY29uZmlnIGluIGRldl9wcml2IGFuZCByZXNvbHZlIHRo ZSBpZCBvbmx5IG9uY2UKPj4gd2hlbiBvcGVuaW5nIHRoZSBwZXJmIHN0cmVhbS4gVGhlIE9BIGNv bmZpZyBpcyB0aGVuIGhhbmRsZWQgdGhyb3VnaCBhCj4+IHBvaW50ZXIgdG8gdGhlIHN0cnVjdHVy ZSBob2xkaW5nIHRoZSBjb25maWd1cmF0aW9uIGRldGFpbHMuCj4+Cj4+IHYyOiBSZXdvcmsgaG93 IHRlc3QgY29uZmlncyBhcmUgaGFuZGxlZCAoTGlvbmVsKQo+Pgo+PiB2MzogVXNlIHUzMiB0byBo b2xkIG51bWJlciBvZiByZWdpc3RlciAoTWF0dGhldykKPj4KPj4gU2lnbmVkLW9mZi1ieTogTGlv bmVsIExhbmR3ZXJsaW4gPGxpb25lbC5nLmxhbmR3ZXJsaW5AaW50ZWwuY29tPgo+PiAtLS0KPj4g ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgIHwgICA0NCArLQo+PiAgIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfYmR3LmMgICAgfCA1MzYwICstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfYmR3 LmggICAgfCAgICA4ICstCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9ieHQuYyAg ICB8IDI2MjMgKy0tLS0tLS0tLS0tLS0tLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf b2FfYnh0LmggICAgfCAgICA4ICstCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9j aHYuYyAgICB8IDI4MDYgKy0tLS0tLS0tLS0tLS0tLS0KPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X29hX2Nodi5oICAgIHwgICAgOCArLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfb2FfZ2xrLmMgICAgfCAyNTM1ICstLS0tLS0tLS0tLS0tLS0KPj4gICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X29hX2dsay5oICAgIHwgICAgOCArLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfb2FfaHN3LmMgICAgfCAgNzY0ICstLS0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9vYV9oc3cuaCAgICB8ICAgIDggKy0KPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X29hX2tibGd0Mi5jIHwgMjk3MSArLS0tLS0tLS0tLS0tLS0tLS0KPj4gICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X29hX2tibGd0Mi5oIHwgICAgOCArLQo+PiAgIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfb2Ffa2JsZ3QzLmMgfCAzMDIwICstLS0tLS0tLS0tLS0tLS0tLS0KPj4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2tibGd0My5oIHwgICAgOCArLQo+PiAgIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfb2Ffc2tsZ3QyLmMgfCAzNDU4ICstLS0tLS0tLS0tLS0tLS0t LS0tLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2Ffc2tsZ3QyLmggfCAgICA4ICst Cj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9za2xndDMuYyB8IDMwMTkgKy0tLS0t LS0tLS0tLS0tLS0tLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2Ffc2tsZ3QzLmgg fCAgICA4ICstCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9za2xndDQuYyB8IDMw NzMgKy0tLS0tLS0tLS0tLS0tLS0tLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2Ff c2tsZ3Q0LmggfCAgICA4ICstCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMg ICAgICB8ICAzMDkgKy0KPj4gICAyMiBmaWxlcyBjaGFuZ2VkLCA1MDQgaW5zZXJ0aW9ucygrKSwg Mjk1NTggZGVsZXRpb25zKC0pCj4gPFNOSVA+Cj4KPj4gLXN0YXRpYyBpbnQgZ2VuOF9lbWl0X29h X2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPj4gK3N0YXRpYyBpbnQg Z2VuOF9lbWl0X29hX2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPj4g KwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9jb25maWcgKm9hX2NvbmZpZykKPj4gICB7 Cj4+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHJlcS0+aTkxNTsKPj4g LQljb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgKmZsZXhfcmVncyA9IGRldl9wcml2LT5wZXJmLm9h LmZsZXhfcmVnczsKPj4gLQlpbnQgbl9mbGV4X3JlZ3MgPSBkZXZfcHJpdi0+cGVyZi5vYS5mbGV4 X3JlZ3NfbGVuOwo+PiAgIAkvKiBUaGUgTU1JTyBvZmZzZXRzIGZvciBGbGV4IEVVIHJlZ2lzdGVy cyBhcmVuJ3QgY29udGlndW91cyAqLwo+PiAgIAl1MzIgZmxleF9tbWlvW10gPSB7Cj4+ICAgCQlp OTE1X21taW9fcmVnX29mZnNldChFVV9QRVJGX0NOVEwwKSwKPj4gQEAgLTE2MDEsMTEgKzE1OTQs MTQgQEAgc3RhdGljIGludCBnZW44X2VtaXRfb2FfY29uZmlnKHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcmVxKQo+PiAgIAl1MzIgKmNzOwo+PiAgIAlpbnQgaTsKPj4gICAKPj4gLQljcyA9 IGludGVsX3JpbmdfYmVnaW4ocmVxLCBuX2ZsZXhfcmVncyAqIDIgKyA0KTsKPj4gKwlpZiAoV0FS Tl9PTighb2FfY29uZmlnKSkKPj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4+ICsKPj4gKwljcyA9IGlu dGVsX3JpbmdfYmVnaW4ocmVxLCBvYV9jb25maWctPmZsZXhfcmVnc19sZW4gKiAyICsgNCk7Cj4+ ICAgCWlmIChJU19FUlIoY3MpKQo+PiAgIAkJcmV0dXJuIFBUUl9FUlIoY3MpOwo+PiAgIAo+PiAt CSpjcysrID0gTUlfTE9BRF9SRUdJU1RFUl9JTU0obl9mbGV4X3JlZ3MgKyAxKTsKPj4gKwkqY3Mr KyA9IE1JX0xPQURfUkVHSVNURVJfSU1NKG9hX2NvbmZpZy0+ZmxleF9yZWdzX2xlbiArIDEpOwo+ IFNvbWV0aGluZyBkb2Vzbid0IGFkZCB1cCBoZXJlLCBpZiB3ZSBkb24ndCBzdXBwbHkgYW55IGZs ZXggcmVnaXN0ZXJzLCB3aGljaAo+IHNlZW1zIHRvIGJlIHRoZSBjYXNlIGZvciB0aGUgb2EgdGVz dCBjb25maWdzLCBvciBwb3RlbnRpYWxseSBhbnkgdXNlciBwcm92aWRlZAo+IGNvbmZpZyB0aGVu IHdlIG9ubHkgcmVzZXJ2ZSByaW5nX2JlZ2luKDQpL0lNTSgxKSwgYnV0IHdlIHN0aWxsIGdvIG9m ZiBhbmQgd3JpdGUKPiBvdXQgdGhlIGRlZmF1bHQgZmxleCB2YWx1ZXMgYXMgcGVyIGZsZXhfbW1p by4gQWxzbyB3ZSBjb3VsZCBwb3RlbnRpYWxseSBvdmVyCj4gcmVzZXJ2ZSBzaW5jZSB3ZSBjYW4g b25seSBldmVyIHdyaXRlIG91dCBhdCBtb3N0IGZsZXhfbW1pbyByZWdpc3RlcnMuCj4KPiBNeSBm aXJzdCB0aG91Z2h0IGlzIHBlcmhhcHM6Cj4KPiBpbnQgZmxleF9tYXggPSBBUlJBWV9TSVpFKGZs ZXhfbW1pbyk7Cj4KPiBHRU1fQlVHX09OKGZsZXhfcmVnc19sZW4gPiBmbGV4X21heCk7Cj4KPiBj cyA9IGludGVsX3JpbmdfYmVnaW4ocmVxLCBmbGV4X21heCAqIDIgKyA0KTsKPgo+ICpjcysrID0g TUlfTE9BRF9SRUdJU1RFUl9JTU0oZmxleF9tYXggKyAxKTsKPgo+IGZvciAoaSA9IDA7IGkgPCBm bGV4X21heDsgaSsrKSB7Cj4gICAgICAKPiAgICAgIGZvciAoLi4uKSB7Cj4gCWlmIChhZGRyID09 IG1taW8pIHsKPiAJCXZhbHVlID0gLi4uCj4gCQkrK2NvdW50Owo+IAl9Cj4gICAgICB9Cj4gfQo+ Cj4gR0VNX0JVR19PTihjb3VudCAhPSBmbGV4X3JlZ3NfbGVuKTsKClRoYW5rcyBmb3IgcG9pbnRp bmcgdGhpcyBvdXQsIHRoZXJlIGlzIGluZGVlZCBhIHByb2JsZW0uCgo+Cj4+ICAgCj4+ICAgCSpj cysrID0gaTkxNV9tbWlvX3JlZ19vZmZzZXQoR0VOOF9PQUNUWENPTlRST0wpOwo+PiAgIAkqY3Mr KyA9IChkZXZfcHJpdi0+cGVyZi5vYS5wZXJpb2RfZXhwb25lbnQgPDwgR0VOOF9PQV9USU1FUl9Q RVJJT0RfU0hJRlQpIHwKPj4gQEAgLTE2MjQsOSArMTYyMCw5IEBAIHN0YXRpYyBpbnQgZ2VuOF9l bWl0X29hX2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPj4gICAJCXUz MiB2YWx1ZSA9IDA7Cj4+ICAgCQlpbnQgajsKPj4gICAKPj4gLQkJZm9yIChqID0gMDsgaiA8IG5f ZmxleF9yZWdzOyBqKyspIHsKPj4gLQkJCWlmIChpOTE1X21taW9fcmVnX29mZnNldChmbGV4X3Jl Z3Nbal0uYWRkcikgPT0gbW1pbykgewo+PiAtCQkJCXZhbHVlID0gZmxleF9yZWdzW2pdLnZhbHVl Owo+PiArCQlmb3IgKGogPSAwOyBqIDwgb2FfY29uZmlnLT5mbGV4X3JlZ3NfbGVuOyBqKyspIHsK Pj4gKwkJCWlmIChpOTE1X21taW9fcmVnX29mZnNldChvYV9jb25maWctPmZsZXhfcmVnc1tqXS5h ZGRyKSA9PSBtbWlvKSB7Cj4+ICsJCQkJdmFsdWUgPSBvYV9jb25maWctPmZsZXhfcmVnc1tqXS52 YWx1ZTsKPj4gICAJCQkJYnJlYWs7Cj4+ICAgCQkJfQo+PiAgIAkJfQo+PiBAQCAtMTY0MSw3ICsx NjM3LDggQEAgc3RhdGljIGludCBnZW44X2VtaXRfb2FfY29uZmlnKHN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqcmVxKQo+PiAgIAlyZXR1cm4gMDsKPj4gICB9Cj4+ICAgCj4+IC1zdGF0aWMg aW50IGdlbjhfc3dpdGNoX3RvX3VwZGF0ZWRfa2VybmVsX2NvbnRleHQoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQo+PiArc3RhdGljIGludCBnZW44X3N3aXRjaF90b191cGRhdGVk X2tlcm5lbF9jb250ZXh0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4gKwkJ CQkJCSBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9jb25maWcgKm9hX2NvbmZpZykKPj4gICB7Cj4+ICAg CXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IGRldl9wcml2LT5lbmdpbmVbUkNTXTsK Pj4gICAJc3RydWN0IGk5MTVfZ2VtX3RpbWVsaW5lICp0aW1lbGluZTsKPj4gQEAgLTE2NTYsMTAg KzE2NTMsMTIgQEAgc3RhdGljIGludCBnZW44X3N3aXRjaF90b191cGRhdGVkX2tlcm5lbF9jb250 ZXh0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHIKPj4gICAJaWYgKElTX0VSUihyZXEp KQo+PiAgIAkJcmV0dXJuIFBUUl9FUlIocmVxKTsKPj4gICAKPj4gLQlyZXQgPSBnZW44X2VtaXRf b2FfY29uZmlnKHJlcSk7Cj4+IC0JaWYgKHJldCkgewo+PiAtCQlpOTE1X2FkZF9yZXF1ZXN0KHJl cSk7Cj4+IC0JCXJldHVybiByZXQ7Cj4+ICsJaWYgKG9hX2NvbmZpZykgewo+PiArCQlyZXQgPSBn ZW44X2VtaXRfb2FfY29uZmlnKHJlcSwgb2FfY29uZmlnKTsKPj4gKwkJaWYgKHJldCkgewo+PiAr CQkJaTkxNV9hZGRfcmVxdWVzdChyZXEpOwo+PiArCQkJcmV0dXJuIHJldDsKPj4gKwkJfQo+PiAg IAl9Cj4+ICAgCj4+ICAgCS8qIFF1ZXVlIHRoaXMgc3dpdGNoIGFmdGVyIGFsbCBvdGhlciBhY3Rp dml0eSAqLwo+PiBAQCAtMTcwNyw2ICsxNzA2LDcgQEAgc3RhdGljIGludCBnZW44X3N3aXRjaF90 b191cGRhdGVkX2tlcm5lbF9jb250ZXh0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHIK Pj4gICAgKiBOb3RlOiBpdCdzIG9ubHkgdGhlIFJDUy9SZW5kZXIgY29udGV4dCB0aGF0IGhhcyBh bnkgT0Egc3RhdGUuCj4+ICAgICovCj4+ICAgc3RhdGljIGludCBnZW44X2NvbmZpZ3VyZV9hbGxf Y29udGV4dHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+PiArCQkJCSAgICAg ICBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9jb25maWcgKm9hX2NvbmZpZywKPj4gICAJCQkJICAgICAg IGJvb2wgaW50ZXJydXB0aWJsZSkKPj4gICB7Cj4+ICAgCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0 ICpjdHg7Cj4+IEBAIC0xNzI0LDcgKzE3MjQsNyBAQCBzdGF0aWMgaW50IGdlbjhfY29uZmlndXJl X2FsbF9jb250ZXh0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ICAgCX0K Pj4gICAKPj4gICAJLyogU3dpdGNoIGF3YXkgZnJvbSBhbnkgdXNlciBjb250ZXh0LiAqLwo+PiAt CXJldCA9IGdlbjhfc3dpdGNoX3RvX3VwZGF0ZWRfa2VybmVsX2NvbnRleHQoZGV2X3ByaXYpOwo+ PiArCXJldCA9IGdlbjhfc3dpdGNoX3RvX3VwZGF0ZWRfa2VybmVsX2NvbnRleHQoZGV2X3ByaXYs IG9hX2NvbmZpZyk7Cj4+ICAgCWlmIChyZXQpCj4+ICAgCQlnb3RvIG91dDsKPj4gICAKPj4gQEAg LTE3NjMsNyArMTc2Myw4IEBAIHN0YXRpYyBpbnQgZ2VuOF9jb25maWd1cmVfYWxsX2NvbnRleHRz KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4gICAJCWNlLT5zdGF0ZS0+b2Jq LT5tbS5kaXJ0eSA9IHRydWU7Cj4+ICAgCQlyZWdzICs9IExSQ19TVEFURV9QTiAqIFBBR0VfU0la RSAvIHNpemVvZigqcmVncyk7Cj4+ICAgCj4+IC0JCWdlbjhfdXBkYXRlX3JlZ19zdGF0ZV91bmxv Y2tlZChjdHgsIHJlZ3MpOwo+PiArCQlpZiAob2FfY29uZmlnKQo+PiArCQkJZ2VuOF91cGRhdGVf cmVnX3N0YXRlX3VubG9ja2VkKGN0eCwgcmVncywgb2FfY29uZmlnKTsKPj4gICAKPj4gICAJCWk5 MTVfZ2VtX29iamVjdF91bnBpbl9tYXAoY2UtPnN0YXRlLT5vYmopOwo+PiAgIAl9Cj4+IEBAIC0x Nzc0LDEzICsxNzc1LDEwIEBAIHN0YXRpYyBpbnQgZ2VuOF9jb25maWd1cmVfYWxsX2NvbnRleHRz KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4gICAJcmV0dXJuIHJldDsKPj4g ICB9Cj4+ICAgCj4+IC1zdGF0aWMgaW50IGdlbjhfZW5hYmxlX21ldHJpY19zZXQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+PiArc3RhdGljIGludCBnZW44X2VuYWJsZV9tZXRy aWNfc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4gKwkJCQkgIGNvbnN0 IHN0cnVjdCBpOTE1X29hX2NvbmZpZyAqb2FfY29uZmlnKQo+PiAgIHsKPj4gLQlpbnQgcmV0ID0g ZGV2X3ByaXYtPnBlcmYub2Eub3BzLnNlbGVjdF9tZXRyaWNfc2V0KGRldl9wcml2KTsKPj4gLQlp bnQgaTsKPj4gLQo+PiAtCWlmIChyZXQpCj4+IC0JCXJldHVybiByZXQ7Cj4+ICsJaW50IHJldDsK Pj4gICAKPj4gICAJLyoKPj4gICAJICogV2UgZGlzYWJsZSBzbGljZS91bnNsaWNlIGNsb2NrIHJh dGlvIGNoYW5nZSByZXBvcnRzIG9uIFNLTCBzaW5jZQo+PiBAQCAtMTgxNywxOSArMTgxNSwxOCBA QCBzdGF0aWMgaW50IGdlbjhfZW5hYmxlX21ldHJpY19zZXQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQo+PiAgIAkgKiB0byBtYWtlIHN1cmUgYWxsIHNsaWNlcy9zdWJzbGljZXMg YXJlIE9OIGJlZm9yZSB3cml0aW5nIHRvIE5PQQo+PiAgIAkgKiByZWdpc3RlcnMuCj4+ICAgCSAq Lwo+PiAtCXJldCA9IGdlbjhfY29uZmlndXJlX2FsbF9jb250ZXh0cyhkZXZfcHJpdiwgdHJ1ZSk7 Cj4+ICsJcmV0ID0gZ2VuOF9jb25maWd1cmVfYWxsX2NvbnRleHRzKGRldl9wcml2LCBvYV9jb25m aWcsIHRydWUpOwo+PiAgIAlpZiAocmV0KQo+PiAgIAkJcmV0dXJuIHJldDsKPj4gICAKPj4gICAJ STkxNV9XUklURShHRFRfQ0hJQ0tFTl9CSVRTLCAweEEwKTsKPj4gLQlmb3IgKGkgPSAwOyBpIDwg ZGV2X3ByaXYtPnBlcmYub2Eubl9tdXhfY29uZmlnczsgaSsrKSB7Cj4+IC0JCWNvbmZpZ19vYV9y ZWdzKGRldl9wcml2LCBkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVnc1tpXSwKPj4gLQkJCSAgICAg ICBkZXZfcHJpdi0+cGVyZi5vYS5tdXhfcmVnc19sZW5zW2ldKTsKPj4gLQl9Cj4+ICsKPj4gKwlj b25maWdfb2FfcmVncyhkZXZfcHJpdiwgb2FfY29uZmlnLT5tdXhfcmVncywgb2FfY29uZmlnLT5t dXhfcmVnc19sZW4pOwo+PiArCj4+ICAgCUk5MTVfV1JJVEUoR0RUX0NISUNLRU5fQklUUywgMHg4 MCk7Cj4+ICAgCj4+IC0JY29uZmlnX29hX3JlZ3MoZGV2X3ByaXYsIGRldl9wcml2LT5wZXJmLm9h LmJfY291bnRlcl9yZWdzLAo+PiAtCQkgICAgICAgZGV2X3ByaXYtPnBlcmYub2EuYl9jb3VudGVy X3JlZ3NfbGVuKTsKPj4gKwljb25maWdfb2FfcmVncyhkZXZfcHJpdiwgb2FfY29uZmlnLT5iX2Nv dW50ZXJfcmVncywKPj4gKwkJICAgICAgIG9hX2NvbmZpZy0+Yl9jb3VudGVyX3JlZ3NfbGVuKTsK Pj4gICAKPj4gICAJcmV0dXJuIDA7Cj4+ICAgfQo+PiBAQCAtMTgzNyw3ICsxODM0LDcgQEAgc3Rh dGljIGludCBnZW44X2VuYWJsZV9tZXRyaWNfc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKPj4gICBzdGF0aWMgdm9pZCBnZW44X2Rpc2FibGVfbWV0cmljX3NldChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4+ICAgewo+PiAgIAkvKiBSZXNldCBhbGwgY29u dGV4dHMnIHNsaWNlcy9zdWJzbGljZXMgY29uZmlndXJhdGlvbnMuICovCj4+IC0JZ2VuOF9jb25m aWd1cmVfYWxsX2NvbnRleHRzKGRldl9wcml2LCBmYWxzZSk7Cj4+ICsJZ2VuOF9jb25maWd1cmVf YWxsX2NvbnRleHRzKGRldl9wcml2LCBOVUxMLCBmYWxzZSk7Cj4+ICAgfQo+PiAgIAo+PiAgIHN0 YXRpYyB2b2lkIGdlbjdfb2FfZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKPj4gQEAgLTIwMTEsOCArMjAwOCw4IEBAIHN0YXRpYyBpbnQgaTkxNV9vYV9zdHJlYW1faW5p dChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAo+PiAgIAkJcmV0dXJuIC1FQlVTWTsK Pj4gICAJfQo+PiAgIAo+PiAtCWlmICghcHJvcHMtPm1ldHJpY3Nfc2V0KSB7Cj4+IC0JCURSTV9E RUJVRygiT0EgbWV0cmljIHNldCBub3Qgc3BlY2lmaWVkXG4iKTsKPj4gKwlpZiAoIXByb3BzLT5v YV9jb25maWcpIHsKPj4gKwkJRFJNX0RFQlVHKCJPQSBjb25maWd1cmF0aW9uIHNldCBub3QgZm91 bmQvc3BlY2lmaWVkXG4iKTsKPj4gICAJCXJldHVybiAtRUlOVkFMOwo+PiAgIAl9Cj4+ICAgCj4+ IEBAIC0yMDU1LDcgKzIwNTIsNyBAQCBzdGF0aWMgaW50IGk5MTVfb2Ffc3RyZWFtX2luaXQoc3Ry dWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKPj4gICAJZGV2X3ByaXYtPnBlcmYub2Eub2Ff YnVmZmVyLmZvcm1hdCA9Cj4+ICAgCQlkZXZfcHJpdi0+cGVyZi5vYS5vYV9mb3JtYXRzW3Byb3Bz LT5vYV9mb3JtYXRdLmZvcm1hdDsKPj4gICAKPj4gLQlkZXZfcHJpdi0+cGVyZi5vYS5tZXRyaWNz X3NldCA9IHByb3BzLT5tZXRyaWNzX3NldDsKPj4gKwlzdHJlYW0tPm9hX2NvbmZpZyA9IHByb3Bz LT5vYV9jb25maWc7Cj4+ICAgCj4+ICAgCWRldl9wcml2LT5wZXJmLm9hLnBlcmlvZGljID0gcHJv cHMtPm9hX3BlcmlvZGljOwo+PiAgIAlpZiAoZGV2X3ByaXYtPnBlcmYub2EucGVyaW9kaWMpCj4+ IEBAIC0yMDg2LDcgKzIwODMsOCBAQCBzdGF0aWMgaW50IGk5MTVfb2Ffc3RyZWFtX2luaXQoc3Ry dWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKPj4gICAJaWYgKHJldCkKPj4gICAJCWdvdG8g ZXJyX29hX2J1Zl9hbGxvYzsKPj4gICAKPj4gLQlyZXQgPSBkZXZfcHJpdi0+cGVyZi5vYS5vcHMu ZW5hYmxlX21ldHJpY19zZXQoZGV2X3ByaXYpOwo+PiArCXJldCA9IGRldl9wcml2LT5wZXJmLm9h Lm9wcy5lbmFibGVfbWV0cmljX3NldChkZXZfcHJpdiwKPj4gKwkJCQkJCSAgICAgIHN0cmVhbS0+ b2FfY29uZmlnKTsKPj4gICAJaWYgKHJldCkKPj4gICAJCWdvdG8gZXJyX2VuYWJsZTsKPj4gICAK Pj4gQEAgLTIxMTMsNiArMjExMSw3IEBAIHZvaWQgaTkxNV9vYV9pbml0X3JlZ19zdGF0ZShzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4+ICAgCQkJICAgIHUzMiAqcmVnX3N0YXRlKQo+ PiAgIHsKPj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZW5naW5lLT5p OTE1Owo+PiArCXN0cnVjdCBpOTE1X29hX2NvbmZpZyAqb2FfY29uZmlnID0gZGV2X3ByaXYtPnBl cmYub2EuY3VycmVudF9jb25maWc7Cj4gSSdtIGNvbmZ1c2VkLCBpc24ndCBjdXJyZW50X2NvbmZp ZyBhbHdheXMgTlVMTCwgd2hlcmUgZG8gd2Ugc2V0IGl0IGV4YWN0bHk/Cj4gTWF5YmUgSSdtIG1p c3Npbmcgc29tZXRoaW5nLiBBbHNvIHdoeSBub3QganVzdCBwZXJmLmV4Y2x1c2l2ZV9zdHJlYW0t Pm9hX2NvbmZpZywKPiBpcyB0aGF0IG5vdCB0aGUgY3VycmVudCBjb25maWc/Cj4KPgpPaCBkZWFy LCBzY3Jld2VkIHVwIG15IHJlYmFzZS4uLgoKY3VycmVudF9jb25maWcgc2hvdWxkIGhhdmUgYmVl biByZW1vdmVkLgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==