From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joonas Lahtinen Subject: Re: [PATCH 8/8] drm/i915: Expose RPCS (SSEU) configuration to userspace Date: Thu, 03 May 2018 19:04:31 +0300 Message-ID: <152536347142.12754.6702843140025112167@jlahtine-desk.ger.corp.intel.com> References: <20180425114521.7524-1-lionel.g.landwerlin@intel.com> <20180425114521.7524-9-lionel.g.landwerlin@intel.com> <152473684184.4468.14087250623673332263@jlahtine-desk.ger.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7E02A6E18D for ; Thu, 3 May 2018 16:04:36 +0000 (UTC) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Lionel Landwerlin , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org UXVvdGluZyBMaW9uZWwgTGFuZHdlcmxpbiAoMjAxOC0wNC0yNiAxMzoyMjozMCkKPiBPbiAyNi8w NC8xOCAxMTowMCwgSm9vbmFzIExhaHRpbmVuIHdyb3RlOgo+ID4gUXVvdGluZyBMaW9uZWwgTGFu ZHdlcmxpbiAoMjAxOC0wNC0yNSAxNDo0NToyMSkKPiA+PiBGcm9tOiBDaHJpcyBXaWxzb24gPGNo cmlzQGNocmlzLXdpbHNvbi5jby51az4KPiA+Pgo+ID4+IFdlIHdhbnQgdG8gYWxsb3cgdXNlcnNw YWNlIHRvIHJlY29uZmlndXJlIHRoZSBzdWJzbGljZSBjb25maWd1cmF0aW9uIGZvcgo+ID4+IGl0 cyBvd24gdXNlIGNhc2UuIFRvIGRvIHNvLCB3ZSBleHBvc2UgYSBjb250ZXh0IHBhcmFtZXRlciB0 byBhbGxvdwo+ID4+IGFkanVzdG1lbnQgb2YgdGhlIFJQQ1MgcmVnaXN0ZXIgc3RvcmVkIHdpdGhp biB0aGUgY29udGV4dCBpbWFnZSAoYW5kCj4gPj4gY3VycmVudGx5IG5vdCBhY2Nlc3NpYmxlIHZp YSBMUkkpLiBJZiB0aGUgY29udGV4dCBpcyBhZGp1c3RlZCBiZWZvcmUKPiA+PiBmaXJzdCB1c2Us IHRoZSBhZGp1c3RtZW50IGlzIGZvciAiZnJlZSI7IG90aGVyd2lzZSBpZiB0aGUgY29udGV4dCBp cwo+ID4+IGFjdGl2ZSB3ZSBmbHVzaCB0aGUgY29udGV4dCBvZmYgdGhlIEdQVSAoc3RhbGxpbmcg YWxsIHVzZXJzKSBhbmQgZm9yY2luZwo+ID4+IHRoZSBHUFUgdG8gc2F2ZSB0aGUgY29udGV4dCB0 byBtZW1vcnkgd2hlcmUgd2UgY2FuIG1vZGlmeSBpdCBhbmQgc28KPiA+PiBlbnN1cmUgdGhhdCB0 aGUgcmVnaXN0ZXIgaXMgcmVsb2FkZWQgb24gbmV4dCBleGVjdXRpb24uCj4gPj4KPiA+PiBUaGUg b3ZlcmhlYWQgb2YgbWFuYWdpbmcgYWRkaXRpb25hbCBFVSBzdWJzbGljZXMgY2FuIGJlIHNpZ25p ZmljYW50LAo+ID4+IGVzcGVjaWFsbHkgaW4gbXVsdGktY29udGV4dCB3b3JrbG9hZHMuIE5vbi1H UEdQVSBjb250ZXh0cyBzaG91bGQKPiA+PiBwcmVmZXJhYmx5IGRpc2FibGUgdGhlIHN1YnNsaWNl cyBpdCBpcyBub3QgdXNpbmcsIGFuZCBvdGhlcnMgc2hvdWxkCj4gPj4gZmluZS10dW5lIHRoZSBu dW1iZXIgdG8gbWF0Y2ggdGhlaXIgd29ya2xvYWQuCj4gPiBUaGlzIGhpdCBhIGRlYWQgZW5kIGxh c3QgdGltZSBkdWUgdG8gdGhlIHN5c3RlbSB3aWRlIHBvbGljeSBuZWVkZWQgdG8KPiA+IGF2b2lk IHR3byBwYXJ0aWVzIGZpZ2h0aW5nIG92ZXIgdGhlIHNsaWNlIGNvdW50IChhbmQgZ29pbmcgYmFj ayBhbmQKPiA+IGZvcnRoIGJldHdlZW4gdHdvIHNsaWNlIGNvdW50cyB3b3VsZCBjb3VudGVyIHRo ZSBiZW5lZml0cyByZWNlaXZlZCBmcm9tCj4gPiB0aGlzKS4KPiA+Cj4gPiBEbyB3ZSBub3cgaGF2 ZSBhIHNvbHV0aW9uIGZvciB0aGUgY29udGVudGlvbj8gSSBkb24ndCBzZWUgY29kZSB0bwo+ID4g bmVnb3RpYXRlIGEgZ2xvYmFsIHZhbHVlLCBqdXN0IHJhdyBzZXR0ZXIuCj4gPgo+ID4gUmVnYXJk cywgSm9vbmFzCj4gCj4gSSd2ZSB0cmllZCB0byBjb21lIHVwIHdpdGggc29tZSBudW1iZXJzIGFi b3V0IHRoZSBjb3N0IG9mIHRoZSBiYWNrICYgCj4gZm9ydGggKHNlZSBpZ3Qgc2VyaWVzKS4KPiAK PiBPdGhlciB0aGFuIHRoYXQsIEkgZG9uJ3QgdGhpbmsgd2UgY2FuIGV4cGVjdCB0aGUga2VybmVs IHRvIHdvcmthcm91bmQgCj4gdGhlIGluZWZmaWNpZW50IHVzZSBvZiB0aGUgaGFyZHdhcmUgYnkg dXNlcnNwYWNlLgoKV2VsbCwgSSdtIHByZXR0eSBzdXJlIHdlIHNob3VsZCBub3QgdHJ5IHRvIG1h a2UgdGhlIHNpdHVhdGlvbiB0b28KbWlzZXJhYmxlIGZvciB0aGUgYmFzaWMgdXNlY2FzZXMuCgpJ ZiB3ZSBhbGxvdyB0d28gY29udGV4dHMgdG8gZmlnaHQgb3ZlciB0aGUgc2xpY2UgY291bnQsIGNv dW50ZXJpbmcgYW55CnBlcmNlaXZlZCBiZW5lZml0LCBJIGRvbid0IHRoaW5rIHRoYXQnbGwgYmUg YSBnb29kIGRlZmF1bHQuCgpNeSByZWNvbGxlY3Rpb24gb2YgdGhlIGxhc3Qgcm91bmQgb2YgZGlz Y3Vzc2lvbiB3YXMgdGhhdCByZWFzb25hYmxlCnRoaW5nIHRvIGRvIHdvdWxkIGJlIHRvIG9ubHkg ZGlzYWJsZSBzbGljZXMgd2hlbiBldmVyeW9uZSBpcyB3aWxsaW5nIHRvCmxldCBnbyBvZi4gVGhl biBpdCB3b3VsZCBiZWNvbWUgYSBzeXN0ZW0gbWFpbnRhaW5lciBsZXZlbCBkZWNpc2lvbiB0bwpv bmx5IHJ1biBvbiB0d28gc2xpY2VzIGZvciB3aGVuIHRoZXkgc2VlIGZpdCAoY29uZmlndXJpbmcg dGhlIHVzZXJzcGFjZSkuCgpNb3JlIGFkdmFuY2VkIHRhY3RpY3Mgd291bGQgaW5jbHVkZSBzY2hl ZHVsaW5nIHdvcmsgc28gdGhhdCB3ZSB0cnkgdG8KYXZvaWQgdGhlIHNsaWNlIGNvdW50IGNoYW5n ZXMgYW5kIGRlZHVjdCB0aGUgc3dpdGNoaW5nIHRpbWUgZnJvbSB0aGUKZXhlY3V0aW9uIGJ1ZGdl dCBvZiB0aGUgYXBwIHJlcXVlc3RpbmcgbGVzcyBzbGljZXMgKGlmIHdlIGhhZCBmYWlyCnRpbWUg c2xpY2luZykuCgpSZWdhcmRzLCBKb29uYXMKCj4gCj4gPgo+ID4+IFdlIGV4cG9zZSBjb21wbGV0 ZSBjb250cm9sIG92ZXIgdGhlIFJQQ1MgcmVnaXN0ZXIsIGFsbG93aW5nCj4gPj4gY29uZmlndXJh dGlvbiBvZiBzbGljZS9zdWJzbGljZSwgdmlhIG1hc2tzIHBhY2tlZCBpbnRvIGEgdTY0IGZvcgo+ ID4+IHNpbXBsaWNpdHkuIEZvciBleGFtcGxlLAo+ID4+Cj4gPj4gICAgICAgICAgc3RydWN0IGRy bV9pOTE1X2dlbV9jb250ZXh0X3BhcmFtIGFyZzsKPiA+PiAgICAgICAgICBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX2NvbnRleHRfcGFyYW1fc3NldSBzc2V1ID0geyAuZmxhZ3MgPSBJOTE1X0VYRUNfUkVO REVSIH07Cj4gPj4KPiA+PiAgICAgICAgICBtZW1zZXQoJmFyZywgMCwgc2l6ZW9mKGFyZykpOwo+ ID4+ICAgICAgICAgIGFyZy5jdHhfaWQgPSBjdHg7Cj4gPj4gICAgICAgICAgYXJnLnBhcmFtID0g STkxNV9DT05URVhUX1BBUkFNX1NTRVU7Cj4gPj4gICAgICAgICAgYXJnLnZhbHVlID0gKHVpbnRw dHJfdCkgJnNzZXU7Cj4gPj4gICAgICAgICAgaWYgKGRybUlvY3RsKGZkLCBEUk1fSU9DVExfSTkx NV9HRU1fQ09OVEVYVF9HRVRQQVJBTSwgJmFyZykgPT0gMCkgewo+ID4+ICAgICAgICAgICAgICAg ICAgc3NldS5wYWNrZWQuc3Vic2xpY2VfbWFzayA9IDA7Cj4gPj4KPiA+PiAgICAgICAgICAgICAg ICAgIGRybUlvY3RsKGZkLCBEUk1fSU9DVExfSTkxNV9HRU1fQ09OVEVYVF9TRVRQQVJBTSwgJmFy Zyk7Cj4gPj4gICAgICAgICAgfQo+ID4+Cj4gPj4gY291bGQgYmUgdXNlZCB0byBkaXNhYmxlIGFs bCBzdWJzbGljZXMgd2hlcmUgc3VwcG9ydGVkLgo+ID4+Cj4gPj4gdjI6IEZpeCBvZmZzZXQgb2Yg Q1RYX1JfUFdSX0NMS19TVEFURSBpbiBpbnRlbF9scl9jb250ZXh0X3NldF9zc2V1KCkgKExpb25l bCkKPiA+Pgo+ID4+IHYzOiBBZGQgYWJpbGl0eSB0byBwcm9ncmFtIHRoaXMgcGVyIGVuZ2luZSAo Q2hyaXMpCj4gPj4KPiA+PiB2NDogTW92ZSBtb3N0IGdldF9zc2V1KCkgaW50byBpOTE1X2dlbV9j b250ZXh0LmMgKExpb25lbCkKPiA+Pgo+ID4+IEJ1Z3ppbGxhOiBodHRwczovL2J1Z3MuZnJlZWRl c2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDA4OTkKPiA+PiBTaWduZWQtb2ZmLWJ5OiBDaHJp cyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiA+PiBTaWduZWQtb2ZmLWJ5OiBM aW9uZWwgTGFuZHdlcmxpbiA8bGlvbmVsLmcubGFuZHdlcmxpbkBpbnRlbC5jb20+Cj4gPj4gYzog RG1pdHJ5IFJvZ296aGtpbiA8ZG1pdHJ5LnYucm9nb3poa2luQGludGVsLmNvbT4KPiA+PiBDQzog VHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KPiA+PiBDQzogWmhpcGVu ZyBHb25nIDx6aGlwZW5nLmdvbmdAaW50ZWwuY29tPgo+ID4+IENDOiBKb29uYXMgTGFodGluZW4g PGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+Cj4gPj4gLS0tCj4gPj4gICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgfCA4MiArKysrKysrKysrKysrKysrKysr KysrKystCj4gPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgfCA1 NSArKysrKysrKysrKysrKysrKwo+ID4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJj LmggICAgICAgIHwgIDQgKysKPiA+PiAgIGluY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaCAgICAg ICAgICAgICB8IDI4ICsrKysrKysrKwo+ID4+ICAgNCBmaWxlcyBjaGFuZ2VkLCAxNjggaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQo+ID4+Cj4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2NvbnRleHQuYwo+ID4+IGluZGV4IGJkZjA1MGJlZWI5NC4uYjk3ZGRjZjQ3NTE0IDEwMDY0 NAo+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwo+ID4+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwo+ID4+IEBAIC03 NDAsNiArNzQwLDI2IEBAIGludCBpOTE1X2dlbV9jb250ZXh0X2Rlc3Ryb3lfaW9jdGwoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiA+PiAgICAgICAgICByZXR1cm4gMDsKPiA+ PiAgIH0KPiA+PiAgIAo+ID4+ICtzdGF0aWMgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHRfc3NldQo+ ID4+ICtpOTE1X2dlbV9jb250ZXh0X3NzZXVfZnJvbV91c2VyX3NzZXUoY29uc3Qgc3RydWN0IHNz ZXVfZGV2X2luZm8gKnNzZXUsCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IHN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbV9zc2V1ICp1c2VyX3Nz ZXUpCj4gPj4gK3sKPiA+PiArICAgICAgIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0X3NzZXUgdmFs dWUgPSB7Cj4gPj4gKyAgICAgICAgICAgICAgIC5zbGljZV9tYXNrID0gdXNlcl9zc2V1LT5wYWNr ZWQuc2xpY2VfbWFzayA9PSAwID8KPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz c2V1LT5zbGljZV9tYXNrIDoKPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodXNl cl9zc2V1LT5wYWNrZWQuc2xpY2VfbWFzayAmIHNzZXUtPnNsaWNlX21hc2spLAo+ID4+ICsgICAg ICAgICAgICAgICAuc3Vic2xpY2VfbWFzayA9IHVzZXJfc3NldS0+cGFja2VkLnN1YnNsaWNlX21h c2sgPT0gMCA/Cj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3NldS0+c3Vi c2xpY2VfbWFza1swXSA6Cj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVz ZXJfc3NldS0+cGFja2VkLnN1YnNsaWNlX21hc2sgJiBzc2V1LT5zdWJzbGljZV9tYXNrWzBdKSwK PiA+PiArICAgICAgICAgICAgICAgLm1pbl9ldXNfcGVyX3N1YnNsaWNlID0gbWluKHVzZXJfc3Nl dS0+cGFja2VkLm1pbl9ldXNfcGVyX3N1YnNsaWNlLAo+ID4+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3NldS0+bWF4X2V1c19wZXJfc3Vic2xpY2UpLAo+ID4+ ICsgICAgICAgICAgICAgICAubWF4X2V1c19wZXJfc3Vic2xpY2UgPSBtaW4odXNlcl9zc2V1LT5w YWNrZWQubWF4X2V1c19wZXJfc3Vic2xpY2UsCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzc2V1LT5tYXhfZXVzX3Blcl9zdWJzbGljZSksCj4gPj4gKyAg ICAgICB9Owo+ID4+ICsKPiA+PiArICAgICAgIHJldHVybiB2YWx1ZTsKPiA+PiArfQo+ID4+ICsK PiA+PiAgIGludCBpOTE1X2dlbV9jb250ZXh0X2dldHBhcmFtX2lvY3RsKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKPiA+PiAgIHsKPiA+PiBAQCAtNzc3LDYgKzc5 NywzNyBAQCBpbnQgaTkxNV9nZW1fY29udGV4dF9nZXRwYXJhbV9pb2N0bChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ID4+ICAgICAgICAgIGNhc2UgSTkxNV9DT05URVhUX1BB UkFNX1BSSU9SSVRZOgo+ID4+ICAgICAgICAgICAgICAgICAgYXJncy0+dmFsdWUgPSBjdHgtPnNj aGVkLnByaW9yaXR5Owo+ID4+ICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4gPj4gKyAgICAgICBj YXNlIEk5MTVfQ09OVEVYVF9QQVJBTV9TU0VVOiB7Cj4gPj4gKyAgICAgICAgICAgICAgIHN0cnVj dCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbV9zc2V1IHBhcmFtX3NzZXU7Cj4gPj4gKyAgICAg ICAgICAgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKPiA+PiArCj4gPj4gKyAg ICAgICAgICAgICAgIGlmIChjb3B5X2Zyb21fdXNlcigmcGFyYW1fc3NldSwgdTY0X3RvX3VzZXJf cHRyKGFyZ3MtPnZhbHVlKSwKPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNpemVvZihwYXJhbV9zc2V1KSkpIHsKPiA+PiArICAgICAgICAgICAgICAgICAgICAgICByZXQg PSAtRUZBVUxUOwo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+ID4+ICsgICAg ICAgICAgICAgICB9Cj4gPj4gKwo+ID4+ICsgICAgICAgICAgICAgICBlbmdpbmUgPSBpOTE1X2dl bV9lbmdpbmVfZnJvbV9mbGFncyh0b19pOTE1KGRldiksIGZpbGUsCj4gPj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtX3NzZXUuZmxhZ3Mp Owo+ID4+ICsgICAgICAgICAgICAgICBpZiAoIWVuZ2luZSkgewo+ID4+ICsgICAgICAgICAgICAg ICAgICAgICAgIHJldCA9IC1FSU5WQUw7Cj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgYnJl YWs7Cj4gPj4gKyAgICAgICAgICAgICAgIH0KPiA+PiArCj4gPj4gKyAgICAgICAgICAgICAgIHBh cmFtX3NzZXUucGFja2VkLnNsaWNlX21hc2sgPQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAg IGN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLnNzZXUuc2xpY2VfbWFzazsKPiA+PiArICAgICAgICAg ICAgICAgcGFyYW1fc3NldS5wYWNrZWQuc3Vic2xpY2VfbWFzayA9Cj4gPj4gKyAgICAgICAgICAg ICAgICAgICAgICAgY3R4LT5lbmdpbmVbZW5naW5lLT5pZF0uc3NldS5zdWJzbGljZV9tYXNrOwo+ ID4+ICsgICAgICAgICAgICAgICBwYXJhbV9zc2V1LnBhY2tlZC5taW5fZXVzX3Blcl9zdWJzbGlj ZSA9Cj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5lbmdpbmVbZW5naW5lLT5pZF0u c3NldS5taW5fZXVzX3Blcl9zdWJzbGljZTsKPiA+PiArICAgICAgICAgICAgICAgcGFyYW1fc3Nl dS5wYWNrZWQubWF4X2V1c19wZXJfc3Vic2xpY2UgPQo+ID4+ICsgICAgICAgICAgICAgICAgICAg ICAgIGN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLnNzZXUubWF4X2V1c19wZXJfc3Vic2xpY2U7Cj4g Pj4gKwo+ID4+ICsgICAgICAgICAgICAgICBpZiAoY29weV90b191c2VyKHU2NF90b191c2VyX3B0 cihhcmdzLT52YWx1ZSksICZwYXJhbV9zc2V1LAo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNpemVvZihwYXJhbV9zc2V1KSkpCj4gPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgcmV0ID0gLUVGQVVMVDsKPiA+PiArICAgICAgICAgICAgICAgYnJlYWs7Cj4gPj4gKyAgICAg ICB9Cj4gPj4gICAgICAgICAgZGVmYXVsdDoKPiA+PiAgICAgICAgICAgICAgICAgIHJldCA9IC1F SU5WQUw7Cj4gPj4gICAgICAgICAgICAgICAgICBicmVhazsKPiA+PiBAQCAtODMyLDcgKzg4Myw2 IEBAIGludCBpOTE1X2dlbV9jb250ZXh0X3NldHBhcmFtX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHZvaWQgKmRhdGEsCj4gPj4gICAgICAgICAgICAgICAgICBlbHNlCj4gPj4gICAgICAg ICAgICAgICAgICAgICAgICAgIGk5MTVfZ2VtX2NvbnRleHRfY2xlYXJfYmFubmFibGUoY3R4KTsK PiA+PiAgICAgICAgICAgICAgICAgIGJyZWFrOwo+ID4+IC0KPiA+PiAgICAgICAgICBjYXNlIEk5 MTVfQ09OVEVYVF9QQVJBTV9QUklPUklUWToKPiA+PiAgICAgICAgICAgICAgICAgIHsKPiA+PiAg ICAgICAgICAgICAgICAgICAgICAgICAgczY0IHByaW9yaXR5ID0gYXJncy0+dmFsdWU7Cj4gPj4g QEAgLTg1MSw3ICs5MDEsMzcgQEAgaW50IGk5MTVfZ2VtX2NvbnRleHRfc2V0cGFyYW1faW9jdGwo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiA+PiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjdHgtPnNjaGVkLnByaW9yaXR5ID0gcHJpb3JpdHk7Cj4gPj4gICAg ICAgICAgICAgICAgICB9Cj4gPj4gICAgICAgICAgICAgICAgICBicmVhazsKPiA+PiArICAgICAg IGNhc2UgSTkxNV9DT05URVhUX1BBUkFNX1NTRVU6Cj4gPj4gKyAgICAgICAgICAgICAgIGlmIChh cmdzLT5zaXplKQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldCA9IC1FSU5WQUw7Cj4g Pj4gKyAgICAgICAgICAgICAgIGVsc2UgaWYgKCFIQVNfRVhFQ0xJU1RTKGN0eC0+aTkxNSkpCj4g Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gLUVOT0RFVjsKPiA+PiArICAgICAgICAg ICAgICAgZWxzZSB7Cj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ID4+ICsgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbV9zc2V1IHVzZXJfc3NldTsK PiA+PiArICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dF9zc2V1 IGN0eF9zc2V1Owo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZTsKPiA+PiArCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNv cHlfZnJvbV91c2VyKCZ1c2VyX3NzZXUsIHU2NF90b191c2VyX3B0cihhcmdzLT52YWx1ZSksCj4g Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih1c2Vy X3NzZXUpKSkgewo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gLUVG QVVMVDsKPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+ID4+ICsg ICAgICAgICAgICAgICAgICAgICAgIH0KPiA+PiArCj4gPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgZW5naW5lID0gaTkxNV9nZW1fZW5naW5lX2Zyb21fZmxhZ3MoZGV2X3ByaXYsIGZpbGUsCj4g Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdXNlcl9zc2V1LmZsYWdzKTsKPiA+PiArICAgICAgICAgICAgICAgICAgICAgICBpZiAo IWVuZ2luZSkgewo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gLUVJ TlZBTDsKPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+ID4+ICsg ICAgICAgICAgICAgICAgICAgICAgIH0KPiA+PiArCj4gPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgY3R4X3NzZXUgPQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaTkxNV9n ZW1fY29udGV4dF9zc2V1X2Zyb21fdXNlcl9zc2V1KCZJTlRFTF9JTkZPKGRldl9wcml2KS0+c3Nl dSwKPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmdXNlcl9zc2V1KTsKPiA+PiAgIAo+ID4+ICsgICAgICAgICAg ICAgICAgICAgICAgIHJldCA9IGludGVsX2xyX2NvbnRleHRfc2V0X3NzZXUoY3R4LCBlbmdpbmUs ICZjdHhfc3NldSk7Cj4gPj4gKyAgICAgICAgICAgICAgIH0KPiA+PiArICAgICAgICAgICAgICAg YnJlYWs7Cj4gPj4gICAgICAgICAgZGVmYXVsdDoKPiA+PiAgICAgICAgICAgICAgICAgIHJldCA9 IC1FSU5WQUw7Cj4gPj4gICAgICAgICAgICAgICAgICBicmVhazsKPiA+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9scmMuYwo+ID4+IGluZGV4IGRjYTE3ZWYyNGRlNS4uOWNhZGRjYjFmMjM0IDEwMDY0NAo+ ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gPj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiA+PiBAQCAtMjcxMSw2ICsyNzExLDYxIEBA IHZvaWQgaW50ZWxfbHJfY29udGV4dF9yZXN1bWUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQo+ID4+ICAgICAgICAgIH0KPiA+PiAgIH0KPiA+PiAgIAo+ID4+ICtpbnQgaW50ZWxf bHJfY29udGV4dF9zZXRfc3NldShzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAo+ID4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSwKPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaTkxNV9nZW1fY29u dGV4dF9zc2V1ICpzc2V1KQo+ID4+ICt7Cj4gPj4gKyAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBjdHgtPmk5MTU7Cj4gPj4gKyAgICAgICBzdHJ1Y3QgaW50ZWxfY29u dGV4dCAqY2U7Cj4gPj4gKyAgICAgICBlbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKPiA+PiArICAg ICAgIGludCByZXQ7Cj4gPj4gKwo+ID4+ICsgICAgICAgbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2 X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwo+ID4+ICsKPiA+PiArICAgICAgIGlmIChtZW1jbXAo c3NldSwgJmN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLnNzZXUsIHNpemVvZigqc3NldSkpID09IDAp Cj4gPj4gKyAgICAgICAgICAgICAgIHJldHVybiAwOwo+ID4+ICsKPiA+PiArICAgICAgIC8qCj4g Pj4gKyAgICAgICAgKiBXZSBjYW4gb25seSBwcm9ncmFtIHRoaXMgb24gcmVuZGVyIHJpbmcuCj4g Pj4gKyAgICAgICAgKi8KPiA+PiArICAgICAgIGNlID0gJmN0eC0+ZW5naW5lW1JDU107Cj4gPj4g Kwo+ID4+ICsgICAgICAgaWYgKGNlLT5waW5fY291bnQpIHsgLyogQXNzdW1lIHRoYXQgdGhlIGNv bnRleHQgaXMgYWN0aXZlISAqLwo+ID4+ICsgICAgICAgICAgICAgICByZXQgPSBpOTE1X2dlbV9z d2l0Y2hfdG9fa2VybmVsX2NvbnRleHQoZGV2X3ByaXYpOwo+ID4+ICsgICAgICAgICAgICAgICBp ZiAocmV0KQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gPj4gKwo+ ID4+ICsgICAgICAgICAgICAgICByZXQgPSBpOTE1X2dlbV93YWl0X2Zvcl9pZGxlKGRldl9wcml2 LAo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEk5MTVf V0FJVF9JTlRFUlJVUFRJQkxFIHwKPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJOTE1X1dBSVRfTE9DS0VEKTsKPiA+PiArICAgICAgICAgICAgICAgaWYg KHJldCkKPiA+PiArICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4+ICsgICAg ICAgfQo+ID4+ICsKPiA+PiArICAgICAgIGlmIChjZS0+c3RhdGUpIHsKPiA+PiArICAgICAgICAg ICAgICAgdm9pZCAqdmFkZHIgPSBpOTE1X2dlbV9vYmplY3RfcGluX21hcChjZS0+c3RhdGUtPm9i aiwgSTkxNV9NQVBfV0IpOwo+ID4+ICsgICAgICAgICAgICAgICB1MzIgKnJlZ3M7Cj4gPj4gKwo+ ID4+ICsgICAgICAgICAgICAgICBpZiAoSVNfRVJSKHZhZGRyKSkKPiA+PiArICAgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gUFRSX0VSUih2YWRkcik7Cj4gPj4gKwo+ID4+ICsgICAgICAgICAg ICAgICByZWdzID0gdmFkZHIgKyBMUkNfU1RBVEVfUE4gKiBQQUdFX1NJWkU7Cj4gPj4gKwo+ID4+ ICsgICAgICAgICAgICAgICByZWdzW0NUWF9SX1BXUl9DTEtfU1RBVEUgKyAxXSA9Cj4gPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgbWFrZV9ycGNzKCZJTlRFTF9JTkZPKGRldl9wcml2KS0+c3Nl dSwgc3NldSk7Cj4gPj4gKyAgICAgICAgICAgICAgIGk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAo Y2UtPnN0YXRlLT5vYmopOwo+ID4+ICsgICAgICAgfQo+ID4+ICsKPiA+PiArICAgICAgIC8qCj4g Pj4gKyAgICAgICAgKiBBcHBseSB0aGUgY29uZmlndXJhdGlvbiB0byBhbGwgZW5naW5lLiBPdXIg aGFyZHdhcmUgZG9lc24ndAo+ID4+ICsgICAgICAgICogY3VycmVudGx5IHN1cHBvcnQgZGlmZmVy ZW50IGNvbmZpZ3VyYXRpb25zIGZvciBlYWNoIGVuZ2luZS4KPiA+PiArICAgICAgICAqLwo+ID4+ ICsgICAgICAgZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGlkKQo+ID4+ICsgICAg ICAgICAgICAgICBjdHgtPmVuZ2luZVtpZF0uc3NldSA9ICpzc2V1Owo+ID4+ICsKPiA+PiArICAg ICAgIHJldHVybiAwOwo+ID4+ICt9Cj4gPj4gKwo+ID4+ICAgI2lmIElTX0VOQUJMRUQoQ09ORklH X0RSTV9JOTE1X1NFTEZURVNUKQo+ID4+ICAgI2luY2x1ZGUgInNlbGZ0ZXN0cy9pbnRlbF9scmMu YyIKPiA+PiAgICNlbmRpZgo+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9scmMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCj4gPj4gaW5kZXgg ZDkxZDY5YTE3MjA2Li40Yzg0MjY2ODE0ZmEgMTAwNjQ0Cj4gPj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHJjLmgKPiA+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuaAo+ID4+IEBAIC0xMTIsNCArMTEyLDggQEAgaW50ZWxfbHJfY29udGV4dF9kZXNjcmlw dG9yKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCj4gPj4gICAgICAgICAgcmV0dXJuIGN0 eC0+ZW5naW5lW2VuZ2luZS0+aWRdLmxyY19kZXNjOwo+ID4+ICAgfQo+ID4+ICAgCj4gPj4gK2lu dCBpbnRlbF9scl9jb250ZXh0X3NldF9zc2V1KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgs Cj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lLAo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpOTE1 X2dlbV9jb250ZXh0X3NzZXUgKnNzZXUpOwo+ID4+ICsKPiA+PiAgICNlbmRpZiAvKiBfSU5URUxf TFJDX0hfICovCj4gPj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaCBi L2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAo+ID4+IGluZGV4IDk2ZWRhODE3NjAzMC4uNzU3 NDljZTExYzAzIDEwMDY0NAo+ID4+IC0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAo+ ID4+ICsrKyBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAo+ID4+IEBAIC0xNDU2LDkgKzE0 NTYsMzcgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X3BhcmFtIHsKPiA+PiAgICNkZWZp bmUgICBJOTE1X0NPTlRFWFRfTUFYX1VTRVJfUFJJT1JJVFkgICAgICAgMTAyMyAvKiBpbmNsdXNp dmUgKi8KPiA+PiAgICNkZWZpbmUgICBJOTE1X0NPTlRFWFRfREVGQVVMVF9QUklPUklUWSAgICAg ICAgICAgICAgICAwCj4gPj4gICAjZGVmaW5lICAgSTkxNV9DT05URVhUX01JTl9VU0VSX1BSSU9S SVRZICAgICAgIC0xMDIzIC8qIGluY2x1c2l2ZSAqLwo+ID4+ICsgICAgICAgLyoKPiA+PiArICAg ICAgICAqIFdoZW4gdXNpbmcgdGhlIGZvbGxvd2luZyBwYXJhbSwgdmFsdWUgc2hvdWxkIGJlIGEg cG9pbnRlciB0bwo+ID4+ICsgICAgICAgICogZHJtX2k5MTVfZ2VtX2NvbnRleHRfcGFyYW1fc3Nl dS4KPiA+PiArICAgICAgICAqLwo+ID4+ICsjZGVmaW5lIEk5MTVfQ09OVEVYVF9QQVJBTV9TU0VV ICAgICAgICAgICAgICAgIDB4Nwo+ID4+ICAgICAgICAgIF9fdTY0IHZhbHVlOwo+ID4+ICAgfTsK PiA+PiAgIAo+ID4+ICtzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfcGFyYW1fc3NldSB7Cj4g Pj4gKyAgICAgICAvKgo+ID4+ICsgICAgICAgICogRW5naW5lIHRvIGJlIGNvbmZpZ3VyZWQgb3Ig cXVlcmllZC4gU2FtZSB2YWx1ZSB5b3Ugd291bGQgdXNlIHdpdGgKPiA+PiArICAgICAgICAqIGRy bV9pOTE1X2dlbV9leGVjYnVmZmVyMi4KPiA+PiArICAgICAgICAqLwo+ID4+ICsgICAgICAgX191 NjQgZmxhZ3M7Cj4gPj4gKwo+ID4+ICsgICAgICAgLyoKPiA+PiArICAgICAgICAqIFNldHRpbmcg c2xpY2VfbWFzayBvciBzdWJzbGljZV9tYXNrIHRvIDAgd2lsbCBtYWtlIHRoZSBjb250ZXh0IHVz ZQo+ID4+ICsgICAgICAgICogbWFza3MgcmVwb3J0ZWQgcmVzcGVjdGl2ZWx5IGJ5IEk5MTVfUEFS QU1fU0xJQ0VfTUFTSyBvcgo+ID4+ICsgICAgICAgICogSTkxNV9QQVJBTV9TVUJTTElDRV9NQVNL Lgo+ID4+ICsgICAgICAgICovCj4gPj4gKyAgICAgICB1bmlvbiB7Cj4gPj4gKyAgICAgICAgICAg ICAgIHN0cnVjdCB7Cj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgX191OCBzbGljZV9tYXNr Owo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgIF9fdTggc3Vic2xpY2VfbWFzazsKPiA+PiAr ICAgICAgICAgICAgICAgICAgICAgICBfX3U4IG1pbl9ldXNfcGVyX3N1YnNsaWNlOwo+ID4+ICsg ICAgICAgICAgICAgICAgICAgICAgIF9fdTggbWF4X2V1c19wZXJfc3Vic2xpY2U7Cj4gPj4gKyAg ICAgICAgICAgICAgIH0gcGFja2VkOwo+ID4+ICsgICAgICAgICAgICAgICBfX3U2NCB2YWx1ZTsK PiA+PiArICAgICAgIH07Cj4gPj4gK307Cj4gPj4gKwo+ID4+ICAgZW51bSBkcm1faTkxNV9vYV9m b3JtYXQgewo+ID4+ICAgICAgICAgIEk5MTVfT0FfRk9STUFUX0ExMyA9IDEsICAgICAvKiBIU1cg b25seSAqLwo+ID4+ICAgICAgICAgIEk5MTVfT0FfRk9STUFUX0EyOSwgICAgICAgICAvKiBIU1cg b25seSAqLwo+ID4+IC0tIAo+ID4+IDIuMTcuMAo+ID4+Cj4gCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=