From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH 05/36] drm/i915: Disable preemption and sleeping while using the punit sideband Date: Fri, 16 Mar 2018 14:18:26 +0200 Message-ID: <87a7v8mcx9.fsf@gaia.fi.intel.com> References: <20180314093748.8541-1-chris@chris-wilson.co.uk> <20180314093748.8541-5-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 350AD6EB33 for ; Fri, 16 Mar 2018 12:25:02 +0000 (UTC) In-Reply-To: <20180314093748.8541-5-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org Cc: Hans de Goede , praveen.paneri@intel.com List-Id: intel-gfx@lists.freedesktop.org Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+IHdyaXRlczoKCj4gV2hpbGUg d2UgdGFsayB0byB0aGUgcHVuaXQgb3ZlciBpdHMgc2lkZWJhbmQsIHdlIG5lZWQgdG8gcHJldmVu dCB0aGUgY3B1Cj4gZnJvbSBzbGVlcGluZyBpbiBvcmRlciB0byBwcmV2ZW50IGEgcG90ZW50aWFs IG1hY2hpbmUgaGFuZy4KPgo+IE5vdGUgdGhhdCBieSBpdHNlbGYsIGl0IGFwcGVhcnMgdGhhdCBw bV9xb3NfdXBkYXRlX3JlcXVlc3QgKHZpYQo+IGludGVsX2lkbGUpIGRvZXNuJ3QgcHJvdmlkZSBh IHN1ZmZpY2llbnQgYmFycmllciB0byBlbnN1cmUgdGhhdCBhbGwgY29yZQo+IGFyZSBpbmRlZWQg YXdha2UgKG91dCBvZiBDc3RhdGUpIGFuZCB0aGF0IHRoZSBwYWNrYWdlIGlzIGF3YWtlLiBUbyBk byBzbywKPiB3ZSBuZWVkIHRvIHN1cHBsZW1lbnQgdGhlIHBtX3FvcyB3aXRoIGEgbWFudWFsIHBp bmcgb25fZWFjaF9jcHUuCj4KPiB2MjogUmVzdHJpY3QgdGhlIGhlYXZ5LXdlaWdodCB3YWtldXAg dG8ganVzdCB0aGUgSVNPRl9QT1JUX1BVTklULCB0aGVyZQo+IGlzIGluc3VmZmljaWVudCBldmlk ZW5jZSB0byBpbXBsaWNhdGUgYSB3aWRlciBwcm9ibGVtIGF0bS4gU2ltaWxhcmx5LAo+IHJlc3Ry aWN0IHRoZSB3L2EgdG8gVmFsbGV5dmlldywgYXMgQ2hlcnJ5dmlldyBkb2Vzbid0IGhhdmUgYW4g YW5ncnkgY2FkcmUKPiBvZiB1c2Vycy4KPgo+IFRoZSB3b3JraW5nIHRoZW9yeSwgY291cnRlc3kg b2YgVmlsbGUgYW5kIEhhbnMsIGlzIHRoZSBpc3N1ZSBsaWVzIHdpdGhpbgo+IHRoZSBwb3dlciBk ZWxpdmVyeSBhbmQgc28gaXMgbGlrZWx5IHRvIGJlIHVuaXQgYW5kIGJvYXJkIHNwZWNpZmljIGFu ZAo+IG9jY3VycyB3aGVuIGJvdGggdGhlIHVuaXQvZncgcmVxdWlyZSBleHRyYSBwb3dlciBhdCB0 aGUgc2FtZSB0aW1lIGFzIHRoZQo+IGNwdSBwYWNrYWdlIGlzIGNoYW5naW5nIGl0cyBvd24gcG93 ZXIgc3RhdGUuCj4KPiBCdWd6aWxsYTogaHR0cHM6Ly9idWd6aWxsYS5rZXJuZWwub3JnL3Nob3df YnVnLmNnaT9pZD0xMDkwNTEKClRoaXMgbmVlZHMgdG8gYmUgY2hhbmdlZCB0byBSZWZlcmVuY2Vz OiBhcyB0aGlzIGRvZXNuJ3QgZml4IHRoYXQKYnVnLgoKV2hhdCB3ZSBjb3VsZCB0cnkgaXMgdG8g cGluZyBhbGwgY3B1cyB0byBDMSAob3IgYzApLiBUaGVuCmRvIHRoZSBvcCBhbHdheXMgb24gcGFy dGljdWxhciBjcHUgKGNwdTApIHdoaWxlIG90aGVycyBhcmUgaW4KYzAgKGV2ZW4gZm9yY2libHkg c3Bpbm5pbmcpLgoKU3BpbiBhIGxpdHRsZSB3aGlsZSBvbiB3aG9sZSBwYWNrYWdlIHRvIG1heCBv dXQgcG93ZXIgYW5kCmhvcGVmdWxseSB3YWl0IGVub3VnaCBmb3IgdGhlIHBlYWsgdG8gcGxhdGVh dS4gQW5kIG9ubHkgYWZlciB0aGVuCnByb2NlZWQgd2l0aCB0aGUgcHVuaXQgb3AuIE1vcmUgdm9v ZG9vIG9uIHRvcCBvZiB2b29kb28uCgotTWlrYQoKPiBSZWZlcmVuY2VzOiBodHRwczovL2J1Z3Mu ZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI2NTcKPiBSZWZlcmVuY2VzOiBodHRw czovL2J1Z3ppbGxhLmtlcm5lbC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTI1NQo+IFNpZ25lZC1v ZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IENjOiBNaWth IEt1b3BwYWxhIDxtaWthLmt1b3BwYWxhQGxpbnV4LmludGVsLmNvbT4KPiBDYzogSGFucyBkZSBH b2VkZSA8aGRlZ29lZGVAcmVkaGF0LmNvbT4KPiBDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5z eXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuYyAgICAgICB8ICA2ICsrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o ICAgICAgIHwgIDEgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zaWRlYmFuZC5jIHwg ODkgKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0KPiAgMyBmaWxlcyBjaGFuZ2Vk LCA3NyBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuYwo+IGluZGV4IDAxMjZiMjIyYWI3Zi4uM2QwYjczNTNmYjA5IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5jCj4gQEAgLTkxNCw2ICs5MTQsOSBAQCBzdGF0aWMgaW50IGk5MTVfZHJpdmVy X2luaXRfZWFybHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJc3Bpbl9s b2NrX2luaXQoJmRldl9wcml2LT51bmNvcmUubG9jayk7Cj4gIAo+ICAJbXV0ZXhfaW5pdCgmZGV2 X3ByaXYtPnNiX2xvY2spOwo+ICsJcG1fcW9zX2FkZF9yZXF1ZXN0KCZkZXZfcHJpdi0+c2JfcW9z LAo+ICsJCQkgICBQTV9RT1NfQ1BVX0RNQV9MQVRFTkNZLCBQTV9RT1NfREVGQVVMVF9WQUxVRSk7 Cj4gKwo+ICAJbXV0ZXhfaW5pdCgmZGV2X3ByaXYtPm1vZGVzZXRfcmVzdG9yZV9sb2NrKTsKPiAg CW11dGV4X2luaXQoJmRldl9wcml2LT5hdl9tdXRleCk7Cj4gIAltdXRleF9pbml0KCZkZXZfcHJp di0+d20ud21fbXV0ZXgpOwo+IEBAIC05NjUsNiArOTY4LDkgQEAgc3RhdGljIHZvaWQgaTkxNV9k cml2ZXJfY2xlYW51cF9lYXJseShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4g IAlpbnRlbF9pcnFfZmluaShkZXZfcHJpdik7Cj4gIAlpOTE1X3dvcmtxdWV1ZXNfY2xlYW51cChk ZXZfcHJpdik7Cj4gIAlpOTE1X2VuZ2luZXNfY2xlYW51cChkZXZfcHJpdik7Cj4gKwo+ICsJcG1f cW9zX3JlbW92ZV9yZXF1ZXN0KCZkZXZfcHJpdi0+c2JfcW9zKTsKPiArCW11dGV4X2Rlc3Ryb3ko JmRldl9wcml2LT5zYl9sb2NrKTsKPiAgfQo+ICAKPiAgc3RhdGljIGludCBpOTE1X21taW9fc2V0 dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaAo+IGluZGV4IDc0YjBlOWQ4ZmY2Mi4uN2JlNjFlNzI2YTc5IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCj4gQEAgLTE2MzYsNiArMTYzNiw3IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlIHsKPiAgCj4gIAkvKiBTaWRlYmFuZCBtYWlsYm94IHByb3RlY3Rpb24gKi8KPiAgCXN0cnVj dCBtdXRleCBzYl9sb2NrOwo+ICsJc3RydWN0IHBtX3Fvc19yZXF1ZXN0IHNiX3FvczsKPiAgCj4g IAkvKiogQ2FjaGVkIHZhbHVlIG9mIElNUiB0byBhdm9pZCByZWFkcyBpbiB1cGRhdGluZyB0aGUg Yml0ZmllbGQgKi8KPiAgCXVuaW9uIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfc2lkZWJhbmQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3NpZGViYW5k LmMKPiBpbmRleCA3NWM4NzJiYjhjYzkuLmQ1NmVkYTMzNzM0ZSAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zaWRlYmFuZC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfc2lkZWJhbmQuYwo+IEBAIC0yMiw2ICsyMiw4IEBACj4gICAqCj4gICAqLwo+ ICAKPiArI2luY2x1ZGUgPGFzbS9pb3NmX21iaS5oPgo+ICsKPiAgI2luY2x1ZGUgImk5MTVfZHJ2 LmgiCj4gICNpbmNsdWRlICJpbnRlbF9kcnYuaCIKPiAgCj4gQEAgLTM5LDE4ICs0MSw0OCBAQAo+ ICAvKiBQcml2YXRlIHJlZ2lzdGVyIHdyaXRlLCBkb3VibGUtd29yZCBhZGRyZXNzaW5nLCBub24t cG9zdGVkICovCj4gICNkZWZpbmUgU0JfQ1JXUkRBX05QCTB4MDcKPiAgCj4gLXN0YXRpYyBpbnQg dmx2X3NpZGViYW5kX3J3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIGRl dmZuLAo+IC0JCQkgICB1MzIgcG9ydCwgdTMyIG9wY29kZSwgdTMyIGFkZHIsIHUzMiAqdmFsKQo+ ICtzdGF0aWMgdm9pZCBwaW5nKHZvaWQgKmluZm8pCj4gIHsKPiAtCXUzMiBjbWQsIGJlID0gMHhm LCBiYXIgPSAwOwo+IC0JYm9vbCBpc19yZWFkID0gKG9wY29kZSA9PSBTQl9NUkRfTlAgfHwgb3Bj b2RlID09IFNCX0NSUkREQV9OUCk7Cj4gK30KPiAgCj4gLQljbWQgPSAoZGV2Zm4gPDwgSU9TRl9E RVZGTl9TSElGVCkgfCAob3Bjb2RlIDw8IElPU0ZfT1BDT0RFX1NISUZUKSB8Cj4gLQkJKHBvcnQg PDwgSU9TRl9QT1JUX1NISUZUKSB8IChiZSA8PCBJT1NGX0JZVEVfRU5BQkxFU19TSElGVCkgfAo+ IC0JCShiYXIgPDwgSU9TRl9CQVJfU0hJRlQpOwo+ICtzdGF0aWMgdm9pZCBfX3Zsdl9wdW5pdF9n ZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICt7Cj4gKwlpb3NmX21iaV9w dW5pdF9hY3F1aXJlKCk7Cj4gIAo+IC0JV0FSTl9PTighbXV0ZXhfaXNfbG9ja2VkKCZkZXZfcHJp di0+c2JfbG9jaykpOwo+ICsJLyoKPiArCSAqIFByZXZlbnQgdGhlIGNwdSBmcm9tIHNsZWVwaW5n IHdoaWxlIHdlIHVzZSB0aGlzIHNpZGViYW5kLCBvdGhlcndpc2UKPiArCSAqIHRoZSBwdW5pdCBt YXkgY2F1c2UgYSBtYWNoaW5lIGhhbmcuIFRoZSBpc3N1ZSBhcHBlYXJzIHRvIGJlIGlzb2xhdGVk Cj4gKwkgKiB3aXRoIGNoYW5naW5nIHRoZSBwb3dlciBzdGF0ZSBvZiB0aGUgQ1BVIHBhY2thZ2Ug d2hpbGUgY2hhbmdpbmcKPiArCSAqIHRoZSBwb3dlciBzdGF0ZSB2aWEgdGhlIHB1bml0LCBhbmQg d2UgaGF2ZSBvbmx5IG9ic2VydmVkIGl0Cj4gKwkgKiByZWxpYWJseSBvbiA0LWNvcmUgQmF5dGFp bCBzeXN0ZW1zIHN1Z2dlc3RpbmcgdGhlIGlzc3VlIGlzIGluIHRoZQo+ICsJICogcG93ZXIgZGVs aXZlcnkgbWVjaGFuaXNtIGFuZCBsaWtlbHkgdG8gYmUgYmUgYm9hcmQvZnVuY3Rpb24KPiArCSAq IHNwZWNpZmljLiBIZW5jZSB3ZSBwcmVzdW1lIHRoZSB3b3JrYXJvdW5kIG5lZWRzIG9ubHkgYmUg YXBwbGllZAo+ICsJICogdG8gdGhlIFZhbGxleXZpZXcgUC11bml0IGFuZCBub3QgYWxsIHNpZGVi YW5kIGNvbW11bmljYXRpb25zLgo+ICsJICovCj4gKwlpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJp dikpIHsKPiArCQlwbV9xb3NfdXBkYXRlX3JlcXVlc3QoJmRldl9wcml2LT5zYl9xb3MsIDApOwo+ ICsJCW9uX2VhY2hfY3B1KHBpbmcsIE5VTEwsIDEpOwo+ICsJfQo+ICt9Cj4gKwo+ICtzdGF0aWMg dm9pZCBfX3Zsdl9wdW5pdF9wdXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ ICt7Cj4gKwlpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikpCj4gKwkJcG1fcW9zX3VwZGF0ZV9y ZXF1ZXN0KCZkZXZfcHJpdi0+c2JfcW9zLCBQTV9RT1NfREVGQVVMVF9WQUxVRSk7Cj4gIAo+ICsJ aW9zZl9tYmlfcHVuaXRfcmVsZWFzZSgpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IHZsdl9zaWRl YmFuZF9ydyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gKwkJCSAgIHUzMiBk ZXZmbiwgdTMyIHBvcnQsIHUzMiBvcGNvZGUsCj4gKwkJCSAgIHUzMiBhZGRyLCB1MzIgKnZhbCkK PiArewo+ICsJY29uc3QgYm9vbCBpc19yZWFkID0gKG9wY29kZSA9PSBTQl9NUkRfTlAgfHwgb3Bj b2RlID09IFNCX0NSUkREQV9OUCk7Cj4gKwlpbnQgZXJyOwo+ICsKPiArCWxvY2tkZXBfYXNzZXJ0 X2hlbGQoJmRldl9wcml2LT5zYl9sb2NrKTsKPiArCj4gKwkvKiBGbHVzaCB0aGUgcHJldmlvdXMg Y29tbXMsIGp1c3QgaW4gY2FzZSBpdCBmYWlsZWQgbGFzdCB0aW1lLiAqLwo+ICAJaWYgKGludGVs X3dhaXRfZm9yX3JlZ2lzdGVyKGRldl9wcml2LAo+ICAJCQkJICAgIFZMVl9JT1NGX0RPT1JCRUxM X1JFUSwgSU9TRl9TQl9CVVNZLCAwLAo+ICAJCQkJICAgIDUpKSB7Cj4gQEAgLTU5LDIyICs5MSwz MyBAQCBzdGF0aWMgaW50IHZsdl9zaWRlYmFuZF9ydyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsIHUzMiBkZXZmbiwKPiAgCQlyZXR1cm4gLUVBR0FJTjsKPiAgCX0KPiAgCj4gLQlJ OTE1X1dSSVRFKFZMVl9JT1NGX0FERFIsIGFkZHIpOwo+IC0JSTkxNV9XUklURShWTFZfSU9TRl9E QVRBLCBpc19yZWFkID8gMCA6ICp2YWwpOwo+IC0JSTkxNV9XUklURShWTFZfSU9TRl9ET09SQkVM TF9SRVEsIGNtZCk7Cj4gLQo+IC0JaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKGRldl9wcml2 LAo+IC0JCQkJICAgIFZMVl9JT1NGX0RPT1JCRUxMX1JFUSwgSU9TRl9TQl9CVVNZLCAwLAo+IC0J CQkJICAgIDUpKSB7Cj4gKwlwcmVlbXB0X2Rpc2FibGUoKTsKPiArCj4gKwlJOTE1X1dSSVRFX0ZX KFZMVl9JT1NGX0FERFIsIGFkZHIpOwo+ICsJSTkxNV9XUklURV9GVyhWTFZfSU9TRl9EQVRBLCBp c19yZWFkID8gMCA6ICp2YWwpOwo+ICsJSTkxNV9XUklURV9GVyhWTFZfSU9TRl9ET09SQkVMTF9S RVEsCj4gKwkJICAgICAgKGRldmZuIDw8IElPU0ZfREVWRk5fU0hJRlQpIHwKPiArCQkgICAgICAo b3Bjb2RlIDw8IElPU0ZfT1BDT0RFX1NISUZUKSB8Cj4gKwkJICAgICAgKHBvcnQgPDwgSU9TRl9Q T1JUX1NISUZUKSB8Cj4gKwkJICAgICAgKDB4ZiA8PCBJT1NGX0JZVEVfRU5BQkxFU19TSElGVCkg fAo+ICsJCSAgICAgICgwIDw8IElPU0ZfQkFSX1NISUZUKSB8Cj4gKwkJICAgICAgSU9TRl9TQl9C VVNZKTsKPiArCj4gKwlpZiAoX19pbnRlbF93YWl0X2Zvcl9yZWdpc3Rlcl9mdyhkZXZfcHJpdiwK PiArCQkJCQkgVkxWX0lPU0ZfRE9PUkJFTExfUkVRLCBJT1NGX1NCX0JVU1ksIDAsCj4gKwkJCQkJ IDEwMDAwLCAwLCBOVUxMKSA9PSAwKSB7Cj4gKwkJaWYgKGlzX3JlYWQpCj4gKwkJCSp2YWwgPSBJ OTE1X1JFQURfRlcoVkxWX0lPU0ZfREFUQSk7Cj4gKwkJZXJyID0gMDsKPiArCX0gZWxzZSB7Cj4g IAkJRFJNX0RFQlVHX0RSSVZFUigiSU9TRiBzaWRlYmFuZCBmaW5pc2ggd2FpdCAoJXMpIHRpbWVk IG91dFxuIiwKPiAgCQkJCSBpc19yZWFkID8gInJlYWQiIDogIndyaXRlIik7Cj4gLQkJcmV0dXJu IC1FVElNRURPVVQ7Cj4gKwkJZXJyID0gLUVUSU1FRE9VVDsKPiAgCX0KPiAgCj4gLQlpZiAoaXNf cmVhZCkKPiAtCQkqdmFsID0gSTkxNV9SRUFEKFZMVl9JT1NGX0RBVEEpOwo+ICsJcHJlZW1wdF9l bmFibGUoKTsKPiAgCj4gLQlyZXR1cm4gMDsKPiArCXJldHVybiBlcnI7Cj4gIH0KPiAgCj4gIHUz MiB2bHZfcHVuaXRfcmVhZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBh ZGRyKQo+IEBAIC04NCw4ICsxMjcsMTIgQEAgdTMyIHZsdl9wdW5pdF9yZWFkKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIGFkZHIpCj4gIAlXQVJOX09OKCFtdXRleF9pc19s b2NrZWQoJmRldl9wcml2LT5wY3VfbG9jaykpOwo+ICAKPiAgCW11dGV4X2xvY2soJmRldl9wcml2 LT5zYl9sb2NrKTsKPiArCV9fdmx2X3B1bml0X2dldChkZXZfcHJpdik7Cj4gKwo+ICAJdmx2X3Np ZGViYW5kX3J3KGRldl9wcml2LCBQQ0lfREVWRk4oMCwgMCksIElPU0ZfUE9SVF9QVU5JVCwKPiAg CQkJU0JfQ1JSRERBX05QLCBhZGRyLCAmdmFsKTsKPiArCj4gKwlfX3Zsdl9wdW5pdF9wdXQoZGV2 X3ByaXYpOwo+ICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+c2JfbG9jayk7Cj4gIAo+ICAJcmV0 dXJuIHZhbDsKPiBAQCAtOTgsOCArMTQ1LDEyIEBAIGludCB2bHZfcHVuaXRfd3JpdGUoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgYWRkciwgdTMyIHZhbCkKPiAgCVdBUk5f T04oIW11dGV4X2lzX2xvY2tlZCgmZGV2X3ByaXYtPnBjdV9sb2NrKSk7Cj4gIAo+ICAJbXV0ZXhf bG9jaygmZGV2X3ByaXYtPnNiX2xvY2spOwo+ICsJX192bHZfcHVuaXRfZ2V0KGRldl9wcml2KTsK PiArCj4gIAllcnIgPSB2bHZfc2lkZWJhbmRfcncoZGV2X3ByaXYsIFBDSV9ERVZGTigwLCAwKSwg SU9TRl9QT1JUX1BVTklULAo+ICAJCQkgICAgICBTQl9DUldSREFfTlAsIGFkZHIsICZ2YWwpOwo+ ICsKPiArCV9fdmx2X3B1bml0X3B1dChkZXZfcHJpdik7Cj4gIAltdXRleF91bmxvY2soJmRldl9w cml2LT5zYl9sb2NrKTsKPiAgCj4gIAlyZXR1cm4gZXJyOwo+IC0tIAo+IDIuMTYuMgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK