From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lionel Landwerlin Subject: Re: [PATCH 8/8] drm/i915: Expose RPCS (SSEU) configuration to userspace Date: Wed, 9 May 2018 16:35:48 +0100 Message-ID: References: <20180425114521.7524-1-lionel.g.landwerlin@intel.com> <20180425114521.7524-9-lionel.g.landwerlin@intel.com> <9f4e64f5-b962-44c6-b1e1-70bddacfd872@linux.intel.com> <152581299111.3513.17751488607938760895@mail.alporthouse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id C26206E16C for ; Wed, 9 May 2018 15:35:51 +0000 (UTC) In-Reply-To: <152581299111.3513.17751488607938760895@mail.alporthouse.com> 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: Chris Wilson , Tvrtko Ursulin , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gMDgvMDUvMTggMjE6NTYsIENocmlzIFdpbHNvbiB3cm90ZToKPiBRdW90aW5nIFR2cnRrbyBV cnN1bGluICgyMDE4LTA1LTAzIDE4OjE4OjQzKQo+PiBPbiAyNS8wNC8yMDE4IDEyOjQ1LCBMaW9u ZWwgTGFuZHdlcmxpbiB3cm90ZToKPj4+IEZyb206IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMt d2lsc29uLmNvLnVrPgo+Pj4KPj4+IFdlIHdhbnQgdG8gYWxsb3cgdXNlcnNwYWNlIHRvIHJlY29u ZmlndXJlIHRoZSBzdWJzbGljZSBjb25maWd1cmF0aW9uIGZvcgo+Pj4gaXRzIG93biB1c2UgY2Fz ZS4gVG8gZG8gc28sIHdlIGV4cG9zZSBhIGNvbnRleHQgcGFyYW1ldGVyIHRvIGFsbG93Cj4+PiBh ZGp1c3RtZW50IG9mIHRoZSBSUENTIHJlZ2lzdGVyIHN0b3JlZCB3aXRoaW4gdGhlIGNvbnRleHQg aW1hZ2UgKGFuZAo+Pj4gY3VycmVudGx5IG5vdCBhY2Nlc3NpYmxlIHZpYSBMUkkpLiBJZiB0aGUg Y29udGV4dCBpcyBhZGp1c3RlZCBiZWZvcmUKPj4+IGZpcnN0IHVzZSwgdGhlIGFkanVzdG1lbnQg aXMgZm9yICJmcmVlIjsgb3RoZXJ3aXNlIGlmIHRoZSBjb250ZXh0IGlzCj4+PiBhY3RpdmUgd2Ug Zmx1c2ggdGhlIGNvbnRleHQgb2ZmIHRoZSBHUFUgKHN0YWxsaW5nIGFsbCB1c2VycykgYW5kIGZv cmNpbmcKPj4+IHRoZSBHUFUgdG8gc2F2ZSB0aGUgY29udGV4dCB0byBtZW1vcnkgd2hlcmUgd2Ug Y2FuIG1vZGlmeSBpdCBhbmQgc28KPj4+IGVuc3VyZSB0aGF0IHRoZSByZWdpc3RlciBpcyByZWxv YWRlZCBvbiBuZXh0IGV4ZWN1dGlvbi4KPj4+Cj4+PiBUaGUgb3ZlcmhlYWQgb2YgbWFuYWdpbmcg YWRkaXRpb25hbCBFVSBzdWJzbGljZXMgY2FuIGJlIHNpZ25pZmljYW50LAo+Pj4gZXNwZWNpYWxs eSBpbiBtdWx0aS1jb250ZXh0IHdvcmtsb2Fkcy4gTm9uLUdQR1BVIGNvbnRleHRzIHNob3VsZAo+ Pj4gcHJlZmVyYWJseSBkaXNhYmxlIHRoZSBzdWJzbGljZXMgaXQgaXMgbm90IHVzaW5nLCBhbmQg b3RoZXJzIHNob3VsZAo+Pj4gZmluZS10dW5lIHRoZSBudW1iZXIgdG8gbWF0Y2ggdGhlaXIgd29y a2xvYWQuCj4+Pgo+Pj4gV2UgZXhwb3NlIGNvbXBsZXRlIGNvbnRyb2wgb3ZlciB0aGUgUlBDUyBy ZWdpc3RlciwgYWxsb3dpbmcKPj4+IGNvbmZpZ3VyYXRpb24gb2Ygc2xpY2Uvc3Vic2xpY2UsIHZp YSBtYXNrcyBwYWNrZWQgaW50byBhIHU2NCBmb3IKPj4+IHNpbXBsaWNpdHkuIEZvciBleGFtcGxl LAo+Pj4KPj4+ICAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfcGFyYW0gYXJnOwo+ Pj4gICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbV9zc2V1IHNzZXUgPSB7 IC5mbGFncyA9IEk5MTVfRVhFQ19SRU5ERVIgfTsKPj4+Cj4+PiAgICAgICAgbWVtc2V0KCZhcmcs IDAsIHNpemVvZihhcmcpKTsKPj4+ICAgICAgICBhcmcuY3R4X2lkID0gY3R4Owo+Pj4gICAgICAg IGFyZy5wYXJhbSA9IEk5MTVfQ09OVEVYVF9QQVJBTV9TU0VVOwo+Pj4gICAgICAgIGFyZy52YWx1 ZSA9ICh1aW50cHRyX3QpICZzc2V1Owo+Pj4gICAgICAgIGlmIChkcm1Jb2N0bChmZCwgRFJNX0lP Q1RMX0k5MTVfR0VNX0NPTlRFWFRfR0VUUEFSQU0sICZhcmcpID09IDApIHsKPj4+ICAgICAgICAg ICAgICAgIHNzZXUucGFja2VkLnN1YnNsaWNlX21hc2sgPSAwOwo+Pj4KPj4+ICAgICAgICAgICAg ICAgIGRybUlvY3RsKGZkLCBEUk1fSU9DVExfSTkxNV9HRU1fQ09OVEVYVF9TRVRQQVJBTSwgJmFy Zyk7Cj4+PiAgICAgICAgfQo+Pj4KPj4+IGNvdWxkIGJlIHVzZWQgdG8gZGlzYWJsZSBhbGwgc3Vi c2xpY2VzIHdoZXJlIHN1cHBvcnRlZC4KPj4+Cj4+PiB2MjogRml4IG9mZnNldCBvZiBDVFhfUl9Q V1JfQ0xLX1NUQVRFIGluIGludGVsX2xyX2NvbnRleHRfc2V0X3NzZXUoKSAoTGlvbmVsKQo+Pj4K Pj4+IHYzOiBBZGQgYWJpbGl0eSB0byBwcm9ncmFtIHRoaXMgcGVyIGVuZ2luZSAoQ2hyaXMpCj4+ Pgo+Pj4gdjQ6IE1vdmUgbW9zdCBnZXRfc3NldSgpIGludG8gaTkxNV9nZW1fY29udGV4dC5jIChM aW9uZWwpCj4+Pgo+Pj4gQnVnemlsbGE6IGh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hv d19idWcuY2dpP2lkPTEwMDg5OQo+Pj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJp c0BjaHJpcy13aWxzb24uY28udWs+Cj4+PiBTaWduZWQtb2ZmLWJ5OiBMaW9uZWwgTGFuZHdlcmxp biA8bGlvbmVsLmcubGFuZHdlcmxpbkBpbnRlbC5jb20+Cj4+PiBjOiBEbWl0cnkgUm9nb3poa2lu IDxkbWl0cnkudi5yb2dvemhraW5AaW50ZWwuY29tPgo+Pj4gQ0M6IFR2cnRrbyBVcnN1bGluIDx0 dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Cj4+PiBDQzogWmhpcGVuZyBHb25nIDx6aGlwZW5nLmdv bmdAaW50ZWwuY29tPgo+Pj4gQ0M6IEpvb25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxp bnV4LmludGVsLmNvbT4KPj4+IC0tLQo+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fY29udGV4dC5jIHwgODIgKysrKysrKysrKysrKysrKysrKysrKysrLQo+Pj4gICAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgIHwgNTUgKysrKysrKysrKysrKysrKysK Pj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oICAgICAgICB8ICA0ICsrCj4+ PiAgICBpbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmggICAgICAgICAgICAgfCAyOCArKysrKysr KysKPj4+ICAgIDQgZmlsZXMgY2hhbmdlZCwgMTY4IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkKPj4+Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29u dGV4dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCj4+PiBpbmRl eCBiZGYwNTBiZWViOTQuLmI5N2RkY2Y0NzUxNCAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fY29udGV4dC5jCj4+PiBAQCAtNzQwLDYgKzc0MCwyNiBAQCBpbnQgaTkxNV9n ZW1fY29udGV4dF9kZXN0cm95X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRh dGEsCj4+PiAgICAgICAgcmV0dXJuIDA7Cj4+PiAgICB9Cj4+PiAgICAKPj4+ICtzdGF0aWMgc3Ry dWN0IGk5MTVfZ2VtX2NvbnRleHRfc3NldQo+Pj4gK2k5MTVfZ2VtX2NvbnRleHRfc3NldV9mcm9t X3VzZXJfc3NldShjb25zdCBzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSwKPj4+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGRybV9pOTE1X2dlbV9jb250 ZXh0X3BhcmFtX3NzZXUgKnVzZXJfc3NldSkKPj4+ICt7Cj4+PiArICAgICBzdHJ1Y3QgaTkxNV9n ZW1fY29udGV4dF9zc2V1IHZhbHVlID0gewo+Pj4gKyAgICAgICAgICAgICAuc2xpY2VfbWFzayA9 IHVzZXJfc3NldS0+cGFja2VkLnNsaWNlX21hc2sgPT0gMCA/Cj4+PiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3NldS0+c2xpY2VfbWFzayA6Cj4+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgKHVzZXJfc3NldS0+cGFja2VkLnNsaWNlX21hc2sgJiBzc2V1LT5zbGljZV9tYXNrKSwK Pj4+ICsgICAgICAgICAgICAgLnN1YnNsaWNlX21hc2sgPSB1c2VyX3NzZXUtPnBhY2tlZC5zdWJz bGljZV9tYXNrID09IDAgPwo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNzZXUt PnN1YnNsaWNlX21hc2tbMF0gOgo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1 c2VyX3NzZXUtPnBhY2tlZC5zdWJzbGljZV9tYXNrICYgc3NldS0+c3Vic2xpY2VfbWFza1swXSks Cj4+PiArICAgICAgICAgICAgIC5taW5fZXVzX3Blcl9zdWJzbGljZSA9IG1pbih1c2VyX3NzZXUt PnBhY2tlZC5taW5fZXVzX3Blcl9zdWJzbGljZSwKPj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNzZXUtPm1heF9ldXNfcGVyX3N1YnNsaWNlKSwKPj4+ICsgICAg ICAgICAgICAgLm1heF9ldXNfcGVyX3N1YnNsaWNlID0gbWluKHVzZXJfc3NldS0+cGFja2VkLm1h eF9ldXNfcGVyX3N1YnNsaWNlLAo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3NldS0+bWF4X2V1c19wZXJfc3Vic2xpY2UpLAo+Pj4gKyAgICAgfTsKPj4+ICsK Pj4+ICsgICAgIHJldHVybiB2YWx1ZTsKPj4+ICt9Cj4+PiArCj4+PiAgICBpbnQgaTkxNV9nZW1f Y29udGV4dF9nZXRwYXJhbV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRh LAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2ZpbGUg KmZpbGUpCj4+PiAgICB7Cj4+PiBAQCAtNzc3LDYgKzc5NywzNyBAQCBpbnQgaTkxNV9nZW1fY29u dGV4dF9nZXRwYXJhbV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ Pj4gICAgICAgIGNhc2UgSTkxNV9DT05URVhUX1BBUkFNX1BSSU9SSVRZOgo+Pj4gICAgICAgICAg ICAgICAgYXJncy0+dmFsdWUgPSBjdHgtPnNjaGVkLnByaW9yaXR5Owo+Pj4gICAgICAgICAgICAg ICAgYnJlYWs7Cj4+PiArICAgICBjYXNlIEk5MTVfQ09OVEVYVF9QQVJBTV9TU0VVOiB7Cj4+PiAr ICAgICAgICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbV9zc2V1IHBhcmFt X3NzZXU7Cj4+PiArICAgICAgICAgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsK Pj4+ICsKPj4+ICsgICAgICAgICAgICAgaWYgKGNvcHlfZnJvbV91c2VyKCZwYXJhbV9zc2V1LCB1 NjRfdG9fdXNlcl9wdHIoYXJncy0+dmFsdWUpLAo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2l6ZW9mKHBhcmFtX3NzZXUpKSkgewo+Pj4gKyAgICAgICAgICAgICAgICAgICAg IHJldCA9IC1FRkFVTFQ7Cj4+PiArICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4+PiArICAg ICAgICAgICAgIH0KPj4+ICsKPj4+ICsgICAgICAgICAgICAgZW5naW5lID0gaTkxNV9nZW1fZW5n aW5lX2Zyb21fZmxhZ3ModG9faTkxNShkZXYpLCBmaWxlLAo+Pj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbV9zc2V1LmZsYWdzKTsKPj4+ICsg ICAgICAgICAgICAgaWYgKCFlbmdpbmUpIHsKPj4+ICsgICAgICAgICAgICAgICAgICAgICByZXQg PSAtRUlOVkFMOwo+Pj4gKyAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+Pj4gKyAgICAgICAg ICAgICB9Cj4+PiArCj4+PiArICAgICAgICAgICAgIHBhcmFtX3NzZXUucGFja2VkLnNsaWNlX21h c2sgPQo+Pj4gKyAgICAgICAgICAgICAgICAgICAgIGN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLnNz ZXUuc2xpY2VfbWFzazsKPj4+ICsgICAgICAgICAgICAgcGFyYW1fc3NldS5wYWNrZWQuc3Vic2xp Y2VfbWFzayA9Cj4+PiArICAgICAgICAgICAgICAgICAgICAgY3R4LT5lbmdpbmVbZW5naW5lLT5p ZF0uc3NldS5zdWJzbGljZV9tYXNrOwo+Pj4gKyAgICAgICAgICAgICBwYXJhbV9zc2V1LnBhY2tl ZC5taW5fZXVzX3Blcl9zdWJzbGljZSA9Cj4+PiArICAgICAgICAgICAgICAgICAgICAgY3R4LT5l bmdpbmVbZW5naW5lLT5pZF0uc3NldS5taW5fZXVzX3Blcl9zdWJzbGljZTsKPj4+ICsgICAgICAg ICAgICAgcGFyYW1fc3NldS5wYWNrZWQubWF4X2V1c19wZXJfc3Vic2xpY2UgPQo+Pj4gKyAgICAg ICAgICAgICAgICAgICAgIGN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLnNzZXUubWF4X2V1c19wZXJf c3Vic2xpY2U7Cj4+PiArCj4+PiArICAgICAgICAgICAgIGlmIChjb3B5X3RvX3VzZXIodTY0X3Rv X3VzZXJfcHRyKGFyZ3MtPnZhbHVlKSwgJnBhcmFtX3NzZXUsCj4+PiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2l6ZW9mKHBhcmFtX3NzZXUpKSkKPj4+ICsgICAgICAgICAgICAgICAg ICAgICByZXQgPSAtRUZBVUxUOwo+Pj4gKyAgICAgICAgICAgICBicmVhazsKPj4+ICsgICAgIH0K Pj4+ICAgICAgICBkZWZhdWx0Ogo+Pj4gICAgICAgICAgICAgICAgcmV0ID0gLUVJTlZBTDsKPj4+ ICAgICAgICAgICAgICAgIGJyZWFrOwo+Pj4gQEAgLTgzMiw3ICs4ODMsNiBAQCBpbnQgaTkxNV9n ZW1fY29udGV4dF9zZXRwYXJhbV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpk YXRhLAo+Pj4gICAgICAgICAgICAgICAgZWxzZQo+Pj4gICAgICAgICAgICAgICAgICAgICAgICBp OTE1X2dlbV9jb250ZXh0X2NsZWFyX2Jhbm5hYmxlKGN0eCk7Cj4+PiAgICAgICAgICAgICAgICBi cmVhazsKPj4+IC0KPj4+ICAgICAgICBjYXNlIEk5MTVfQ09OVEVYVF9QQVJBTV9QUklPUklUWToK Pj4+ICAgICAgICAgICAgICAgIHsKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgczY0IHByaW9y aXR5ID0gYXJncy0+dmFsdWU7Cj4+PiBAQCAtODUxLDcgKzkwMSwzNyBAQCBpbnQgaTkxNV9nZW1f Y29udGV4dF9zZXRwYXJhbV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRh LAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+c2NoZWQucHJpb3JpdHkg PSBwcmlvcml0eTsKPj4+ICAgICAgICAgICAgICAgIH0KPj4+ICAgICAgICAgICAgICAgIGJyZWFr Owo+Pj4gKyAgICAgY2FzZSBJOTE1X0NPTlRFWFRfUEFSQU1fU1NFVToKPj4+ICsgICAgICAgICAg ICAgaWYgKGFyZ3MtPnNpemUpCj4+PiArICAgICAgICAgICAgICAgICAgICAgcmV0ID0gLUVJTlZB TDsKPj4+ICsgICAgICAgICAgICAgZWxzZSBpZiAoIUhBU19FWEVDTElTVFMoY3R4LT5pOTE1KSkK Pj4+ICsgICAgICAgICAgICAgICAgICAgICByZXQgPSAtRU5PREVWOwo+Pj4gKyAgICAgICAgICAg ICBlbHNlIHsKPj4+ICsgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4+PiArICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X3BhcmFtX3NzZXUgdXNlcl9zc2V1Owo+Pj4gKyAgICAg ICAgICAgICAgICAgICAgIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0X3NzZXUgY3R4X3NzZXU7Cj4+ PiArICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwo+ Pj4gKwo+Pj4gKyAgICAgICAgICAgICAgICAgICAgIGlmIChjb3B5X2Zyb21fdXNlcigmdXNlcl9z c2V1LCB1NjRfdG9fdXNlcl9wdHIoYXJncy0+dmFsdWUpLAo+Pj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YodXNlcl9zc2V1KSkpIHsKPj4+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJldCA9IC1FRkFVTFQ7Cj4+PiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBicmVhazsKPj4+ICsgICAgICAgICAgICAgICAgICAgICB9Cj4+PiArCj4+ PiArICAgICAgICAgICAgICAgICAgICAgZW5naW5lID0gaTkxNV9nZW1fZW5naW5lX2Zyb21fZmxh Z3MoZGV2X3ByaXYsIGZpbGUsCj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdXNlcl9zc2V1LmZsYWdzKTsKPj4+ICsgICAgICAgICAg ICAgICAgICAgICBpZiAoIWVuZ2luZSkgewo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcmV0ID0gLUVJTlZBTDsKPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr Owo+Pj4gKyAgICAgICAgICAgICAgICAgICAgIH0KPj4+ICsKPj4+ICsgICAgICAgICAgICAgICAg ICAgICBjdHhfc3NldSA9Cj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpOTE1X2dl bV9jb250ZXh0X3NzZXVfZnJvbV91c2VyX3NzZXUoJklOVEVMX0lORk8oZGV2X3ByaXYpLT5zc2V1 LAo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICZ1c2VyX3NzZXUpOwo+Pj4gICAgCj4+PiArICAgICAgICAgICAgICAg ICAgICAgcmV0ID0gaW50ZWxfbHJfY29udGV4dF9zZXRfc3NldShjdHgsIGVuZ2luZSwgJmN0eF9z c2V1KTsKPj4+ICsgICAgICAgICAgICAgfQo+Pj4gKyAgICAgICAgICAgICBicmVhazsKPj4+ICAg ICAgICBkZWZhdWx0Ogo+Pj4gICAgICAgICAgICAgICAgcmV0ID0gLUVJTlZBTDsKPj4+ICAgICAg ICAgICAgICAgIGJyZWFrOwo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPj4+IGluZGV4IGRj YTE3ZWYyNGRlNS4uOWNhZGRjYjFmMjM0IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfbHJjLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5jCj4+PiBAQCAtMjcxMSw2ICsyNzExLDYxIEBAIHZvaWQgaW50ZWxfbHJfY29udGV4dF9yZXN1 bWUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+Pj4gICAgICAgIH0KPj4+ICAg IH0KPj4+ICAgIAo+Pj4gK2ludCBpbnRlbF9scl9jb250ZXh0X3NldF9zc2V1KHN0cnVjdCBpOTE1 X2dlbV9jb250ZXh0ICpjdHgsCj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0X3NzZXUgKnNzZXUpCj4+PiArewo+Pj4gKyAgICAgc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gY3R4LT5pOTE1Owo+Pj4gKyAgICAgc3Ry dWN0IGludGVsX2NvbnRleHQgKmNlOwo+Pj4gKyAgICAgZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7 Cj4+PiArICAgICBpbnQgcmV0Owo+Pj4gKwo+Pj4gKyAgICAgbG9ja2RlcF9hc3NlcnRfaGVsZCgm ZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwo+Pj4gKwo+Pj4gKyAgICAgaWYgKG1lbWNtcChz c2V1LCAmY3R4LT5lbmdpbmVbZW5naW5lLT5pZF0uc3NldSwgc2l6ZW9mKCpzc2V1KSkgPT0gMCkK Pj4+ICsgICAgICAgICAgICAgcmV0dXJuIDA7Cj4+PiArCj4+PiArICAgICAvKgo+Pj4gKyAgICAg ICogV2UgY2FuIG9ubHkgcHJvZ3JhbSB0aGlzIG9uIHJlbmRlciByaW5nLgo+Pj4gKyAgICAgICov Cj4+PiArICAgICBjZSA9ICZjdHgtPmVuZ2luZVtSQ1NdOwo+Pj4gKwo+Pj4gKyAgICAgaWYgKGNl LT5waW5fY291bnQpIHsgLyogQXNzdW1lIHRoYXQgdGhlIGNvbnRleHQgaXMgYWN0aXZlISAqLwo+ Pj4gKyAgICAgICAgICAgICByZXQgPSBpOTE1X2dlbV9zd2l0Y2hfdG9fa2VybmVsX2NvbnRleHQo ZGV2X3ByaXYpOwo+Pj4gKyAgICAgICAgICAgICBpZiAocmV0KQo+Pj4gKyAgICAgICAgICAgICAg ICAgICAgIHJldHVybiByZXQ7Cj4+PiArCj4+PiArICAgICAgICAgICAgIHJldCA9IGk5MTVfZ2Vt X3dhaXRfZm9yX2lkbGUoZGV2X3ByaXYsCj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSTkxNV9XQUlUX0lOVEVSUlVQVElCTEUgfAo+Pj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEk5MTVfV0FJVF9MT0NLRUQpOwo+PiBDb3Vs ZCB3ZSBjb25zaWRlciB0aGUgYWx0ZXJuYXRpdmUgb2Ygb25seSBhbGxvd2luZyB0aGlzIHRvIGJl IGNvbmZpZ3VyZWQKPj4gb24gY29udGV4dCBjcmVhdGU/IFRoYXQgd2F5IHdlIHdvdWxkIG5vdCBu ZWVkIHRvIGlkbGUgdGhlIEdQVSBldmVyeSB0aW1lCj4+IHVzZXJzcGFjZSBkZWNpZGVzIHRvIGZp ZGRsZSB3aXRoIGl0LiBJdCBpcyB1bnByaXZpbGVnZWQgc28gcXVpdGUgYW4gZWFzeQo+PiB3YXkg Zm9yIHJhbmRvbSBhcHAgdG8gcnVpbiBHUFUgcGVyZm9ybWFuY2UgZm9yIGV2ZXJ5b25lLgo+IEkg dGhpbmsgd2UgY2FuIGRvIGR5bmFtaWMgcmVjb25maWd1cmF0aW9uIG9mIHRoZSBjb250ZXh0IHVz aW5nIExSSS4gQW5kCj4gaWYgd2UgY2FuJ3QgZG8gc28gZnJvbSB3aXRoaW4gdGhlIGNvbnRleHQs IHdlIGNhbiB1c2UgU0RNIGZyb20gYW5vdGhlci4KPiAtQ2hyaXMKPgpEb2N1bWVudGF0aW9uIHNh eXMgd2UgY2FuJ3QgTFJJLiBTbyB0aGF0IGxlYXZlcyBTRE0gZnJvbSBhbm90aGVyIGNvbnRleHQu ClNob3VsZCB3ZSB1c2UgdGhlIGtlcm5lbCBvbmU/CgpUaGFua3MsCgotCkxpb25lbApfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK