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, 26 Apr 2018 13:00:41 +0300 Message-ID: <152473684184.4468.14087250623673332263@jlahtine-desk.ger.corp.intel.com> References: <20180425114521.7524-1-lionel.g.landwerlin@intel.com> <20180425114521.7524-9-lionel.g.landwerlin@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 331146E262 for ; Thu, 26 Apr 2018 10:00:46 +0000 (UTC) In-Reply-To: <20180425114521.7524-9-lionel.g.landwerlin@intel.com> 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 UXVvdGluZyBMaW9uZWwgTGFuZHdlcmxpbiAoMjAxOC0wNC0yNSAxNDo0NToyMSkKPiBGcm9tOiBD aHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiAKPiBXZSB3YW50IHRvIGFs bG93IHVzZXJzcGFjZSB0byByZWNvbmZpZ3VyZSB0aGUgc3Vic2xpY2UgY29uZmlndXJhdGlvbiBm b3IKPiBpdHMgb3duIHVzZSBjYXNlLiBUbyBkbyBzbywgd2UgZXhwb3NlIGEgY29udGV4dCBwYXJh bWV0ZXIgdG8gYWxsb3cKPiBhZGp1c3RtZW50IG9mIHRoZSBSUENTIHJlZ2lzdGVyIHN0b3JlZCB3 aXRoaW4gdGhlIGNvbnRleHQgaW1hZ2UgKGFuZAo+IGN1cnJlbnRseSBub3QgYWNjZXNzaWJsZSB2 aWEgTFJJKS4gSWYgdGhlIGNvbnRleHQgaXMgYWRqdXN0ZWQgYmVmb3JlCj4gZmlyc3QgdXNlLCB0 aGUgYWRqdXN0bWVudCBpcyBmb3IgImZyZWUiOyBvdGhlcndpc2UgaWYgdGhlIGNvbnRleHQgaXMK PiBhY3RpdmUgd2UgZmx1c2ggdGhlIGNvbnRleHQgb2ZmIHRoZSBHUFUgKHN0YWxsaW5nIGFsbCB1 c2VycykgYW5kIGZvcmNpbmcKPiB0aGUgR1BVIHRvIHNhdmUgdGhlIGNvbnRleHQgdG8gbWVtb3J5 IHdoZXJlIHdlIGNhbiBtb2RpZnkgaXQgYW5kIHNvCj4gZW5zdXJlIHRoYXQgdGhlIHJlZ2lzdGVy IGlzIHJlbG9hZGVkIG9uIG5leHQgZXhlY3V0aW9uLgo+IAo+IFRoZSBvdmVyaGVhZCBvZiBtYW5h Z2luZyBhZGRpdGlvbmFsIEVVIHN1YnNsaWNlcyBjYW4gYmUgc2lnbmlmaWNhbnQsCj4gZXNwZWNp YWxseSBpbiBtdWx0aS1jb250ZXh0IHdvcmtsb2Fkcy4gTm9uLUdQR1BVIGNvbnRleHRzIHNob3Vs ZAo+IHByZWZlcmFibHkgZGlzYWJsZSB0aGUgc3Vic2xpY2VzIGl0IGlzIG5vdCB1c2luZywgYW5k IG90aGVycyBzaG91bGQKPiBmaW5lLXR1bmUgdGhlIG51bWJlciB0byBtYXRjaCB0aGVpciB3b3Jr bG9hZC4KClRoaXMgaGl0IGEgZGVhZCBlbmQgbGFzdCB0aW1lIGR1ZSB0byB0aGUgc3lzdGVtIHdp ZGUgcG9saWN5IG5lZWRlZCB0bwphdm9pZCB0d28gcGFydGllcyBmaWdodGluZyBvdmVyIHRoZSBz bGljZSBjb3VudCAoYW5kIGdvaW5nIGJhY2sgYW5kCmZvcnRoIGJldHdlZW4gdHdvIHNsaWNlIGNv dW50cyB3b3VsZCBjb3VudGVyIHRoZSBiZW5lZml0cyByZWNlaXZlZCBmcm9tCnRoaXMpLgoKRG8g d2Ugbm93IGhhdmUgYSBzb2x1dGlvbiBmb3IgdGhlIGNvbnRlbnRpb24/IEkgZG9uJ3Qgc2VlIGNv ZGUgdG8KbmVnb3RpYXRlIGEgZ2xvYmFsIHZhbHVlLCBqdXN0IHJhdyBzZXR0ZXIuCgpSZWdhcmRz LCBKb29uYXMKCj4gCj4gV2UgZXhwb3NlIGNvbXBsZXRlIGNvbnRyb2wgb3ZlciB0aGUgUlBDUyBy ZWdpc3RlciwgYWxsb3dpbmcKPiBjb25maWd1cmF0aW9uIG9mIHNsaWNlL3N1YnNsaWNlLCB2aWEg bWFza3MgcGFja2VkIGludG8gYSB1NjQgZm9yCj4gc2ltcGxpY2l0eS4gRm9yIGV4YW1wbGUsCj4g Cj4gICAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfcGFyYW0gYXJnOwo+ICAgICAg ICAgc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X3BhcmFtX3NzZXUgc3NldSA9IHsgLmZsYWdz ID0gSTkxNV9FWEVDX1JFTkRFUiB9Owo+IAo+ICAgICAgICAgbWVtc2V0KCZhcmcsIDAsIHNpemVv ZihhcmcpKTsKPiAgICAgICAgIGFyZy5jdHhfaWQgPSBjdHg7Cj4gICAgICAgICBhcmcucGFyYW0g PSBJOTE1X0NPTlRFWFRfUEFSQU1fU1NFVTsKPiAgICAgICAgIGFyZy52YWx1ZSA9ICh1aW50cHRy X3QpICZzc2V1Owo+ICAgICAgICAgaWYgKGRybUlvY3RsKGZkLCBEUk1fSU9DVExfSTkxNV9HRU1f Q09OVEVYVF9HRVRQQVJBTSwgJmFyZykgPT0gMCkgewo+ICAgICAgICAgICAgICAgICBzc2V1LnBh Y2tlZC5zdWJzbGljZV9tYXNrID0gMDsKPiAKPiAgICAgICAgICAgICAgICAgZHJtSW9jdGwoZmQs IERSTV9JT0NUTF9JOTE1X0dFTV9DT05URVhUX1NFVFBBUkFNLCAmYXJnKTsKPiAgICAgICAgIH0K PiAKPiBjb3VsZCBiZSB1c2VkIHRvIGRpc2FibGUgYWxsIHN1YnNsaWNlcyB3aGVyZSBzdXBwb3J0 ZWQuCj4gCj4gdjI6IEZpeCBvZmZzZXQgb2YgQ1RYX1JfUFdSX0NMS19TVEFURSBpbiBpbnRlbF9s cl9jb250ZXh0X3NldF9zc2V1KCkgKExpb25lbCkKPiAKPiB2MzogQWRkIGFiaWxpdHkgdG8gcHJv Z3JhbSB0aGlzIHBlciBlbmdpbmUgKENocmlzKQo+IAo+IHY0OiBNb3ZlIG1vc3QgZ2V0X3NzZXUo KSBpbnRvIGk5MTVfZ2VtX2NvbnRleHQuYyAoTGlvbmVsKQo+IAo+IEJ1Z3ppbGxhOiBodHRwczov L2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDA4OTkKPiBTaWduZWQtb2Zm LWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiBTaWduZWQtb2Zm LWJ5OiBMaW9uZWwgTGFuZHdlcmxpbiA8bGlvbmVsLmcubGFuZHdlcmxpbkBpbnRlbC5jb20+Cj4g YzogRG1pdHJ5IFJvZ296aGtpbiA8ZG1pdHJ5LnYucm9nb3poa2luQGludGVsLmNvbT4KPiBDQzog VHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KPiBDQzogWmhpcGVuZyBH b25nIDx6aGlwZW5nLmdvbmdAaW50ZWwuY29tPgo+IENDOiBKb29uYXMgTGFodGluZW4gPGpvb25h cy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2NvbnRleHQuYyB8IDgyICsrKysrKysrKysrKysrKysrKysrKysrKy0KPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgIHwgNTUgKysrKysrKysrKysrKysr KysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmggICAgICAgIHwgIDQgKysKPiAg aW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oICAgICAgICAgICAgIHwgMjggKysrKysrKysrCj4g IDQgZmlsZXMgY2hhbmdlZCwgMTY4IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPiAKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCj4gaW5kZXggYmRmMDUwYmVlYjk0 Li5iOTdkZGNmNDc1MTQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fY29udGV4dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4 dC5jCj4gQEAgLTc0MCw2ICs3NDAsMjYgQEAgaW50IGk5MTVfZ2VtX2NvbnRleHRfZGVzdHJveV9p b2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAgICAgICAgcmV0dXJu IDA7Cj4gIH0KPiAgCj4gK3N0YXRpYyBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dF9zc2V1Cj4gK2k5 MTVfZ2VtX2NvbnRleHRfc3NldV9mcm9tX3VzZXJfc3NldShjb25zdCBzdHJ1Y3Qgc3NldV9kZXZf aW5mbyAqc3NldSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg c3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X3BhcmFtX3NzZXUgKnVzZXJfc3NldSkKPiArewo+ ICsgICAgICAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHRfc3NldSB2YWx1ZSA9IHsKPiArICAgICAg ICAgICAgICAgLnNsaWNlX21hc2sgPSB1c2VyX3NzZXUtPnBhY2tlZC5zbGljZV9tYXNrID09IDAg Pwo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNzZXUtPnNsaWNlX21hc2sgOgo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1c2VyX3NzZXUtPnBhY2tlZC5zbGljZV9tYXNr ICYgc3NldS0+c2xpY2VfbWFzayksCj4gKyAgICAgICAgICAgICAgIC5zdWJzbGljZV9tYXNrID0g dXNlcl9zc2V1LT5wYWNrZWQuc3Vic2xpY2VfbWFzayA9PSAwID8KPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzc2V1LT5zdWJzbGljZV9tYXNrWzBdIDoKPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAodXNlcl9zc2V1LT5wYWNrZWQuc3Vic2xpY2VfbWFzayAmIHNz ZXUtPnN1YnNsaWNlX21hc2tbMF0pLAo+ICsgICAgICAgICAgICAgICAubWluX2V1c19wZXJfc3Vi c2xpY2UgPSBtaW4odXNlcl9zc2V1LT5wYWNrZWQubWluX2V1c19wZXJfc3Vic2xpY2UsCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzc2V1LT5tYXhfZXVzX3Bl cl9zdWJzbGljZSksCj4gKyAgICAgICAgICAgICAgIC5tYXhfZXVzX3Blcl9zdWJzbGljZSA9IG1p bih1c2VyX3NzZXUtPnBhY2tlZC5tYXhfZXVzX3Blcl9zdWJzbGljZSwKPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNzZXUtPm1heF9ldXNfcGVyX3N1YnNsaWNl KSwKPiArICAgICAgIH07Cj4gKwo+ICsgICAgICAgcmV0dXJuIHZhbHVlOwo+ICt9Cj4gKwo+ICBp bnQgaTkxNV9nZW1fY29udGV4dF9nZXRwYXJhbV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB2b2lkICpkYXRhLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVj dCBkcm1fZmlsZSAqZmlsZSkKPiAgewo+IEBAIC03NzcsNiArNzk3LDM3IEBAIGludCBpOTE1X2dl bV9jb250ZXh0X2dldHBhcmFtX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRh dGEsCj4gICAgICAgICBjYXNlIEk5MTVfQ09OVEVYVF9QQVJBTV9QUklPUklUWToKPiAgICAgICAg ICAgICAgICAgYXJncy0+dmFsdWUgPSBjdHgtPnNjaGVkLnByaW9yaXR5Owo+ICAgICAgICAgICAg ICAgICBicmVhazsKPiArICAgICAgIGNhc2UgSTkxNV9DT05URVhUX1BBUkFNX1NTRVU6IHsKPiAr ICAgICAgICAgICAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X3BhcmFtX3NzZXUgcGFy YW1fc3NldTsKPiArICAgICAgICAgICAgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l Owo+ICsKPiArICAgICAgICAgICAgICAgaWYgKGNvcHlfZnJvbV91c2VyKCZwYXJhbV9zc2V1LCB1 NjRfdG9fdXNlcl9wdHIoYXJncy0+dmFsdWUpLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2l6ZW9mKHBhcmFtX3NzZXUpKSkgewo+ICsgICAgICAgICAgICAgICAgICAgICAg IHJldCA9IC1FRkFVTFQ7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4gKyAgICAg ICAgICAgICAgIH0KPiArCj4gKyAgICAgICAgICAgICAgIGVuZ2luZSA9IGk5MTVfZ2VtX2VuZ2lu ZV9mcm9tX2ZsYWdzKHRvX2k5MTUoZGV2KSwgZmlsZSwKPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1fc3NldS5mbGFncyk7Cj4gKyAgICAg ICAgICAgICAgIGlmICghZW5naW5lKSB7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0g LUVJTlZBTDsKPiArICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKPiArICAgICAgICAgICAg ICAgfQo+ICsKPiArICAgICAgICAgICAgICAgcGFyYW1fc3NldS5wYWNrZWQuc2xpY2VfbWFzayA9 Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5lbmdpbmVbZW5naW5lLT5pZF0uc3NldS5z bGljZV9tYXNrOwo+ICsgICAgICAgICAgICAgICBwYXJhbV9zc2V1LnBhY2tlZC5zdWJzbGljZV9t YXNrID0KPiArICAgICAgICAgICAgICAgICAgICAgICBjdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5z c2V1LnN1YnNsaWNlX21hc2s7Cj4gKyAgICAgICAgICAgICAgIHBhcmFtX3NzZXUucGFja2VkLm1p bl9ldXNfcGVyX3N1YnNsaWNlID0KPiArICAgICAgICAgICAgICAgICAgICAgICBjdHgtPmVuZ2lu ZVtlbmdpbmUtPmlkXS5zc2V1Lm1pbl9ldXNfcGVyX3N1YnNsaWNlOwo+ICsgICAgICAgICAgICAg ICBwYXJhbV9zc2V1LnBhY2tlZC5tYXhfZXVzX3Blcl9zdWJzbGljZSA9Cj4gKyAgICAgICAgICAg ICAgICAgICAgICAgY3R4LT5lbmdpbmVbZW5naW5lLT5pZF0uc3NldS5tYXhfZXVzX3Blcl9zdWJz bGljZTsKPiArCj4gKyAgICAgICAgICAgICAgIGlmIChjb3B5X3RvX3VzZXIodTY0X3RvX3VzZXJf cHRyKGFyZ3MtPnZhbHVlKSwgJnBhcmFtX3NzZXUsCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2l6ZW9mKHBhcmFtX3NzZXUpKSkKPiArICAgICAgICAgICAgICAgICAgICAgICBy ZXQgPSAtRUZBVUxUOwo+ICsgICAgICAgICAgICAgICBicmVhazsKPiArICAgICAgIH0KPiAgICAg ICAgIGRlZmF1bHQ6Cj4gICAgICAgICAgICAgICAgIHJldCA9IC1FSU5WQUw7Cj4gICAgICAgICAg ICAgICAgIGJyZWFrOwo+IEBAIC04MzIsNyArODgzLDYgQEAgaW50IGk5MTVfZ2VtX2NvbnRleHRf c2V0cGFyYW1faW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgICAg ICAgICAgICAgICAgZWxzZQo+ICAgICAgICAgICAgICAgICAgICAgICAgIGk5MTVfZ2VtX2NvbnRl eHRfY2xlYXJfYmFubmFibGUoY3R4KTsKPiAgICAgICAgICAgICAgICAgYnJlYWs7Cj4gLQo+ICAg ICAgICAgY2FzZSBJOTE1X0NPTlRFWFRfUEFSQU1fUFJJT1JJVFk6Cj4gICAgICAgICAgICAgICAg IHsKPiAgICAgICAgICAgICAgICAgICAgICAgICBzNjQgcHJpb3JpdHkgPSBhcmdzLT52YWx1ZTsK PiBAQCAtODUxLDcgKzkwMSwzNyBAQCBpbnQgaTkxNV9nZW1fY29udGV4dF9zZXRwYXJhbV9pb2N0 bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY3R4LT5zY2hlZC5wcmlvcml0eSA9IHByaW9yaXR5Owo+ICAgICAgICAg ICAgICAgICB9Cj4gICAgICAgICAgICAgICAgIGJyZWFrOwo+ICsgICAgICAgY2FzZSBJOTE1X0NP TlRFWFRfUEFSQU1fU1NFVToKPiArICAgICAgICAgICAgICAgaWYgKGFyZ3MtPnNpemUpCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgcmV0ID0gLUVJTlZBTDsKPiArICAgICAgICAgICAgICAgZWxz ZSBpZiAoIUhBU19FWEVDTElTVFMoY3R4LT5pOTE1KSkKPiArICAgICAgICAgICAgICAgICAgICAg ICByZXQgPSAtRU5PREVWOwo+ICsgICAgICAgICAgICAgICBlbHNlIHsKPiArICAgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRl dik7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0 X3BhcmFtX3NzZXUgdXNlcl9zc2V1Owo+ICsgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBp OTE1X2dlbV9jb250ZXh0X3NzZXUgY3R4X3NzZXU7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAg c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwo+ICsKPiArICAgICAgICAgICAgICAgICAg ICAgICBpZiAoY29weV9mcm9tX3VzZXIoJnVzZXJfc3NldSwgdTY0X3RvX3VzZXJfcHRyKGFyZ3Mt PnZhbHVlKSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6 ZW9mKHVzZXJfc3NldSkpKSB7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXQg PSAtRUZBVUxUOwo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4gKyAg ICAgICAgICAgICAgICAgICAgICAgfQo+ICsKPiArICAgICAgICAgICAgICAgICAgICAgICBlbmdp bmUgPSBpOTE1X2dlbV9lbmdpbmVfZnJvbV9mbGFncyhkZXZfcHJpdiwgZmlsZSwKPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2Vy X3NzZXUuZmxhZ3MpOwo+ICsgICAgICAgICAgICAgICAgICAgICAgIGlmICghZW5naW5lKSB7Cj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXQgPSAtRUlOVkFMOwo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAg fQo+ICsKPiArICAgICAgICAgICAgICAgICAgICAgICBjdHhfc3NldSA9Cj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpOTE1X2dlbV9jb250ZXh0X3NzZXVfZnJvbV91c2VyX3NzZXUo JklOVEVMX0lORk8oZGV2X3ByaXYpLT5zc2V1LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ1c2VyX3NzZXUpOwo+ ICAKPiArICAgICAgICAgICAgICAgICAgICAgICByZXQgPSBpbnRlbF9scl9jb250ZXh0X3NldF9z c2V1KGN0eCwgZW5naW5lLCAmY3R4X3NzZXUpOwo+ICsgICAgICAgICAgICAgICB9Cj4gKyAgICAg ICAgICAgICAgIGJyZWFrOwo+ICAgICAgICAgZGVmYXVsdDoKPiAgICAgICAgICAgICAgICAgcmV0 ID0gLUVJTlZBTDsKPiAgICAgICAgICAgICAgICAgYnJlYWs7Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHJjLmMKPiBpbmRleCBkY2ExN2VmMjRkZTUuLjljYWRkY2IxZjIzNCAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2xyYy5jCj4gQEAgLTI3MTEsNiArMjcxMSw2MSBAQCB2b2lkIGludGVsX2xyX2Nv bnRleHRfcmVzdW1lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgICAgICAg IH0KPiAgfQo+ICAKPiAraW50IGludGVsX2xyX2NvbnRleHRfc2V0X3NzZXUoc3RydWN0IGk5MTVf Z2VtX2NvbnRleHQgKmN0eCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RydWN0IGk5MTVfZ2VtX2NvbnRleHRfc3NldSAqc3NldSkKPiArewo+ICsgICAgICAgc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gY3R4LT5pOTE1Owo+ICsgICAgICAgc3RydWN0 IGludGVsX2NvbnRleHQgKmNlOwo+ICsgICAgICAgZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7Cj4g KyAgICAgICBpbnQgcmV0Owo+ICsKPiArICAgICAgIGxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9w cml2LT5kcm0uc3RydWN0X211dGV4KTsKPiArCj4gKyAgICAgICBpZiAobWVtY21wKHNzZXUsICZj dHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5zc2V1LCBzaXplb2YoKnNzZXUpKSA9PSAwKQo+ICsgICAg ICAgICAgICAgICByZXR1cm4gMDsKPiArCj4gKyAgICAgICAvKgo+ICsgICAgICAgICogV2UgY2Fu IG9ubHkgcHJvZ3JhbSB0aGlzIG9uIHJlbmRlciByaW5nLgo+ICsgICAgICAgICovCj4gKyAgICAg ICBjZSA9ICZjdHgtPmVuZ2luZVtSQ1NdOwo+ICsKPiArICAgICAgIGlmIChjZS0+cGluX2NvdW50 KSB7IC8qIEFzc3VtZSB0aGF0IHRoZSBjb250ZXh0IGlzIGFjdGl2ZSEgKi8KPiArICAgICAgICAg ICAgICAgcmV0ID0gaTkxNV9nZW1fc3dpdGNoX3RvX2tlcm5lbF9jb250ZXh0KGRldl9wcml2KTsK PiArICAgICAgICAgICAgICAgaWYgKHJldCkKPiArICAgICAgICAgICAgICAgICAgICAgICByZXR1 cm4gcmV0Owo+ICsKPiArICAgICAgICAgICAgICAgcmV0ID0gaTkxNV9nZW1fd2FpdF9mb3JfaWRs ZShkZXZfcHJpdiwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJOTE1X1dBSVRfSU5URVJSVVBUSUJMRSB8Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSTkxNV9XQUlUX0xPQ0tFRCk7Cj4gKyAgICAgICAgICAgICAgIGlm IChyZXQpCj4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPiArICAgICAgIH0K PiArCj4gKyAgICAgICBpZiAoY2UtPnN0YXRlKSB7Cj4gKyAgICAgICAgICAgICAgIHZvaWQgKnZh ZGRyID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl9tYXAoY2UtPnN0YXRlLT5vYmosIEk5MTVfTUFQX1dC KTsKPiArICAgICAgICAgICAgICAgdTMyICpyZWdzOwo+ICsKPiArICAgICAgICAgICAgICAgaWYg KElTX0VSUih2YWRkcikpCj4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFBUUl9FUlIo dmFkZHIpOwo+ICsKPiArICAgICAgICAgICAgICAgcmVncyA9IHZhZGRyICsgTFJDX1NUQVRFX1BO ICogUEFHRV9TSVpFOwo+ICsKPiArICAgICAgICAgICAgICAgcmVnc1tDVFhfUl9QV1JfQ0xLX1NU QVRFICsgMV0gPQo+ICsgICAgICAgICAgICAgICAgICAgICAgIG1ha2VfcnBjcygmSU5URUxfSU5G TyhkZXZfcHJpdiktPnNzZXUsIHNzZXUpOwo+ICsgICAgICAgICAgICAgICBpOTE1X2dlbV9vYmpl Y3RfdW5waW5fbWFwKGNlLT5zdGF0ZS0+b2JqKTsKPiArICAgICAgIH0KPiArCj4gKyAgICAgICAv Kgo+ICsgICAgICAgICogQXBwbHkgdGhlIGNvbmZpZ3VyYXRpb24gdG8gYWxsIGVuZ2luZS4gT3Vy IGhhcmR3YXJlIGRvZXNuJ3QKPiArICAgICAgICAqIGN1cnJlbnRseSBzdXBwb3J0IGRpZmZlcmVu dCBjb25maWd1cmF0aW9ucyBmb3IgZWFjaCBlbmdpbmUuCj4gKyAgICAgICAgKi8KPiArICAgICAg IGZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBpZCkKPiArICAgICAgICAgICAgICAg Y3R4LT5lbmdpbmVbaWRdLnNzZXUgPSAqc3NldTsKPiArCj4gKyAgICAgICByZXR1cm4gMDsKPiAr fQo+ICsKPiAgI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X1NFTEZURVNUKQo+ICAjaW5j bHVkZSAic2VsZnRlc3RzL2ludGVsX2xyYy5jIgo+ICAjZW5kaWYKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuaAo+IGluZGV4IGQ5MWQ2OWExNzIwNi4uNGM4NDI2NjgxNGZhIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfbHJjLmgKPiBAQCAtMTEyLDQgKzExMiw4IEBAIGludGVsX2xyX2NvbnRleHRf ZGVzY3JpcHRvcihzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAo+ICAgICAgICAgcmV0dXJu IGN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLmxyY19kZXNjOwo+ICB9Cj4gIAo+ICtpbnQgaW50ZWxf bHJfY29udGV4dF9zZXRfc3NldShzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwK PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dF9z c2V1ICpzc2V1KTsKPiArCj4gICNlbmRpZiAvKiBfSU5URUxfTFJDX0hfICovCj4gZGlmZiAtLWdp dCBhL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9k cm0uaAo+IGluZGV4IDk2ZWRhODE3NjAzMC4uNzU3NDljZTExYzAzIDEwMDY0NAo+IC0tLSBhL2lu Y2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAo+ICsrKyBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9k cm0uaAo+IEBAIC0xNDU2LDkgKzE0NTYsMzcgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0 X3BhcmFtIHsKPiAgI2RlZmluZSAgIEk5MTVfQ09OVEVYVF9NQVhfVVNFUl9QUklPUklUWSAgICAg ICAxMDIzIC8qIGluY2x1c2l2ZSAqLwo+ICAjZGVmaW5lICAgSTkxNV9DT05URVhUX0RFRkFVTFRf UFJJT1JJVFkgICAgICAgICAgICAgICAgMAo+ICAjZGVmaW5lICAgSTkxNV9DT05URVhUX01JTl9V U0VSX1BSSU9SSVRZICAgICAgIC0xMDIzIC8qIGluY2x1c2l2ZSAqLwo+ICsgICAgICAgLyoKPiAr ICAgICAgICAqIFdoZW4gdXNpbmcgdGhlIGZvbGxvd2luZyBwYXJhbSwgdmFsdWUgc2hvdWxkIGJl IGEgcG9pbnRlciB0bwo+ICsgICAgICAgICogZHJtX2k5MTVfZ2VtX2NvbnRleHRfcGFyYW1fc3Nl dS4KPiArICAgICAgICAqLwo+ICsjZGVmaW5lIEk5MTVfQ09OVEVYVF9QQVJBTV9TU0VVICAgICAg ICAgICAgICAgIDB4Nwo+ICAgICAgICAgX191NjQgdmFsdWU7Cj4gIH07Cj4gIAo+ICtzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX2NvbnRleHRfcGFyYW1fc3NldSB7Cj4gKyAgICAgICAvKgo+ICsgICAgICAg ICogRW5naW5lIHRvIGJlIGNvbmZpZ3VyZWQgb3IgcXVlcmllZC4gU2FtZSB2YWx1ZSB5b3Ugd291 bGQgdXNlIHdpdGgKPiArICAgICAgICAqIGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMi4KPiArICAg ICAgICAqLwo+ICsgICAgICAgX191NjQgZmxhZ3M7Cj4gKwo+ICsgICAgICAgLyoKPiArICAgICAg ICAqIFNldHRpbmcgc2xpY2VfbWFzayBvciBzdWJzbGljZV9tYXNrIHRvIDAgd2lsbCBtYWtlIHRo ZSBjb250ZXh0IHVzZQo+ICsgICAgICAgICogbWFza3MgcmVwb3J0ZWQgcmVzcGVjdGl2ZWx5IGJ5 IEk5MTVfUEFSQU1fU0xJQ0VfTUFTSyBvcgo+ICsgICAgICAgICogSTkxNV9QQVJBTV9TVUJTTElD RV9NQVNLLgo+ICsgICAgICAgICovCj4gKyAgICAgICB1bmlvbiB7Cj4gKyAgICAgICAgICAgICAg IHN0cnVjdCB7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgX191OCBzbGljZV9tYXNrOwo+ICsg ICAgICAgICAgICAgICAgICAgICAgIF9fdTggc3Vic2xpY2VfbWFzazsKPiArICAgICAgICAgICAg ICAgICAgICAgICBfX3U4IG1pbl9ldXNfcGVyX3N1YnNsaWNlOwo+ICsgICAgICAgICAgICAgICAg ICAgICAgIF9fdTggbWF4X2V1c19wZXJfc3Vic2xpY2U7Cj4gKyAgICAgICAgICAgICAgIH0gcGFj a2VkOwo+ICsgICAgICAgICAgICAgICBfX3U2NCB2YWx1ZTsKPiArICAgICAgIH07Cj4gK307Cj4g Kwo+ICBlbnVtIGRybV9pOTE1X29hX2Zvcm1hdCB7Cj4gICAgICAgICBJOTE1X09BX0ZPUk1BVF9B MTMgPSAxLCAgICAgLyogSFNXIG9ubHkgKi8KPiAgICAgICAgIEk5MTVfT0FfRk9STUFUX0EyOSwg ICAgICAgICAvKiBIU1cgb25seSAqLwo+IC0tIAo+IDIuMTcuMAo+IApfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK