From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniele Ceraolo Spurio Subject: Re: [RFC] drm/i915: store all mmio bases in intel_engines Date: Thu, 8 Mar 2018 10:46:08 -0800 Message-ID: <9c99352f-eaf9-a264-8d14-303a55e5fac2@intel.com> References: <20180307194515.17135-1-daniele.ceraolospurio@intel.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 8BC646EAEA for ; Thu, 8 Mar 2018 18:46:09 +0000 (UTC) In-Reply-To: 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: Tvrtko Ursulin , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org CgpPbiAwOC8wMy8xOCAwMTozMSwgVHZydGtvIFVyc3VsaW4gd3JvdGU6Cj4gCj4gT24gMDcvMDMv MjAxOCAxOTo0NSwgRGFuaWVsZSBDZXJhb2xvIFNwdXJpbyB3cm90ZToKPj4gVGhlIG1taW8gYmFz ZXMgd2UncmUgY3VycmVudGx5IHN0b3JpbmcgaW4gdGhlIGludGVsX2VuZ2luZXMgYXJyYXkgYXJl Cj4+IG9ubHkgdmFsaWQgZm9yIGEgc3Vic2V0IG9mIGdlbnMsIHNvIHdlIG5lZWQgdG8gaWdub3Jl IHRoZW0gYW5kIHVzZQo+PiBkaWZmZXJlbnQgdmFsdWVzIGluIHNvbWUgY2FzZXMuIEluc3RlYWQg b2YgZG9pbmcgdGhhdCwgd2UgY2FuIGhhdmUgYQo+PiB0YWJsZSBvZiBbc3RhcnRpbmcgZ2VuLCBt bWlvIGJhc2VdIHBhaXJzIGZvciBlYWNoIGVuZ2luZSBpbgo+PiBpbnRlbF9lbmdpbmVzIGFuZCBz ZWxlY3QgdGhlIGNvcnJlY3Qgb25lIGJhc2VkIG9uIHRoZSBnZW4gd2UncmUgcnVubmluZwo+PiBv biBpbiBhIGNvbnNpc3RlbnQgd2F5Lgo+Pgo+PiBDYzogTWlrYSBLdW9wcGFsYSA8bWlrYS5rdW9w cGFsYUBsaW51eC5pbnRlbC5jb20+Cj4+IENjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3Vs aW5AaW50ZWwuY29tPgo+PiBTaWduZWQtb2ZmLWJ5OiBEYW5pZWxlIENlcmFvbG8gU3B1cmlvIDxk YW5pZWxlLmNlcmFvbG9zcHVyaW9AaW50ZWwuY29tPgo+PiAtLS0KPj4gwqAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmPCoCB8IDc3IAo+PiArKysrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0KPj4gwqAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZl ci5jIHzCoCAxIC0KPj4gwqAgMiBmaWxlcyBjaGFuZ2VkLCA0OSBpbnNlcnRpb25zKCspLCAyOSBk ZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2VuZ2luZV9jcy5jIAo+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5j Cj4+IGluZGV4IDRiYTEzOWMyN2ZiYS4uMWRkOTJjYWM4ZDY3IDEwMDY0NAo+PiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYwo+PiBAQCAtODEsMTIgKzgxLDE2IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgZW5naW5lX2NsYXNzX2luZm8gCj4+IGludGVsX2VuZ2luZV9jbGFzc2VzW10g PSB7Cj4+IMKgwqDCoMKgwqAgfSwKPj4gwqAgfTsKPj4gKyNkZWZpbmUgTUFYX01NSU9fQkFTRVMg Mwo+PiDCoCBzdHJ1Y3QgZW5naW5lX2luZm8gewo+PiDCoMKgwqDCoMKgIHVuc2lnbmVkIGludCBo d19pZDsKPj4gwqDCoMKgwqDCoCB1bnNpZ25lZCBpbnQgdWFiaV9pZDsKPj4gwqDCoMKgwqDCoCB1 OCBjbGFzczsKPj4gwqDCoMKgwqDCoCB1OCBpbnN0YW5jZTsKPj4gLcKgwqDCoCB1MzIgbW1pb19i YXNlOwo+PiArwqDCoMKgIHN0cnVjdCBlbmdpbmVfbW1pb19iYXNlIHsKPj4gK8KgwqDCoMKgwqDC oMKgIHUzMiBnZW4gOiA4Owo+PiArwqDCoMKgwqDCoMKgwqAgdTMyIGJhc2UgOiAyNDsKPj4gK8Kg wqDCoCB9IG1taW9fYmFzZXNbTUFYX01NSU9fQkFTRVNdOwo+PiDCoMKgwqDCoMKgIHVuc2lnbmVk IGlycV9zaGlmdDsKPj4gwqAgfTsKPiAKPiBJdCdzIG5vdCBiYWQsIGJ1dCBJIGFtIGp1c3Qgd29u ZGVyaW5nIGlmIGl0IGlzIHRvbyBjb21wbGljYXRlZCB2ZXJzdXMgCj4gc2ltcGx5IGR1cGxpY2F0 aW5nIHRoZSB0YWJsZXMuCj4gCj4gRHVwbGljYXRlZCB0YWJsZXMgd291bGQgY2VydGFpbmx5IGJl IG11Y2ggbGVzcyBjb2RlIGFuZCBjb21wbGV4aXR5LCBidXQgCj4gd2hhdCBhYm91dCB0aGUgc2l6 ZSBvZiBwdXJlIGRhdGE/Cj4gCj4gSW4gdGhpcyBwYXRjaCBzaXplb2Yoc3RydWN0IGVuZ2luZV9p bmZvKSBncm93cyBieSBNQVhfTU1JT19CQVNFUyAqIAo+IHNpemVvZih1MzIpLCBzbyAxMiwgdG8g dGhlIHRvdGFsIG9mIDMwIGlmIEkgYW0gbm90IG1pc3Rha2VuLiBUaW1lcyAKPiBOVU1fRU5HSU5F UyBlcXVhbHMgMjQwIGJ5dGVzIGZvciBpbnRlbF9lbmdpbmVzW10gYXJyYXkgd2l0aCB0aGlzIHNj aGVtZS4KPgoKd2UgcmVtb3ZlIGEgdTMyICh0aGUgb2xkIG1taW8gYmFzZSkgc28gd2Ugb25seSBn cm93IDggcGVyIGVuZ2luZSwgYnV0IAp0aGUgY29tcGlsZXIgcm91bmRzIHVwIHRvIGEgbXVsdGlw bGUgb2YgdTMyIHNvIDI4IHBlciBlbmdpbmUsIGZvciBhIAp0b3RhbCBvZiAyMjQuCgo+IFNlcGFy YXRlIHRhYmxlcyBwZXIgZ2VucyB3b3VsZCBiZToKPiAKPiBzaXplb2Yoc3RydWN0IGVuZ2luZV9p bmZvKSBpcyAxOCBieXRlcy4KPiAKPiBGb3IgPCBnZW42IHdlJ2QgbmVlZCAzIGVuZ2luZXMgKiAx OCA9IDU0Cj4gPCBnZW4xMSA9IDUgZW5naW5lcyAqIDE4ID0gOTAKPiAgPj0gZ2VuMTEgPSA4IGVu Z2luZXMgKiAxOCA9IDE0NAo+IAo+IDU0ICsgOTAgKyAxNDQgPSAyODggYnl0ZXMKPiAKPiBTbyBh IGxpdHRsZSBiaXQgYmlnZ2VyLiBIbS4gUGx1cyB3ZSB3b3VsZCBuZWVkIHRvIHJlZmFjdG9yIHNv IAo+IGludGVsX2VuZ2luZXNbXSBpcyBub3QgaW5kZXhlZCBieSBlbmdpbmUtPmlkIGJ1dCBpcyBj b250aWd1b3VzIGFycmF5IAo+IHdpdGggZW5naW5lLT5pZCBpbiB0aGUgZWxlbWVudHMuIENvZGUg dG8gbG9va3VwIHRoZSBjb21wYWN0IGFycmF5IHNob3VsZCAKPiBiZSBzaW1wbGVyIHRoYW4gY29t YmluZWQgbmV3IGNvZGUgZnJvbSB0aGlzIHBhdGNoLCBlc3BlY2lhbGx5IGlmIHlvdSBhZGQgCj4g dGhlIHRlc3QgYXMgQ2hyaXMgc3VnZ2VzdGVkLiBTbyBzZXBhcmF0ZSBlbmdpbmUgaW5mbyBhcnJh eXMgd291bGQgd2luIEkgCj4gdGhpbmsgb3ZlcmFsbCAtIHdoZW4gY29uc2lkZXJpbmcgc2l6ZSBv ZiB0ZXh0ICsgc2l6ZSBvZiBkYXRhICsgc2l6ZSBvZiAKPiBzb3VyY2UgY29kZS4KPiAKCk5vdCBz dXJlLiBJIHdvdWxkIGV4Y2x1ZGUgdGhlIHNlbGZ0ZXN0LCB3aGljaCBpcyB1c3VhbGx5IG5vdCBj b21waWxlZCAKZm9yIHJlbGVhc2VkIGtlcm5lbHMsIHdoaWNoIGxlYWRzIHRvOgoKYWRkL3JlbW92 ZTogMC8wIGdyb3cvc2hyaW5rOiAzLzEgdXAvZG93bjogMTAwLy03ICg5MykKRnVuY3Rpb24gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkICAgICBuZXcgICBkZWx0YQppbnRl bF9lbmdpbmVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNjAgICAgIDIyNCAgICAg KzY0Cl9fZnVuY19fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMzg5MSAgIDEz OTEwICAgICArMTkKaW50ZWxfZW5naW5lc19pbml0X21taW8gICAgICAgICAgICAgICAgICAgICAx MjQ3ICAgIDEyNjQgICAgICsxNwppbnRlbF9pbml0X2JzZF9yaW5nX2J1ZmZlciAgICAgICAgICAg ICAgICAgICAxNDIgICAgIDEzNSAgICAgIC03ClRvdGFsOiBCZWZvcmU9MTQ3OTYyNiwgQWZ0ZXI9 MTQ3OTcxOSwgY2hnICswLjAxJQoKVG90YWwgZ3Jvd3RoIGlzIDkzLCB3aGljaCBpcyBsZXNzIHRo ZW4geW91ciBlc3RpbWF0aW9uIGZvciB0aGUgZ3Jvd3RoIAppbnRyb2R1Y2VkIGJ5IHJlcGxpY2F0 aW5nIHRoZSB0YWJsZS4KCj4gQnV0IG9uIHRoZSBvdGhlciBoYW5kIHlvdXIgc29sdXRpb24gbWln aHQgYmUgbW9yZSBmdXR1cmUgcHJvb2YuIFNvIEkgCj4gZG9uJ3Qga25vdy4gVXNlIHRoZSBjcnlz dGFsIGJhbGwgdG8gZGVjaWRlPyA6KQo+IAoKSSB0aGluayB3ZSBzaG91bGQgZXhwZWN0IHRoYXQg dGhlIHRvdGFsIGVuZ2luZSBjb3VudCBjb3VsZCBncm93IHdpdGggCmZ1dHVyZSBnZW5zLiBJbiB0 aGlzIGNhc2UgdG8gbWUgYWRkaW5nIGEgbmV3IGVudHJ5IHRvIGEgdW5pZmllZCB0YWJsZSAKc2Vl bXMgbXVjaCBjbGVhbmVyIChhbmQgdXNlcyBsZXNzIGRhdGEpIHRoYW4gYWRkaW5nIGEgY29tcGxl dGVseSBuZXcgCnRhYmxlIGVhY2ggdGltZS4KCkRhbmllbGUKCj4gUmVnYXJkcywKPiAKPiBUdnJ0 a28KPiAKPiAKPj4gQEAgLTk2LDcgKzEwMCw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZW5naW5l X2luZm8gaW50ZWxfZW5naW5lc1tdID0gewo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLnVhYmlfaWQg PSBJOTE1X0VYRUNfUkVOREVSLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLmNsYXNzID0gUkVOREVS X0NMQVNTLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLmluc3RhbmNlID0gMCwKPj4gLcKgwqDCoMKg wqDCoMKgIC5tbWlvX2Jhc2UgPSBSRU5ERVJfUklOR19CQVNFLAo+PiArwqDCoMKgwqDCoMKgwqAg Lm1taW9fYmFzZXMgPSB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHsgLmdlbiA9IDEsIC5i YXNlID0gUkVOREVSX1JJTkdfQkFTRSB9Cj4+ICvCoMKgwqDCoMKgwqDCoCB9LAo+PiDCoMKgwqDC oMKgwqDCoMKgwqAgLmlycV9zaGlmdCA9IEdFTjhfUkNTX0lSUV9TSElGVCwKPj4gwqDCoMKgwqDC oCB9LAo+PiDCoMKgwqDCoMKgIFtCQ1NdID0gewo+PiBAQCAtMTA0LDcgKzExMCw5IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgZW5naW5lX2luZm8gaW50ZWxfZW5naW5lc1tdID0gewo+PiDCoMKgwqDC oMKgwqDCoMKgwqAgLnVhYmlfaWQgPSBJOTE1X0VYRUNfQkxULAo+PiDCoMKgwqDCoMKgwqDCoMKg wqAgLmNsYXNzID0gQ09QWV9FTkdJTkVfQ0xBU1MsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAuaW5z dGFuY2UgPSAwLAo+PiAtwqDCoMKgwqDCoMKgwqAgLm1taW9fYmFzZSA9IEJMVF9SSU5HX0JBU0Us Cj4+ICvCoMKgwqDCoMKgwqDCoCAubW1pb19iYXNlcyA9IHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqAgeyAuZ2VuID0gNiwgLmJhc2UgPSBCTFRfUklOR19CQVNFIH0KPj4gK8KgwqDCoMKgwqDC oMKgIH0sCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAuaXJxX3NoaWZ0ID0gR0VOOF9CQ1NfSVJRX1NI SUZULAo+PiDCoMKgwqDCoMKgIH0sCj4+IMKgwqDCoMKgwqAgW1ZDU10gPSB7Cj4+IEBAIC0xMTIs NyArMTIwLDExIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZW5naW5lX2luZm8gaW50ZWxfZW5naW5l c1tdID0gewo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLnVhYmlfaWQgPSBJOTE1X0VYRUNfQlNELAo+ PiDCoMKgwqDCoMKgwqDCoMKgwqAgLmNsYXNzID0gVklERU9fREVDT0RFX0NMQVNTLAo+PiDCoMKg wqDCoMKgwqDCoMKgwqAgLmluc3RhbmNlID0gMCwKPj4gLcKgwqDCoMKgwqDCoMKgIC5tbWlvX2Jh c2UgPSBHRU42X0JTRF9SSU5HX0JBU0UsCj4+ICvCoMKgwqDCoMKgwqDCoCAubW1pb19iYXNlcyA9 IHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgeyAuZ2VuID0gMTEsIC5iYXNlID0gR0VOMTFf QlNEX1JJTkdfQkFTRSB9LAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB7IC5nZW4gPSA2LCAu YmFzZSA9IEdFTjZfQlNEX1JJTkdfQkFTRSB9LAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB7 IC5nZW4gPSA0LCAuYmFzZSA9IEJTRF9SSU5HX0JBU0UgfQo+PiArwqDCoMKgwqDCoMKgwqAgfSwK Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIC5pcnFfc2hpZnQgPSBHRU44X1ZDUzFfSVJRX1NISUZULAo+ PiDCoMKgwqDCoMKgIH0sCj4+IMKgwqDCoMKgwqAgW1ZDUzJdID0gewo+PiBAQCAtMTIwLDcgKzEz MiwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGVuZ2luZV9pbmZvIGludGVsX2VuZ2luZXNbXSA9 IHsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC51YWJpX2lkID0gSTkxNV9FWEVDX0JTRCwKPj4gwqDC oMKgwqDCoMKgwqDCoMKgIC5jbGFzcyA9IFZJREVPX0RFQ09ERV9DTEFTUywKPj4gwqDCoMKgwqDC oMKgwqDCoMKgIC5pbnN0YW5jZSA9IDEsCj4+IC3CoMKgwqDCoMKgwqDCoCAubW1pb19iYXNlID0g R0VOOF9CU0QyX1JJTkdfQkFTRSwKPj4gK8KgwqDCoMKgwqDCoMKgIC5tbWlvX2Jhc2VzID0gewo+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB7IC5nZW4gPSAxMSwgLmJhc2UgPSBHRU4xMV9CU0Qy X1JJTkdfQkFTRSB9LAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB7IC5nZW4gPSA4LCAuYmFz ZSA9IEdFTjhfQlNEMl9SSU5HX0JBU0UgfQo+PiArwqDCoMKgwqDCoMKgwqAgfSwKPj4gwqDCoMKg wqDCoMKgwqDCoMKgIC5pcnFfc2hpZnQgPSBHRU44X1ZDUzJfSVJRX1NISUZULAo+PiDCoMKgwqDC oMKgIH0sCj4+IMKgwqDCoMKgwqAgW1ZDUzNdID0gewo+PiBAQCAtMTI4LDcgKzE0Myw5IEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgZW5naW5lX2luZm8gaW50ZWxfZW5naW5lc1tdID0gewo+PiDCoMKg wqDCoMKgwqDCoMKgwqAgLnVhYmlfaWQgPSBJOTE1X0VYRUNfQlNELAo+PiDCoMKgwqDCoMKgwqDC oMKgwqAgLmNsYXNzID0gVklERU9fREVDT0RFX0NMQVNTLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqAg Lmluc3RhbmNlID0gMiwKPj4gLcKgwqDCoMKgwqDCoMKgIC5tbWlvX2Jhc2UgPSBHRU4xMV9CU0Qz X1JJTkdfQkFTRSwKPj4gK8KgwqDCoMKgwqDCoMKgIC5tbWlvX2Jhc2VzID0gewo+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB7IC5nZW4gPSAxMSwgLmJhc2UgPSBHRU4xMV9CU0QzX1JJTkdfQkFT RSB9Cj4+ICvCoMKgwqDCoMKgwqDCoCB9LAo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLmlycV9zaGlm dCA9IDAsIC8qIG5vdCB1c2VkICovCj4+IMKgwqDCoMKgwqAgfSwKPj4gwqDCoMKgwqDCoCBbVkNT NF0gPSB7Cj4+IEBAIC0xMzYsNyArMTUzLDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBlbmdpbmVf aW5mbyBpbnRlbF9lbmdpbmVzW10gPSB7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAudWFiaV9pZCA9 IEk5MTVfRVhFQ19CU0QsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAuY2xhc3MgPSBWSURFT19ERUNP REVfQ0xBU1MsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAuaW5zdGFuY2UgPSAzLAo+PiAtwqDCoMKg wqDCoMKgwqAgLm1taW9fYmFzZSA9IEdFTjExX0JTRDRfUklOR19CQVNFLAo+PiArwqDCoMKgwqDC oMKgwqAgLm1taW9fYmFzZXMgPSB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHsgLmdlbiA9 IDExLCAuYmFzZSA9IEdFTjExX0JTRDRfUklOR19CQVNFIH0KPj4gK8KgwqDCoMKgwqDCoMKgIH0s Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAuaXJxX3NoaWZ0ID0gMCwgLyogbm90IHVzZWQgKi8KPj4g wqDCoMKgwqDCoCB9LAo+PiDCoMKgwqDCoMKgIFtWRUNTXSA9IHsKPj4gQEAgLTE0NCw3ICsxNjMs MTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBlbmdpbmVfaW5mbyBpbnRlbF9lbmdpbmVzW10gPSB7 Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAudWFiaV9pZCA9IEk5MTVfRVhFQ19WRUJPWCwKPj4gwqDC oMKgwqDCoMKgwqDCoMKgIC5jbGFzcyA9IFZJREVPX0VOSEFOQ0VNRU5UX0NMQVNTLAo+PiDCoMKg wqDCoMKgwqDCoMKgwqAgLmluc3RhbmNlID0gMCwKPj4gLcKgwqDCoMKgwqDCoMKgIC5tbWlvX2Jh c2UgPSBWRUJPWF9SSU5HX0JBU0UsCj4+ICvCoMKgwqDCoMKgwqDCoCAubW1pb19iYXNlcyA9IHsK Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgeyAuZ2VuID0gMTEsIC5iYXNlID0gR0VOMTFfVkVC T1hfUklOR19CQVNFIH0sCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHsgLmdlbiA9IDcsIC5i YXNlID0gVkVCT1hfUklOR19CQVNFIH0KPj4gK8KgwqDCoMKgwqDCoMKgIH0sCj4+IMKgwqDCoMKg wqDCoMKgwqDCoCAuaXJxX3NoaWZ0ID0gR0VOOF9WRUNTX0lSUV9TSElGVCwKPj4gwqDCoMKgwqDC oCB9LAo+PiDCoMKgwqDCoMKgIFtWRUNTMl0gPSB7Cj4+IEBAIC0xNTIsNyArMTc0LDkgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBlbmdpbmVfaW5mbyBpbnRlbF9lbmdpbmVzW10gPSB7Cj4+IMKgwqDC oMKgwqDCoMKgwqDCoCAudWFiaV9pZCA9IEk5MTVfRVhFQ19WRUJPWCwKPj4gwqDCoMKgwqDCoMKg wqDCoMKgIC5jbGFzcyA9IFZJREVPX0VOSEFOQ0VNRU5UX0NMQVNTLAo+PiDCoMKgwqDCoMKgwqDC oMKgwqAgLmluc3RhbmNlID0gMSwKPj4gLcKgwqDCoMKgwqDCoMKgIC5tbWlvX2Jhc2UgPSBHRU4x MV9WRUJPWDJfUklOR19CQVNFLAo+PiArwqDCoMKgwqDCoMKgwqAgLm1taW9fYmFzZXMgPSB7Cj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHsgLmdlbiA9IDExLCAuYmFzZSA9IEdFTjExX1ZFQk9Y Ml9SSU5HX0JBU0UgfQo+PiArwqDCoMKgwqDCoMKgwqAgfSwKPj4gwqDCoMKgwqDCoMKgwqDCoMKg IC5pcnFfc2hpZnQgPSAwLCAvKiBub3QgdXNlZCAqLwo+PiDCoMKgwqDCoMKgIH0sCj4+IMKgIH07 Cj4+IEBAIC0yMjMsNiArMjQ3LDIxIEBAIF9faW50ZWxfZW5naW5lX2NvbnRleHRfc2l6ZShzdHJ1 Y3QgCj4+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1OCBjbGFzcykKPj4gwqDCoMKgwqDC oCB9Cj4+IMKgIH0KPj4gK3N0YXRpYyB1MzIgX19lbmdpbmVfbW1pb19iYXNlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICppOTE1LAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBjb25zdCBzdHJ1Y3QgZW5naW5lX21taW9fYmFzZSogYmFzZXMpCj4+ICt7Cj4+ICvCoMKgwqAg aW50IGk7Cj4+ICsKPj4gK8KgwqDCoCBmb3IgKGkgPSAwOyBpIDwgTUFYX01NSU9fQkFTRVM7IGkr KykKPj4gK8KgwqDCoMKgwqDCoMKgIGlmIChJTlRFTF9HRU4oaTkxNSkgPj0gYmFzZXNbaV0uZ2Vu KQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBicmVhazsKPj4gKwo+PiArwqDCoMKgIEdFTV9C VUdfT04oaSA9PSBNQVhfTU1JT19CQVNFUyk7Cj4+ICvCoMKgwqAgR0VNX0JVR19PTighYmFzZXNb aV0uYmFzZSk7Cj4+ICsKPj4gK8KgwqDCoCByZXR1cm4gYmFzZXNbaV0uYmFzZTsKPj4gK30KPj4g Kwo+PiDCoCBzdGF0aWMgaW50Cj4+IMKgIGludGVsX2VuZ2luZV9zZXR1cChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBlbnVtIGlu dGVsX2VuZ2luZV9pZCBpZCkKPj4gQEAgLTI1NywyNSArMjk2LDcgQEAgaW50ZWxfZW5naW5lX3Nl dHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIAo+PiAqZGV2X3ByaXYsCj4+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgY2xhc3NfaW5mby0+bmFtZSwgaW5mby0+aW5zdGFuY2UpID49Cj4+ IMKgwqDCoMKgwqDCoMKgwqDCoCBzaXplb2YoZW5naW5lLT5uYW1lKSk7Cj4+IMKgwqDCoMKgwqAg ZW5naW5lLT5od19pZCA9IGVuZ2luZS0+Z3VjX2lkID0gaW5mby0+aHdfaWQ7Cj4+IC3CoMKgwqAg aWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEpIHsKPj4gLcKgwqDCoMKgwqDCoMKgIHN3aXRj aCAoZW5naW5lLT5pZCkgewo+PiAtwqDCoMKgwqDCoMKgwqAgY2FzZSBWQ1M6Cj4+IC3CoMKgwqDC oMKgwqDCoMKgwqDCoMKgIGVuZ2luZS0+bW1pb19iYXNlID0gR0VOMTFfQlNEX1JJTkdfQkFTRTsK Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYnJlYWs7Cj4+IC3CoMKgwqDCoMKgwqDCoCBjYXNl IFZDUzI6Cj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGVuZ2luZS0+bW1pb19iYXNlID0gR0VO MTFfQlNEMl9SSU5HX0JBU0U7Cj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJyZWFrOwo+PiAt wqDCoMKgwqDCoMKgwqAgY2FzZSBWRUNTOgo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBlbmdp bmUtPm1taW9fYmFzZSA9IEdFTjExX1ZFQk9YX1JJTkdfQkFTRTsKPj4gLcKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgYnJlYWs7Cj4+IC3CoMKgwqDCoMKgwqDCoCBkZWZhdWx0Ogo+PiAtwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAvKiB0YWtlIHRoZSBvcmlnaW5hbCB2YWx1ZSBmb3IgYWxsIG90aGVyIGVu Z2luZXPCoCAqLwo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBlbmdpbmUtPm1taW9fYmFzZSA9 IGluZm8tPm1taW9fYmFzZTsKPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYnJlYWs7Cj4+IC3C oMKgwqDCoMKgwqDCoCB9Cj4+IC3CoMKgwqAgfSBlbHNlIHsKPj4gLcKgwqDCoMKgwqDCoMKgIGVu Z2luZS0+bW1pb19iYXNlID0gaW5mby0+bW1pb19iYXNlOwo+PiAtwqDCoMKgIH0KPj4gK8KgwqDC oCBlbmdpbmUtPm1taW9fYmFzZSA9IF9fZW5naW5lX21taW9fYmFzZShkZXZfcHJpdiwgaW5mby0+ bW1pb19iYXNlcyk7Cj4+IMKgwqDCoMKgwqAgZW5naW5lLT5pcnFfc2hpZnQgPSBpbmZvLT5pcnFf c2hpZnQ7Cj4+IMKgwqDCoMKgwqAgZW5naW5lLT5jbGFzcyA9IGluZm8tPmNsYXNzOwo+PiDCoMKg wqDCoMKgIGVuZ2luZS0+aW5zdGFuY2UgPSBpbmZvLT5pbnN0YW5jZTsKPj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyAKPj4gYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPj4gaW5kZXggMWQ1OTk1MjRhNzU5Li4yZTQ0 MDg0NzdhYjUgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jpbmdi dWZmZXIuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMK Pj4gQEAgLTIwNzksNyArMjA3OSw2IEBAIGludCBpbnRlbF9pbml0X2JzZF9yaW5nX2J1ZmZlcihz dHJ1Y3QgCj4+IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAg ZW5naW5lLT5lbWl0X2ZsdXNoID0gZ2VuNl9ic2RfcmluZ19mbHVzaDsKPj4gwqDCoMKgwqDCoMKg wqDCoMKgIGVuZ2luZS0+aXJxX2VuYWJsZV9tYXNrID0gR1RfQlNEX1VTRVJfSU5URVJSVVBUOwo+ PiDCoMKgwqDCoMKgIH0gZWxzZSB7Cj4+IC3CoMKgwqDCoMKgwqDCoCBlbmdpbmUtPm1taW9fYmFz ZSA9IEJTRF9SSU5HX0JBU0U7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBlbmdpbmUtPmVtaXRfZmx1 c2ggPSBic2RfcmluZ19mbHVzaDsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChJU19HRU41KGRl dl9wcml2KSkKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZW5naW5lLT5pcnFfZW5hYmxl X21hc2sgPSBJTEtfQlNEX1VTRVJfSU5URVJSVVBUOwo+PgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK