From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [RFC 1/7] drm/i915: prefer i915_runtime_pm in intel_runtime function Date: Mon, 03 Jun 2019 21:48:59 +0300 Message-ID: <871s0ao678.fsf@intel.com> References: <20190516215634.16675-1-daniele.ceraolospurio@intel.com> <20190516215634.16675-2-daniele.ceraolospurio@intel.com> <87lfz08acb.fsf@intel.com> <8ada3f20-e5d4-87c0-abc4-512b35395a4a@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id C35848931D for ; Mon, 3 Jun 2019 18:48:42 +0000 (UTC) In-Reply-To: <8ada3f20-e5d4-87c0-abc4-512b35395a4a@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniele Ceraolo Spurio , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCAzMSBNYXkgMjAxOSwgRGFuaWVsZSBDZXJhb2xvIFNwdXJpbyA8ZGFuaWVsZS5jZXJh b2xvc3B1cmlvQGludGVsLmNvbT4gd3JvdGU6Cj4gT24gNS8yMS8xOSAxOjQ1IEFNLCBKYW5pIE5p a3VsYSB3cm90ZToKPj4gT24gVGh1LCAxNiBNYXkgMjAxOSwgRGFuaWVsZSBDZXJhb2xvIFNwdXJp byA8ZGFuaWVsZS5jZXJhb2xvc3B1cmlvQGludGVsLmNvbT4gd3JvdGU6Cj4+PiBBcyBhIGZpcnN0 IHN0ZXAgdG93YXJkcyB1cGRhdGluZyB0aGUgY29kZSB0byB3b3JrIG9uIHRoZSBydW50aW1lX3Bt Cj4+PiBzdHJ1Y3R1cmUgaW5zdGVhZCBvZiBpOTE1LCByZXdvcmsgYWxsIHRoZSBpbnRlcm5hbHMg dG8gdXNlIGFuZCBwYXNzCj4+PiBhcm91bmQgdGhhdC4KPj4+Cj4+PiBTaWduZWQtb2ZmLWJ5OiBE YW5pZWxlIENlcmFvbG8gU3B1cmlvIDxkYW5pZWxlLmNlcmFvbG9zcHVyaW9AaW50ZWwuY29tPgo+ Pj4gLS0tCj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICB8ICAg MiArCj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICAgICB8ICAxMCAr LQo+Pj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMgfCAxNTIgKysr KysrKysrKysrLS0tLS0tLS0tLS0tCj4+PiAgIDMgZmlsZXMgY2hhbmdlZCwgODIgaW5zZXJ0aW9u cygrKSwgODIgZGVsZXRpb25zKC0pCj4+Pgo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+PiBp bmRleCA1ODAxZjU0MDc1ODkuLjQ3NDA3NGM3ZjM5NSAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKPj4+IEBAIC0xMTc3LDYgKzExNzcsOCBAQCBzdHJ1Y3Qgc2tsX3dtX3BhcmFtcyB7 Cj4+PiAgICAqLwo+Pj4gICBzdHJ1Y3QgaTkxNV9ydW50aW1lX3BtIHsKPj4+ICAgCWF0b21pY190 IHdha2VyZWZfY291bnQ7Cj4+PiArCXN0cnVjdCBkZXZpY2UgKmtkZXY7Cj4+IAo+PiBUaGlzIGNv dWxkIHVzZSBhIHNtYWxsIGNvbW1lbnQgdG8gc2F5IHdoYXQgZGV2aWNlIHRoaXMgaXMuCj4+IAo+ Cj4gV291bGQgc29tZXRoaW5nIGxpa2U6Cj4KPiAJLyogdGhlIGludGVsIGdwdSB3ZSdyZSBsb2Fk ZWQgb24gKi8KCkkgbWVhbnQgbW9yZSBsaXRlcmFsbHkgc29tZXRoaW5nIGxpa2UgInNldCB0bwpp OTE1LT5kcm0tPnBkZXYtPmRldiIuIChXaXRoIC4gaW5zdGVhZCBvZiAtPiBpbiBzb21lIHBsYWNl cy4uLikKCkJSLApKYW5pLgoKPiB3b3JrPyBPciBzaG91bGQgSSBqdXN0IHJlbmFtZSBpdCB0byBp OTE1X2tkZXYgbGlrZSB3ZSB1c2UgaW4gb3RoZXIgcGFydHMgCj4gb2YgdGhlIGRyaXZlcj8KPgo+ IFRoYW5rcywKPiBEYW5pZWxlCj4KPj4gQlIsCj4+IEphbmkuCj4+IAo+Pj4gKwlib29sIGF2YWls YWJsZTsKPj4+ICAgCWJvb2wgc3VzcGVuZGVkOwo+Pj4gICAJYm9vbCBpcnFzX2VuYWJsZWQ7Cj4+ PiAgIAo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPj4+IGluZGV4IDMwYjJkNmVkMmQ1My4u YmQwNGYzOTRmYmQzIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+PiBAQCAt MTY2MiwxMyArMTY2MiwxNyBAQCBfX19fYXNzZXJ0X3JwbV93YWtlbG9ja19oZWxkKHN0cnVjdCBp OTE1X3J1bnRpbWVfcG0gKnJwbSwgaW50IHdha2VyZWZfY291bnQpCj4+PiAgIH0KPj4+ICAgCj4+ PiAgIHN0YXRpYyBpbmxpbmUgdm9pZAo+Pj4gLWFzc2VydF9ycG1fcmF3X3dha2VyZWZfaGVsZChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPj4+ICtfX2Fzc2VydF9ycG1fcmF3X3dha2Vy ZWZfaGVsZChzdHJ1Y3QgaTkxNV9ydW50aW1lX3BtICpycG0pCj4+PiAgIHsKPj4+IC0Jc3RydWN0 IGk5MTVfcnVudGltZV9wbSAqcnBtID0gJmk5MTUtPnJ1bnRpbWVfcG07Cj4+PiAtCj4+PiAgIAlf X19fYXNzZXJ0X3JwbV9yYXdfd2FrZXJlZl9oZWxkKHJwbSwgYXRvbWljX3JlYWQoJnJwbS0+d2Fr ZXJlZl9jb3VudCkpOwo+Pj4gICB9Cj4+PiAgIAo+Pj4gK3N0YXRpYyBpbmxpbmUgdm9pZAo+Pj4g K2Fzc2VydF9ycG1fcmF3X3dha2VyZWZfaGVsZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSkKPj4+ICt7Cj4+PiArCV9fYXNzZXJ0X3JwbV9yYXdfd2FrZXJlZl9oZWxkKCZpOTE1LT5ydW50 aW1lX3BtKTsKPj4+ICt9Cj4+PiArCj4+PiAgIHN0YXRpYyBpbmxpbmUgdm9pZAo+Pj4gICBfX2Fz c2VydF9ycG1fd2FrZWxvY2tfaGVsZChzdHJ1Y3QgaTkxNV9ydW50aW1lX3BtICpycG0pCj4+PiAg IHsKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3Bt LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKPj4+IGluZGV4IGI0 YWJhYmFiZGY2Yy4uMmUyMWY1NjJkZjQ0IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9ydW50aW1lX3BtLmMKPj4+IEBAIC02MCwxOSArNjAsMTkgQEAKPj4+ICAgICogcHJlc2Vu dCBmb3IgYSBnaXZlbiBwbGF0Zm9ybS4KPj4+ICAgICovCj4+PiAgIAo+Pj4gLXN0YXRpYyBpbnRl bF93YWtlcmVmX3QgaW50ZWxfcnVudGltZV9wbV9nZXRfcmF3KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICppOTE1KTsKPj4+ICtzdGF0aWMgaW50ZWxfd2FrZXJlZl90IGludGVsX3J1bnRpbWVfcG1f Z2V0X3JhdyhzdHJ1Y3QgaTkxNV9ydW50aW1lX3BtICpycG0pOwo+Pj4gICBzdGF0aWMgdm9pZAo+ Pj4gLV9faW50ZWxfcnVudGltZV9wbV9wdXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUs IGludGVsX3dha2VyZWZfdCB3cmVmLAo+Pj4gK19faW50ZWxfcnVudGltZV9wbV9wdXQoc3RydWN0 IGk5MTVfcnVudGltZV9wbSAqcnBtLCBpbnRlbF93YWtlcmVmX3Qgd3JlZiwKPj4+ICAgCQkgICAg ICAgYm9vbCB3YWtlbG9jayk7Cj4+PiAgIAo+Pj4gICAjaWYgSVNfRU5BQkxFRChDT05GSUdfRFJN X0k5MTVfREVCVUdfUlVOVElNRV9QTSkKPj4+ICAgc3RhdGljIHZvaWQKPj4+IC1pbnRlbF9ydW50 aW1lX3BtX3B1dF9yYXcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIGludGVsX3dha2Vy ZWZfdCB3cmVmKTsKPj4+ICtpbnRlbF9ydW50aW1lX3BtX3B1dF9yYXcoc3RydWN0IGk5MTVfcnVu dGltZV9wbSAqcnBtLCBpbnRlbF93YWtlcmVmX3Qgd3JlZik7Cj4+PiAgICNlbHNlCj4+PiAtc3Rh dGljIGlubGluZSB2b2lkIGludGVsX3J1bnRpbWVfcG1fcHV0X3JhdyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSwKPj4+ICtzdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfcnVudGltZV9wbV9w dXRfcmF3KHN0cnVjdCBpOTE1X3J1bnRpbWVfcG0gKnJwbSwKPj4+ICAgCQkJCQkgICAgaW50ZWxf d2FrZXJlZl90IHdyZWYpCj4+PiAgIHsKPj4+IC0JX19pbnRlbF9ydW50aW1lX3BtX3B1dChpOTE1 LCAtMSwgZmFsc2UpOwo+Pj4gKwlfX2ludGVsX3J1bnRpbWVfcG1fcHV0KHJwbSwgLTEsIGZhbHNl KTsKPj4+ICAgfQo+Pj4gICAjZW5kaWYKPj4+ICAgCj4+PiBAQCAtMTEyLDIxICsxMTIsMTggQEAg c3RhdGljIHZvaWQgX19wcmludF9kZXBvdF9zdGFjayhkZXBvdF9zdGFja19oYW5kbGVfdCBzdGFj aywKPj4+ICAgCXNucHJpbnRfc3RhY2tfdHJhY2UoYnVmLCBzeiwgJnRyYWNlLCBpbmRlbnQpOwo+ Pj4gICB9Cj4+PiAgIAo+Pj4gLXN0YXRpYyB2b2lkIGluaXRfaW50ZWxfcnVudGltZV9wbV93YWtl cmVmKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+Pj4gK3N0YXRpYyB2b2lkIGluaXRf aW50ZWxfcnVudGltZV9wbV93YWtlcmVmKHN0cnVjdCBpOTE1X3J1bnRpbWVfcG0gKnJwbSkKPj4+ ICAgewo+Pj4gLQlzdHJ1Y3QgaTkxNV9ydW50aW1lX3BtICpycG0gPSAmaTkxNS0+cnVudGltZV9w bTsKPj4+IC0KPj4+ICAgCXNwaW5fbG9ja19pbml0KCZycG0tPmRlYnVnLmxvY2spOwo+Pj4gICB9 Cj4+PiAgIAo+Pj4gICBzdGF0aWMgbm9pbmxpbmUgZGVwb3Rfc3RhY2tfaGFuZGxlX3QKPj4+IC10 cmFja19pbnRlbF9ydW50aW1lX3BtX3dha2VyZWYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUpCj4+PiArdHJhY2tfaW50ZWxfcnVudGltZV9wbV93YWtlcmVmKHN0cnVjdCBpOTE1X3J1bnRp bWVfcG0gKnJwbSkKPj4+ICAgewo+Pj4gLQlzdHJ1Y3QgaTkxNV9ydW50aW1lX3BtICpycG0gPSAm aTkxNS0+cnVudGltZV9wbTsKPj4+ICAgCWRlcG90X3N0YWNrX2hhbmRsZV90IHN0YWNrLCAqc3Rh Y2tzOwo+Pj4gICAJdW5zaWduZWQgbG9uZyBmbGFnczsKPj4+ICAgCj4+PiAtCWlmICghSEFTX1JV TlRJTUVfUE0oaTkxNSkpCj4+PiArCWlmICghcnBtLT5hdmFpbGFibGUpCj4+PiAgIAkJcmV0dXJu IC0xOwo+Pj4gICAKPj4+ICAgCXN0YWNrID0gX19zYXZlX2RlcG90X3N0YWNrKCk7Cj4+PiBAQCAt MTUzLDEwICsxNTAsOSBAQCB0cmFja19pbnRlbF9ydW50aW1lX3BtX3dha2VyZWYoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4+PiAgIAlyZXR1cm4gc3RhY2s7Cj4+PiAgIH0KPj4+ICAg Cj4+PiAtc3RhdGljIHZvaWQgdW50cmFja19pbnRlbF9ydW50aW1lX3BtX3dha2VyZWYoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4+PiArc3RhdGljIHZvaWQgdW50cmFja19pbnRlbF9y dW50aW1lX3BtX3dha2VyZWYoc3RydWN0IGk5MTVfcnVudGltZV9wbSAqcnBtLAo+Pj4gICAJCQkJ CSAgICAgZGVwb3Rfc3RhY2tfaGFuZGxlX3Qgc3RhY2spCj4+PiAgIHsKPj4+IC0Jc3RydWN0IGk5 MTVfcnVudGltZV9wbSAqcnBtID0gJmk5MTUtPnJ1bnRpbWVfcG07Cj4+PiAgIAl1bnNpZ25lZCBs b25nIGZsYWdzLCBuOwo+Pj4gICAJYm9vbCBmb3VuZCA9IGZhbHNlOwo+Pj4gICAKPj4+IEBAIC0y NzQsOSArMjcwLDggQEAgZHVtcF9hbmRfZnJlZV93YWtlcmVmX3RyYWNraW5nKHN0cnVjdCBpbnRl bF9ydW50aW1lX3BtX2RlYnVnICpkZWJ1ZykKPj4+ICAgfQo+Pj4gICAKPj4+ICAgc3RhdGljIG5v aW5saW5lIHZvaWQKPj4+IC1fX2ludGVsX3dha2VyZWZfZGVjX2FuZF9jaGVja190cmFja2luZyhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPj4+ICtfX2ludGVsX3dha2VyZWZfZGVjX2Fu ZF9jaGVja190cmFja2luZyhzdHJ1Y3QgaTkxNV9ydW50aW1lX3BtICpycG0pCj4+PiAgIHsKPj4+ IC0Jc3RydWN0IGk5MTVfcnVudGltZV9wbSAqcnBtID0gJmk5MTUtPnJ1bnRpbWVfcG07Cj4+PiAg IAlzdHJ1Y3QgaW50ZWxfcnVudGltZV9wbV9kZWJ1ZyBkYmcgPSB7fTsKPj4+ICAgCXVuc2lnbmVk IGxvbmcgZmxhZ3M7Cj4+PiAgIAo+Pj4gQEAgLTI5Miw5ICsyODcsOCBAQCBfX2ludGVsX3dha2Vy ZWZfZGVjX2FuZF9jaGVja190cmFja2luZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkK Pj4+ICAgfQo+Pj4gICAKPj4+ICAgc3RhdGljIG5vaW5saW5lIHZvaWQKPj4+IC11bnRyYWNrX2Fs bF9pbnRlbF9ydW50aW1lX3BtX3dha2VyZWZzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 KQo+Pj4gK3VudHJhY2tfYWxsX2ludGVsX3J1bnRpbWVfcG1fd2FrZXJlZnMoc3RydWN0IGk5MTVf cnVudGltZV9wbSAqcnBtKQo+Pj4gICB7Cj4+PiAtCXN0cnVjdCBpOTE1X3J1bnRpbWVfcG0gKnJw bSA9ICZpOTE1LT5ydW50aW1lX3BtOwo+Pj4gICAJc3RydWN0IGludGVsX3J1bnRpbWVfcG1fZGVi dWcgZGJnID0ge307Cj4+PiAgIAl1bnNpZ25lZCBsb25nIGZsYWdzOwo+Pj4gICAKPj4+IEBAIC0z NDUsNjEgKzMzOSw1NyBAQCB2b2lkIHByaW50X2ludGVsX3J1bnRpbWVfcG1fd2FrZXJlZihzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKPj4+ICAgCj4+PiAgICNlbHNlCj4+PiAgIAo+Pj4g LXN0YXRpYyB2b2lkIGluaXRfaW50ZWxfcnVudGltZV9wbV93YWtlcmVmKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1KQo+Pj4gK3N0YXRpYyB2b2lkIGluaXRfaW50ZWxfcnVudGltZV9wbV93 YWtlcmVmKHN0cnVjdCBpOTE1X3J1bnRpbWVfcG0gKnJwbSkKPj4+ICAgewo+Pj4gICB9Cj4+PiAg IAo+Pj4gICBzdGF0aWMgZGVwb3Rfc3RhY2tfaGFuZGxlX3QKPj4+IC10cmFja19pbnRlbF9ydW50 aW1lX3BtX3dha2VyZWYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4+PiArdHJhY2tf aW50ZWxfcnVudGltZV9wbV93YWtlcmVmKHN0cnVjdCBpOTE1X3J1bnRpbWVfcG0gKnJwbSkKPj4+ ICAgewo+Pj4gICAJcmV0dXJuIC0xOwo+Pj4gICB9Cj4+PiAgIAo+Pj4gLXN0YXRpYyB2b2lkIHVu dHJhY2tfaW50ZWxfcnVudGltZV9wbV93YWtlcmVmKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1LAo+Pj4gK3N0YXRpYyB2b2lkIHVudHJhY2tfaW50ZWxfcnVudGltZV9wbV93YWtlcmVmKHN0 cnVjdCBpOTE1X3J1bnRpbWVfcG0gKnJwbSwKPj4+ICAgCQkJCQkgICAgIGludGVsX3dha2VyZWZf dCB3cmVmKQo+Pj4gICB7Cj4+PiAgIH0KPj4+ICAgCj4+PiAgIHN0YXRpYyB2b2lkCj4+PiAtX19p bnRlbF93YWtlcmVmX2RlY19hbmRfY2hlY2tfdHJhY2tpbmcoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUpCj4+PiArX19pbnRlbF93YWtlcmVmX2RlY19hbmRfY2hlY2tfdHJhY2tpbmcoc3Ry dWN0IGk5MTVfcnVudGltZV9wbSAqcnBtKQo+Pj4gICB7Cj4+PiAtCWF0b21pY19kZWMoJmk5MTUt PnJ1bnRpbWVfcG0ud2FrZXJlZl9jb3VudCk7Cj4+PiArCWF0b21pY19kZWMoJnJwbS0+d2FrZXJl Zl9jb3VudCk7Cj4+PiAgIH0KPj4+ICAgCj4+PiAgIHN0YXRpYyB2b2lkCj4+PiAtdW50cmFja19h bGxfaW50ZWxfcnVudGltZV9wbV93YWtlcmVmcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSkKPj4+ICt1bnRyYWNrX2FsbF9pbnRlbF9ydW50aW1lX3BtX3dha2VyZWZzKHN0cnVjdCBpOTE1 X3J1bnRpbWVfcG0gKnJwbSkKPj4+ICAgewo+Pj4gICB9Cj4+PiAgIAo+Pj4gICAjZW5kaWYKPj4+ ICAgCj4+PiAgIHN0YXRpYyB2b2lkCj4+PiAtaW50ZWxfcnVudGltZV9wbV9hY3F1aXJlKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1LCBib29sIHdha2Vsb2NrKQo+Pj4gK2ludGVsX3J1bnRp bWVfcG1fYWNxdWlyZShzdHJ1Y3QgaTkxNV9ydW50aW1lX3BtICpycG0sIGJvb2wgd2FrZWxvY2sp Cj4+PiAgIHsKPj4+IC0Jc3RydWN0IGk5MTVfcnVudGltZV9wbSAqcnBtID0gJmk5MTUtPnJ1bnRp bWVfcG07Cj4+PiAtCj4+PiAgIAlpZiAod2FrZWxvY2spIHsKPj4+ICAgCQlhdG9taWNfYWRkKDEg KyBJTlRFTF9SUE1fV0FLRUxPQ0tfQklBUywgJnJwbS0+d2FrZXJlZl9jb3VudCk7Cj4+PiAtCQlh c3NlcnRfcnBtX3dha2Vsb2NrX2hlbGQoaTkxNSk7Cj4+PiArCQlfX2Fzc2VydF9ycG1fd2FrZWxv Y2tfaGVsZChycG0pOwo+Pj4gICAJfSBlbHNlIHsKPj4+ICAgCQlhdG9taWNfaW5jKCZycG0tPndh a2VyZWZfY291bnQpOwo+Pj4gLQkJYXNzZXJ0X3JwbV9yYXdfd2FrZXJlZl9oZWxkKGk5MTUpOwo+ Pj4gKwkJX19hc3NlcnRfcnBtX3Jhd193YWtlcmVmX2hlbGQocnBtKTsKPj4+ICAgCX0KPj4+ICAg fQo+Pj4gICAKPj4+ICAgc3RhdGljIHZvaWQKPj4+IC1pbnRlbF9ydW50aW1lX3BtX3JlbGVhc2Uo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIGludCB3YWtlbG9jaykKPj4+ICtpbnRlbF9y dW50aW1lX3BtX3JlbGVhc2Uoc3RydWN0IGk5MTVfcnVudGltZV9wbSAqcnBtLCBpbnQgd2FrZWxv Y2spCj4+PiAgIHsKPj4+IC0Jc3RydWN0IGk5MTVfcnVudGltZV9wbSAqcnBtID0gJmk5MTUtPnJ1 bnRpbWVfcG07Cj4+PiAtCj4+PiAgIAlpZiAod2FrZWxvY2spIHsKPj4+IC0JCWFzc2VydF9ycG1f d2FrZWxvY2tfaGVsZChpOTE1KTsKPj4+ICsJCV9fYXNzZXJ0X3JwbV93YWtlbG9ja19oZWxkKHJw bSk7Cj4+PiAgIAkJYXRvbWljX3N1YihJTlRFTF9SUE1fV0FLRUxPQ0tfQklBUywgJnJwbS0+d2Fr ZXJlZl9jb3VudCk7Cj4+PiAgIAl9IGVsc2Ugewo+Pj4gLQkJYXNzZXJ0X3JwbV9yYXdfd2FrZXJl Zl9oZWxkKGk5MTUpOwo+Pj4gKwkJX19hc3NlcnRfcnBtX3Jhd193YWtlcmVmX2hlbGQocnBtKTsK Pj4+ICAgCX0KPj4+ICAgCj4+PiAtCV9faW50ZWxfd2FrZXJlZl9kZWNfYW5kX2NoZWNrX3RyYWNr aW5nKGk5MTUpOwo+Pj4gKwlfX2ludGVsX3dha2VyZWZfZGVjX2FuZF9jaGVja190cmFja2luZyhy cG0pOwo+Pj4gICB9Cj4+PiAgIAo+Pj4gICBib29sIGludGVsX2Rpc3BsYXlfcG93ZXJfd2VsbF9p c19lbmFibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4+IEBAIC0yMDMw LDcgKzIwMjAsNyBAQCBpbnRlbF9kaXNwbGF5X3Bvd2VyX2dyYWJfYXN5bmNfcHV0X3JlZihzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+PiAgIAkJZ290byBvdXRfdmVyaWZ5Owo+ Pj4gICAKPj4+ICAgCWNhbmNlbF9kZWxheWVkX3dvcmsoJnBvd2VyX2RvbWFpbnMtPmFzeW5jX3B1 dF93b3JrKTsKPj4+IC0JaW50ZWxfcnVudGltZV9wbV9wdXRfcmF3KGRldl9wcml2LAo+Pj4gKwlp bnRlbF9ydW50aW1lX3BtX3B1dF9yYXcoJmRldl9wcml2LT5ydW50aW1lX3BtLAo+Pj4gICAJCQkJ IGZldGNoX2FuZF96ZXJvKCZwb3dlcl9kb21haW5zLT5hc3luY19wdXRfd2FrZXJlZikpOwo+Pj4g ICBvdXRfdmVyaWZ5Ogo+Pj4gICAJdmVyaWZ5X2FzeW5jX3B1dF9kb21haW5zX3N0YXRlKHBvd2Vy X2RvbWFpbnMpOwo+Pj4gQEAgLTIyMTksNyArMjIwOSw4IEBAIGludGVsX2Rpc3BsYXlfcG93ZXJf cHV0X2FzeW5jX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+Pj4gICAJCWNvbnRhaW5l cl9vZih3b3JrLCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSwKPj4+ICAgCQkJICAgICBwb3dlcl9k b21haW5zLmFzeW5jX3B1dF93b3JrLndvcmspOwo+Pj4gICAJc3RydWN0IGk5MTVfcG93ZXJfZG9t YWlucyAqcG93ZXJfZG9tYWlucyA9ICZkZXZfcHJpdi0+cG93ZXJfZG9tYWluczsKPj4+IC0JaW50 ZWxfd2FrZXJlZl90IG5ld193b3JrX3dha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldF9yYXco ZGV2X3ByaXYpOwo+Pj4gKwlzdHJ1Y3QgaTkxNV9ydW50aW1lX3BtICpycG0gPSAmZGV2X3ByaXYt PnJ1bnRpbWVfcG07Cj4+PiArCWludGVsX3dha2VyZWZfdCBuZXdfd29ya193YWtlcmVmID0gaW50 ZWxfcnVudGltZV9wbV9nZXRfcmF3KHJwbSk7Cj4+PiAgIAlpbnRlbF93YWtlcmVmX3Qgb2xkX3dv cmtfd2FrZXJlZiA9IDA7Cj4+PiAgIAo+Pj4gICAJbXV0ZXhfbG9jaygmcG93ZXJfZG9tYWlucy0+ bG9jayk7Cj4+PiBAQCAtMjI0OSw5ICsyMjQwLDkgQEAgaW50ZWxfZGlzcGxheV9wb3dlcl9wdXRf YXN5bmNfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4+PiAgIAltdXRleF91bmxvY2so JnBvd2VyX2RvbWFpbnMtPmxvY2spOwo+Pj4gICAKPj4+ICAgCWlmIChvbGRfd29ya193YWtlcmVm KQo+Pj4gLQkJaW50ZWxfcnVudGltZV9wbV9wdXRfcmF3KGRldl9wcml2LCBvbGRfd29ya193YWtl cmVmKTsKPj4+ICsJCWludGVsX3J1bnRpbWVfcG1fcHV0X3JhdyhycG0sIG9sZF93b3JrX3dha2Vy ZWYpOwo+Pj4gICAJaWYgKG5ld193b3JrX3dha2VyZWYpCj4+PiAtCQlpbnRlbF9ydW50aW1lX3Bt X3B1dF9yYXcoZGV2X3ByaXYsIG5ld193b3JrX3dha2VyZWYpOwo+Pj4gKwkJaW50ZWxfcnVudGlt ZV9wbV9wdXRfcmF3KHJwbSwgbmV3X3dvcmtfd2FrZXJlZik7Cj4+PiAgIH0KPj4+ICAgCj4+PiAg IC8qKgo+Pj4gQEAgLTIyNjksNyArMjI2MCw4IEBAIHZvaWQgX19pbnRlbF9kaXNwbGF5X3Bvd2Vy X3B1dF9hc3luYyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKPj4+ICAgCQkJCSAgICAg aW50ZWxfd2FrZXJlZl90IHdha2VyZWYpCj4+PiAgIHsKPj4+ICAgCXN0cnVjdCBpOTE1X3Bvd2Vy X2RvbWFpbnMgKnBvd2VyX2RvbWFpbnMgPSAmaTkxNS0+cG93ZXJfZG9tYWluczsKPj4+IC0JaW50 ZWxfd2FrZXJlZl90IHdvcmtfd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0X3JhdyhpOTE1 KTsKPj4+ICsJc3RydWN0IGk5MTVfcnVudGltZV9wbSAqcnBtID0gJmk5MTUtPnJ1bnRpbWVfcG07 Cj4+PiArCWludGVsX3dha2VyZWZfdCB3b3JrX3dha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dl dF9yYXcocnBtKTsKPj4+ICAgCj4+PiAgIAltdXRleF9sb2NrKCZwb3dlcl9kb21haW5zLT5sb2Nr KTsKPj4+ICAgCj4+PiBAQCAtMjI5Niw3ICsyMjg4LDcgQEAgdm9pZCBfX2ludGVsX2Rpc3BsYXlf cG93ZXJfcHV0X2FzeW5jKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAo+Pj4gICAJbXV0 ZXhfdW5sb2NrKCZwb3dlcl9kb21haW5zLT5sb2NrKTsKPj4+ICAgCj4+PiAgIAlpZiAod29ya193 YWtlcmVmKQo+Pj4gLQkJaW50ZWxfcnVudGltZV9wbV9wdXRfcmF3KGk5MTUsIHdvcmtfd2FrZXJl Zik7Cj4+PiArCQlpbnRlbF9ydW50aW1lX3BtX3B1dF9yYXcocnBtLCB3b3JrX3dha2VyZWYpOwo+ Pj4gICAKPj4+ICAgCWludGVsX3J1bnRpbWVfcG1fcHV0KGk5MTUsIHdha2VyZWYpOwo+Pj4gICB9 Cj4+PiBAQCAtMjMzNCw3ICsyMzI2LDcgQEAgdm9pZCBpbnRlbF9kaXNwbGF5X3Bvd2VyX2ZsdXNo X3dvcmsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4+PiAgIAltdXRleF91bmxvY2so JnBvd2VyX2RvbWFpbnMtPmxvY2spOwo+Pj4gICAKPj4+ICAgCWlmICh3b3JrX3dha2VyZWYpCj4+ PiAtCQlpbnRlbF9ydW50aW1lX3BtX3B1dF9yYXcoaTkxNSwgd29ya193YWtlcmVmKTsKPj4+ICsJ CWludGVsX3J1bnRpbWVfcG1fcHV0X3JhdygmaTkxNS0+cnVudGltZV9wbSwgd29ya193YWtlcmVm KTsKPj4+ICAgfQo+Pj4gICAKPj4+ICAgLyoqCj4+PiBAQCAtNDk5NiwyNCArNDk4OCwyMiBAQCBz dGF0aWMgdm9pZCBpbnRlbF9wb3dlcl9kb21haW5zX3ZlcmlmeV9zdGF0ZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNSkKPj4+ICAgCj4+PiAgICNlbmRpZgo+Pj4gICAKPj4+IC1zdGF0aWMg aW50ZWxfd2FrZXJlZl90IF9faW50ZWxfcnVudGltZV9wbV9nZXQoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmk5MTUsCj4+PiArc3RhdGljIGludGVsX3dha2VyZWZfdCBfX2ludGVsX3J1bnRpbWVf cG1fZ2V0KHN0cnVjdCBpOTE1X3J1bnRpbWVfcG0gKnJwbSwKPj4+ICAgCQkJCQkgICAgICBib29s IHdha2Vsb2NrKQo+Pj4gICB7Cj4+PiAtCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gaTkxNS0+ZHJt LnBkZXY7Cj4+PiAtCXN0cnVjdCBkZXZpY2UgKmtkZXYgPSAmcGRldi0+ZGV2Owo+Pj4gICAJaW50 IHJldDsKPj4+ICAgCj4+PiAtCXJldCA9IHBtX3J1bnRpbWVfZ2V0X3N5bmMoa2Rldik7Cj4+PiAr CXJldCA9IHBtX3J1bnRpbWVfZ2V0X3N5bmMocnBtLT5rZGV2KTsKPj4+ICAgCVdBUk5fT05DRShy ZXQgPCAwLCAicG1fcnVudGltZV9nZXRfc3luYygpIGZhaWxlZDogJWRcbiIsIHJldCk7Cj4+PiAg IAo+Pj4gLQlpbnRlbF9ydW50aW1lX3BtX2FjcXVpcmUoaTkxNSwgd2FrZWxvY2spOwo+Pj4gKwlp bnRlbF9ydW50aW1lX3BtX2FjcXVpcmUocnBtLCB3YWtlbG9jayk7Cj4+PiAgIAo+Pj4gLQlyZXR1 cm4gdHJhY2tfaW50ZWxfcnVudGltZV9wbV93YWtlcmVmKGk5MTUpOwo+Pj4gKwlyZXR1cm4gdHJh Y2tfaW50ZWxfcnVudGltZV9wbV93YWtlcmVmKHJwbSk7Cj4+PiAgIH0KPj4+ICAgCj4+PiAtc3Rh dGljIGludGVsX3dha2VyZWZfdCBpbnRlbF9ydW50aW1lX3BtX2dldF9yYXcoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTUpCj4+PiArc3RhdGljIGludGVsX3dha2VyZWZfdCBpbnRlbF9ydW50 aW1lX3BtX2dldF9yYXcoc3RydWN0IGk5MTVfcnVudGltZV9wbSAqcnBtKQo+Pj4gICB7Cj4+PiAt CXJldHVybiBfX2ludGVsX3J1bnRpbWVfcG1fZ2V0KGk5MTUsIGZhbHNlKTsKPj4+ICsJcmV0dXJu IF9faW50ZWxfcnVudGltZV9wbV9nZXQocnBtLCBmYWxzZSk7Cj4+PiAgIH0KPj4+ICAgCj4+PiAg IC8qKgo+Pj4gQEAgLTUwMzAsNyArNTAyMCw3IEBAIHN0YXRpYyBpbnRlbF93YWtlcmVmX3QgaW50 ZWxfcnVudGltZV9wbV9nZXRfcmF3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+Pj4g ICAgKi8KPj4+ICAgaW50ZWxfd2FrZXJlZl90IGludGVsX3J1bnRpbWVfcG1fZ2V0KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICppOTE1KQo+Pj4gICB7Cj4+PiAtCXJldHVybiBfX2ludGVsX3J1bnRp bWVfcG1fZ2V0KGk5MTUsIHRydWUpOwo+Pj4gKwlyZXR1cm4gX19pbnRlbF9ydW50aW1lX3BtX2dl dCgmaTkxNS0+cnVudGltZV9wbSwgdHJ1ZSk7Cj4+PiAgIH0KPj4+ICAgCj4+PiAgIC8qKgo+Pj4g QEAgLTUwNDksMjMgKzUwMzksMjIgQEAgaW50ZWxfd2FrZXJlZl90IGludGVsX3J1bnRpbWVfcG1f Z2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+Pj4gICAgKi8KPj4+ICAgaW50ZWxf d2FrZXJlZl90IGludGVsX3J1bnRpbWVfcG1fZ2V0X2lmX2luX3VzZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSkKPj4+ICAgewo+Pj4gLQlpZiAoSVNfRU5BQkxFRChDT05GSUdfUE0pKSB7 Cj4+PiAtCQlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGk5MTUtPmRybS5wZGV2Owo+Pj4gLQkJc3Ry dWN0IGRldmljZSAqa2RldiA9ICZwZGV2LT5kZXY7Cj4+PiArCXN0cnVjdCBpOTE1X3J1bnRpbWVf cG0gKnJwbSA9ICZpOTE1LT5ydW50aW1lX3BtOwo+Pj4gICAKPj4+ICsJaWYgKElTX0VOQUJMRUQo Q09ORklHX1BNKSkgewo+Pj4gICAJCS8qCj4+PiAgIAkJICogSW4gY2FzZXMgcnVudGltZSBQTSBp cyBkaXNhYmxlZCBieSB0aGUgUlBNIGNvcmUgYW5kIHdlIGdldAo+Pj4gICAJCSAqIGFuIC1FSU5W QUwgcmV0dXJuIHZhbHVlIHdlIGFyZSBub3Qgc3VwcG9zZWQgdG8gY2FsbCB0aGlzCj4+PiAgIAkJ ICogZnVuY3Rpb24sIHNpbmNlIHRoZSBwb3dlciBzdGF0ZSBpcyB1bmRlZmluZWQuIFRoaXMgYXBw bGllcwo+Pj4gICAJCSAqIGF0bSB0byB0aGUgbGF0ZS9lYXJseSBzeXN0ZW0gc3VzcGVuZC9yZXN1 bWUgaGFuZGxlcnMuCj4+PiAgIAkJICovCj4+PiAtCQlpZiAocG1fcnVudGltZV9nZXRfaWZfaW5f dXNlKGtkZXYpIDw9IDApCj4+PiArCQlpZiAocG1fcnVudGltZV9nZXRfaWZfaW5fdXNlKHJwbS0+ a2RldikgPD0gMCkKPj4+ICAgCQkJcmV0dXJuIDA7Cj4+PiAgIAl9Cj4+PiAgIAo+Pj4gLQlpbnRl bF9ydW50aW1lX3BtX2FjcXVpcmUoaTkxNSwgdHJ1ZSk7Cj4+PiArCWludGVsX3J1bnRpbWVfcG1f YWNxdWlyZShycG0sIHRydWUpOwo+Pj4gICAKPj4+IC0JcmV0dXJuIHRyYWNrX2ludGVsX3J1bnRp bWVfcG1fd2FrZXJlZihpOTE1KTsKPj4+ICsJcmV0dXJuIHRyYWNrX2ludGVsX3J1bnRpbWVfcG1f d2FrZXJlZihycG0pOwo+Pj4gICB9Cj4+PiAgIAo+Pj4gICAvKioKPj4+IEBAIC01MDg5LDI3ICs1 MDc4LDI1IEBAIGludGVsX3dha2VyZWZfdCBpbnRlbF9ydW50aW1lX3BtX2dldF9pZl9pbl91c2Uo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4+PiAgICAqLwo+Pj4gICBpbnRlbF93YWtl cmVmX3QgaW50ZWxfcnVudGltZV9wbV9nZXRfbm9yZXN1bWUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUpCj4+PiAgIHsKPj4+IC0Jc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBpOTE1LT5kcm0u cGRldjsKPj4+IC0Jc3RydWN0IGRldmljZSAqa2RldiA9ICZwZGV2LT5kZXY7Cj4+PiArCXN0cnVj dCBpOTE1X3J1bnRpbWVfcG0gKnJwbSA9ICZpOTE1LT5ydW50aW1lX3BtOwo+Pj4gICAKPj4+IC0J YXNzZXJ0X3JwbV93YWtlbG9ja19oZWxkKGk5MTUpOwo+Pj4gLQlwbV9ydW50aW1lX2dldF9ub3Jl c3VtZShrZGV2KTsKPj4+ICsJX19hc3NlcnRfcnBtX3dha2Vsb2NrX2hlbGQocnBtKTsKPj4+ICsJ cG1fcnVudGltZV9nZXRfbm9yZXN1bWUocnBtLT5rZGV2KTsKPj4+ICAgCj4+PiAtCWludGVsX3J1 bnRpbWVfcG1fYWNxdWlyZShpOTE1LCB0cnVlKTsKPj4+ICsJaW50ZWxfcnVudGltZV9wbV9hY3F1 aXJlKHJwbSwgdHJ1ZSk7Cj4+PiAgIAo+Pj4gLQlyZXR1cm4gdHJhY2tfaW50ZWxfcnVudGltZV9w bV93YWtlcmVmKGk5MTUpOwo+Pj4gKwlyZXR1cm4gdHJhY2tfaW50ZWxfcnVudGltZV9wbV93YWtl cmVmKHJwbSk7Cj4+PiAgIH0KPj4+ICAgCj4+PiAtc3RhdGljIHZvaWQgX19pbnRlbF9ydW50aW1l X3BtX3B1dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKPj4+ICtzdGF0aWMgdm9pZCBf X2ludGVsX3J1bnRpbWVfcG1fcHV0KHN0cnVjdCBpOTE1X3J1bnRpbWVfcG0gKnJwbSwKPj4+ICAg CQkJCSAgIGludGVsX3dha2VyZWZfdCB3cmVmLAo+Pj4gICAJCQkJICAgYm9vbCB3YWtlbG9jaykK Pj4+ICAgewo+Pj4gLQlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGk5MTUtPmRybS5wZGV2Owo+Pj4g LQlzdHJ1Y3QgZGV2aWNlICprZGV2ID0gJnBkZXYtPmRldjsKPj4+ICsJc3RydWN0IGRldmljZSAq a2RldiA9IHJwbS0+a2RldjsKPj4+ICAgCj4+PiAtCXVudHJhY2tfaW50ZWxfcnVudGltZV9wbV93 YWtlcmVmKGk5MTUsIHdyZWYpOwo+Pj4gKwl1bnRyYWNrX2ludGVsX3J1bnRpbWVfcG1fd2FrZXJl ZihycG0sIHdyZWYpOwo+Pj4gICAKPj4+IC0JaW50ZWxfcnVudGltZV9wbV9yZWxlYXNlKGk5MTUs IHdha2Vsb2NrKTsKPj4+ICsJaW50ZWxfcnVudGltZV9wbV9yZWxlYXNlKHJwbSwgd2FrZWxvY2sp Owo+Pj4gICAKPj4+ICAgCXBtX3J1bnRpbWVfbWFya19sYXN0X2J1c3koa2Rldik7Cj4+PiAgIAlw bV9ydW50aW1lX3B1dF9hdXRvc3VzcGVuZChrZGV2KTsKPj4+IEBAIC01MTE3LDkgKzUxMDQsOSBA QCBzdGF0aWMgdm9pZCBfX2ludGVsX3J1bnRpbWVfcG1fcHV0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICppOTE1LAo+Pj4gICAKPj4+ICAgI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X0RF QlVHX1JVTlRJTUVfUE0pCj4+PiAgIHN0YXRpYyB2b2lkCj4+PiAtaW50ZWxfcnVudGltZV9wbV9w dXRfcmF3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCBpbnRlbF93YWtlcmVmX3Qgd3Jl ZikKPj4+ICtpbnRlbF9ydW50aW1lX3BtX3B1dF9yYXcoc3RydWN0IGk5MTVfcnVudGltZV9wbSAq cnBtLCBpbnRlbF93YWtlcmVmX3Qgd3JlZikKPj4+ICAgewo+Pj4gLQlfX2ludGVsX3J1bnRpbWVf cG1fcHV0KGk5MTUsIHdyZWYsIGZhbHNlKTsKPj4+ICsJX19pbnRlbF9ydW50aW1lX3BtX3B1dChy cG0sIHdyZWYsIGZhbHNlKTsKPj4+ICAgfQo+Pj4gICAjZW5kaWYKPj4+ICAgCj4+PiBAQCAtNTEz Nyw3ICs1MTI0LDcgQEAgaW50ZWxfcnVudGltZV9wbV9wdXRfcmF3KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICppOTE1LCBpbnRlbF93YWtlcmVmX3Qgd3JlZikKPj4+ICAgICovCj4+PiAgIHZvaWQg aW50ZWxfcnVudGltZV9wbV9wdXRfdW5jaGVja2VkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1KQo+Pj4gICB7Cj4+PiAtCV9faW50ZWxfcnVudGltZV9wbV9wdXQoaTkxNSwgLTEsIHRydWUp Owo+Pj4gKwlfX2ludGVsX3J1bnRpbWVfcG1fcHV0KCZpOTE1LT5ydW50aW1lX3BtLCAtMSwgdHJ1 ZSk7Cj4+PiAgIH0KPj4+ICAgCj4+PiAgICNpZiBJU19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9E RUJVR19SVU5USU1FX1BNKQo+Pj4gQEAgLTUxNTIsNyArNTEzOSw3IEBAIHZvaWQgaW50ZWxfcnVu dGltZV9wbV9wdXRfdW5jaGVja2VkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+Pj4g ICAgKi8KPj4+ICAgdm9pZCBpbnRlbF9ydW50aW1lX3BtX3B1dChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSwgaW50ZWxfd2FrZXJlZl90IHdyZWYpCj4+PiAgIHsKPj4+IC0JX19pbnRlbF9y dW50aW1lX3BtX3B1dChpOTE1LCB3cmVmLCB0cnVlKTsKPj4+ICsJX19pbnRlbF9ydW50aW1lX3Bt X3B1dCgmaTkxNS0+cnVudGltZV9wbSwgd3JlZiwgdHJ1ZSk7Cj4+PiAgIH0KPj4+ICAgI2VuZGlm Cj4+PiAgIAo+Pj4gQEAgLTUxNjgsOCArNTE1NSw4IEBAIHZvaWQgaW50ZWxfcnVudGltZV9wbV9w dXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIGludGVsX3dha2VyZWZfdCB3cmVmKQo+ Pj4gICAgKi8KPj4+ICAgdm9pZCBpbnRlbF9ydW50aW1lX3BtX2VuYWJsZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNSkKPj4+ICAgewo+Pj4gLQlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGk5 MTUtPmRybS5wZGV2Owo+Pj4gLQlzdHJ1Y3QgZGV2aWNlICprZGV2ID0gJnBkZXYtPmRldjsKPj4+ ICsJc3RydWN0IGk5MTVfcnVudGltZV9wbSAqcnBtID0gJmk5MTUtPnJ1bnRpbWVfcG07Cj4+PiAr CXN0cnVjdCBkZXZpY2UgKmtkZXYgPSBycG0tPmtkZXY7Cj4+PiAgIAo+Pj4gICAJLyoKPj4+ICAg CSAqIERpc2FibGUgdGhlIHN5c3RlbSBzdXNwZW5kIGRpcmVjdCBjb21wbGV0ZSBvcHRpbWl6YXRp b24sIHdoaWNoIGNhbgo+Pj4gQEAgLTUxOTAsNyArNTE3Nyw3IEBAIHZvaWQgaW50ZWxfcnVudGlt ZV9wbV9lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4+PiAgIAkgKiBzbyB0 aGUgZHJpdmVyJ3Mgb3duIFJQTSByZWZlcmVuY2UgdHJhY2tpbmcgYXNzZXJ0cyBhbHNvIHdvcmsg b24KPj4+ICAgCSAqIHBsYXRmb3JtcyB3aXRob3V0IFJQTSBzdXBwb3J0Lgo+Pj4gICAJICovCj4+ PiAtCWlmICghSEFTX1JVTlRJTUVfUE0oaTkxNSkpIHsKPj4+ICsJaWYgKCFycG0tPmF2YWlsYWJs ZSkgewo+Pj4gICAJCWludCByZXQ7Cj4+PiAgIAo+Pj4gICAJCXBtX3J1bnRpbWVfZG9udF91c2Vf YXV0b3N1c3BlbmQoa2Rldik7Cj4+PiBAQCAtNTIxMCw4ICs1MTk3LDggQEAgdm9pZCBpbnRlbF9y dW50aW1lX3BtX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPj4+ICAgCj4+ PiAgIHZvaWQgaW50ZWxfcnVudGltZV9wbV9kaXNhYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1KQo+Pj4gICB7Cj4+PiAtCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gaTkxNS0+ZHJtLnBk ZXY7Cj4+PiAtCXN0cnVjdCBkZXZpY2UgKmtkZXYgPSAmcGRldi0+ZGV2Owo+Pj4gKwlzdHJ1Y3Qg aTkxNV9ydW50aW1lX3BtICpycG0gPSAmaTkxNS0+cnVudGltZV9wbTsKPj4+ICsJc3RydWN0IGRl dmljZSAqa2RldiA9IHJwbS0+a2RldjsKPj4+ICAgCj4+PiAgIAkvKiBUcmFuc2ZlciBycG0gb3du ZXJzaGlwIGJhY2sgdG8gY29yZSAqLwo+Pj4gICAJV0FSTihwbV9ydW50aW1lX2dldF9zeW5jKGtk ZXYpIDwgMCwKPj4+IEBAIC01MjE5LDcgKzUyMDYsNyBAQCB2b2lkIGludGVsX3J1bnRpbWVfcG1f ZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPj4+ICAgCj4+PiAgIAlwbV9y dW50aW1lX2RvbnRfdXNlX2F1dG9zdXNwZW5kKGtkZXYpOwo+Pj4gICAKPj4+IC0JaWYgKCFIQVNf UlVOVElNRV9QTShpOTE1KSkKPj4+ICsJaWYgKCFycG0tPmF2YWlsYWJsZSkKPj4+ICAgCQlwbV9y dW50aW1lX3B1dChrZGV2KTsKPj4+ICAgfQo+Pj4gICAKPj4+IEBAIC01MjMzLDEwICs1MjIwLDE3 IEBAIHZvaWQgaW50ZWxfcnVudGltZV9wbV9jbGVhbnVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1KQo+Pj4gICAJICAgICBpbnRlbF9ycG1fcmF3X3dha2VyZWZfY291bnQoY291bnQpLAo+ Pj4gICAJICAgICBpbnRlbF9ycG1fd2FrZWxvY2tfY291bnQoY291bnQpKTsKPj4+ICAgCj4+PiAt CXVudHJhY2tfYWxsX2ludGVsX3J1bnRpbWVfcG1fd2FrZXJlZnMoaTkxNSk7Cj4+PiArCXVudHJh Y2tfYWxsX2ludGVsX3J1bnRpbWVfcG1fd2FrZXJlZnMocnBtKTsKPj4+ICAgfQo+Pj4gICAKPj4+ ICAgdm9pZCBpbnRlbF9ydW50aW1lX3BtX2luaXRfZWFybHkoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUpCj4+PiAgIHsKPj4+IC0JaW5pdF9pbnRlbF9ydW50aW1lX3BtX3dha2VyZWYoaTkx NSk7Cj4+PiArCXN0cnVjdCBpOTE1X3J1bnRpbWVfcG0gKnJwbSA9ICZpOTE1LT5ydW50aW1lX3Bt Owo+Pj4gKwlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGk5MTUtPmRybS5wZGV2Owo+Pj4gKwlzdHJ1 Y3QgZGV2aWNlICprZGV2ID0gJnBkZXYtPmRldjsKPj4+ICsKPj4+ICsJcnBtLT5rZGV2ID0ga2Rl djsKPj4+ICsJcnBtLT5hdmFpbGFibGUgPSBIQVNfUlVOVElNRV9QTShpOTE1KTsKPj4+ICsKPj4+ ICsJaW5pdF9pbnRlbF9ydW50aW1lX3BtX3dha2VyZWYocnBtKTsKPj4+ICAgfQo+PiAKCi0tIApK YW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgR3JhcGhpY3MgQ2VudGVyCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==