From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH v2] drm/i915: Report the failure to write to the punit Date: Thu, 26 Jan 2017 15:25:25 +0200 Message-ID: <8760l29cmy.fsf@gaia.fi.intel.com> References: <20170125134808.6152-1-chris@chris-wilson.co.uk> <20170126101919.13211-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 7770C6EB7B for ; Thu, 26 Jan 2017 13:26:09 +0000 (UTC) In-Reply-To: <20170126101919.13211-1-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 List-Id: intel-gfx@lists.freedesktop.org Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+IHdyaXRlczoKCj4gVGhlIHdy aXRlIHRvIHRoZSBwdW5pdCBtYXkgZmFpbCwgc28gcHJvcGFnYXRlIHRoZSBlcnJvciBjb2RlIGJh Y2sgdG8gaXRzCj4gY2FsbGVycy4gT2YgcGFydGljdWxhciBpbnRlcmVzdCBhcmUgdGhlIFJQUyB3 cml0ZXMsIHNvIGFkZCBhcHByb3ByaWF0ZQo+IHVzZXIgZXJyb3IgY29kZXMgYW5kIGxvZ2dpbmcu Cj4KPiB2MjogQWRkIERFQlVHIGZvciBmYWlsZWQgZnJlcXVlbmN5IGNoYW5nZXMgZHVyaW5nIFJQ Uy4KPgo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNv LnVrPgoKUmV2aWV3ZWQtYnk6IE1pa2EgS3VvcHBhbGEgPG1pa2Eua3VvcHBhbGFAaW50ZWwuY29t PgoKPiBDYzogTWlrYSBLdW9wcGFsYSA8bWlrYS5rdW9wcGFsYUBpbnRlbC5jb20+Cj4gLS0tCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICAgfCAgNiArKystLQo+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgIHwgIDQgKystLQo+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2lycS5jICAgICAgIHwgIDUgKysrLQo+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3N5c2ZzLmMgICAgIHwgIDkgKysrKy0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9wbS5jICAgICAgIHwgNDUgKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc2lkZWJhbmQuYyB8IDEwICsrKysrLS0t Cj4gIDYgZmlsZXMgY2hhbmdlZCwgNTMgaW5zZXJ0aW9ucygrKSwgMjYgZGVsZXRpb25zKC0pCj4K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+IGluZGV4IGMwNDFhMmFlOWFmMC4uYWVi ZDQ1NmVkZWMxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdm cy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBAQCAtNDI3 Miw3ICs0MjcyLDggQEAgaTkxNV9tYXhfZnJlcV9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbCkKPiAg Cj4gIAlkZXZfcHJpdi0+cnBzLm1heF9mcmVxX3NvZnRsaW1pdCA9IHZhbDsKPiAgCj4gLQlpbnRl bF9zZXRfcnBzKGRldl9wcml2LCB2YWwpOwo+ICsJaWYgKGludGVsX3NldF9ycHMoZGV2X3ByaXYs IHZhbCkpCj4gKwkJRFJNX0RFQlVHX0RSSVZFUigiZmFpbGVkIHRvIHVwZGF0ZSBSUFMgdG8gbmV3 IHNvZnRsaW1pdFxuIik7Cj4gIAo+ICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xv Y2spOwo+ICAKPiBAQCAtNDMyNyw3ICs0MzI4LDggQEAgaTkxNV9taW5fZnJlcV9zZXQodm9pZCAq ZGF0YSwgdTY0IHZhbCkKPiAgCj4gIAlkZXZfcHJpdi0+cnBzLm1pbl9mcmVxX3NvZnRsaW1pdCA9 IHZhbDsKPiAgCj4gLQlpbnRlbF9zZXRfcnBzKGRldl9wcml2LCB2YWwpOwo+ICsJaWYgKGludGVs X3NldF9ycHMoZGV2X3ByaXYsIHZhbCkpCj4gKwkJRFJNX0RFQlVHX0RSSVZFUigiZmFpbGVkIHRv IHVwZGF0ZSBSUFMgdG8gbmV3IHNvZnRsaW1pdFxuIik7Cj4gIAo+ICAJbXV0ZXhfdW5sb2NrKCZk ZXZfcHJpdi0+cnBzLmh3X2xvY2spOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRl eCBlZjVhZjNjN2ExNGEuLjFjNTE0NWQwZTUzZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aAo+IEBAIC0zNzY2LDcgKzM3NjYsNyBAQCBleHRlcm4gdm9pZCBpOTE1X3JlZGlzYWJsZV92Z2Eo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgZXh0ZXJuIHZvaWQgaTkxNV9y ZWRpc2FibGVfdmdhX3Bvd2VyX29uKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7 Cj4gIGV4dGVybiBib29sIGlyb25sYWtlX3NldF9kcnBzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwgdTggdmFsKTsKPiAgZXh0ZXJuIHZvaWQgaW50ZWxfaW5pdF9wY2hfcmVmY2xr KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gLWV4dGVybiB2b2lkIGludGVs X3NldF9ycHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1OCB2YWwpOwo+ICtl eHRlcm4gaW50IGludGVsX3NldF9ycHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LCB1OCB2YWwpOwo+ICBleHRlcm4gYm9vbCBpbnRlbF9zZXRfbWVtb3J5X2N4c3Ioc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCQkJICBib29sIGVuYWJsZSk7Cj4gIAo+IEBA IC0zNzkyLDcgKzM3OTIsNyBAQCBpbnQgc2tsX3Bjb2RlX3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgbWJveCwgdTMyIHJlcXVlc3QsCj4gIAo+ICAvKiBpbnRl bF9zaWRlYmFuZC5jICovCj4gIHUzMiB2bHZfcHVuaXRfcmVhZChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsIHUzMiBhZGRyKTsKPiAtdm9pZCB2bHZfcHVuaXRfd3JpdGUoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgYWRkciwgdTMyIHZhbCk7Cj4gK2ludCB2 bHZfcHVuaXRfd3JpdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgYWRk ciwgdTMyIHZhbCk7Cj4gIHUzMiB2bHZfbmNfcmVhZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsIHU4IGFkZHIpOwo+ICB1MzIgdmx2X2lvc2Zfc2JfcmVhZChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHU4IHBvcnQsIHUzMiByZWcpOwo+ICB2b2lkIHZsdl9pb3Nm X3NiX3dyaXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTggcG9ydCwgdTMy IHJlZywgdTMyIHZhbCk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf aXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gaW5kZXggNTk4NjU2NTRm NTUyLi4xNDViZWUwYWE1N2QgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9pcnEuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiBAQCAtMTIz NCw3ICsxMjM0LDEwIEBAIHN0YXRpYyB2b2lkIGdlbjZfcG1fcnBzX3dvcmsoc3RydWN0IHdvcmtf c3RydWN0ICp3b3JrKQo+ICAJbmV3X2RlbGF5ICs9IGFkajsKPiAgCW5ld19kZWxheSA9IGNsYW1w X3QoaW50LCBuZXdfZGVsYXksIG1pbiwgbWF4KTsKPiAgCj4gLQlpbnRlbF9zZXRfcnBzKGRldl9w cml2LCBuZXdfZGVsYXkpOwo+ICsJaWYgKGludGVsX3NldF9ycHMoZGV2X3ByaXYsIG5ld19kZWxh eSkpIHsKPiArCQlEUk1fREVCVUdfRFJJVkVSKCJGYWlsZWQgdG8gc2V0IG5ldyBHUFUgZnJlcXVl bmN5XG4iKTsKPiArCQlkZXZfcHJpdi0+cnBzLmxhc3RfYWRqID0gMDsKPiArCX0KPiAgCj4gIAlt dXRleF91bmxvY2soJmRldl9wcml2LT5ycHMuaHdfbG9jayk7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zeXNmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9zeXNmcy5jCj4gaW5kZXggMzc2YWM5NTdjZDFjLi5hNzIxZmYxMTYxMDEgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zeXNmcy5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9zeXNmcy5jCj4gQEAgLTM5NSwxMyArMzk1LDEzIEBAIHN0YXRpYyBz c2l6ZV90IGd0X21heF9mcmVxX21oel9zdG9yZShzdHJ1Y3QgZGV2aWNlICprZGV2LAo+ICAJLyog V2Ugc3RpbGwgbmVlZCAqX3NldF9ycHMgdG8gcHJvY2VzcyB0aGUgbmV3IG1heF9kZWxheSBhbmQK PiAgCSAqIHVwZGF0ZSB0aGUgaW50ZXJydXB0IGxpbWl0cyBhbmQgUE1JTlRSTVNLIGV2ZW4gdGhv dWdoCj4gIAkgKiBmcmVxdWVuY3kgcmVxdWVzdCBtYXkgYmUgdW5jaGFuZ2VkLiAqLwo+IC0JaW50 ZWxfc2V0X3JwcyhkZXZfcHJpdiwgdmFsKTsKPiArCXJldCA9IGludGVsX3NldF9ycHMoZGV2X3By aXYsIHZhbCk7Cj4gIAo+ICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwo+ ICAKPiAgCWludGVsX3J1bnRpbWVfcG1fcHV0KGRldl9wcml2KTsKPiAgCj4gLQlyZXR1cm4gY291 bnQ7Cj4gKwlyZXR1cm4gcmV0ID86IGNvdW50Owo+ICB9Cj4gIAo+ICBzdGF0aWMgc3NpemVfdCBn dF9taW5fZnJlcV9taHpfc2hvdyhzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0 dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQo+IEBAIC00NDgsMTQgKzQ0OCwxMyBAQCBzdGF0aWMg c3NpemVfdCBndF9taW5fZnJlcV9taHpfc3RvcmUoc3RydWN0IGRldmljZSAqa2RldiwKPiAgCS8q IFdlIHN0aWxsIG5lZWQgKl9zZXRfcnBzIHRvIHByb2Nlc3MgdGhlIG5ldyBtaW5fZGVsYXkgYW5k Cj4gIAkgKiB1cGRhdGUgdGhlIGludGVycnVwdCBsaW1pdHMgYW5kIFBNSU5UUk1TSyBldmVuIHRo b3VnaAo+ICAJICogZnJlcXVlbmN5IHJlcXVlc3QgbWF5IGJlIHVuY2hhbmdlZC4gKi8KPiAtCWlu dGVsX3NldF9ycHMoZGV2X3ByaXYsIHZhbCk7Cj4gKwlyZXQgPSBpbnRlbF9zZXRfcnBzKGRldl9w cml2LCB2YWwpOwo+ICAKPiAgCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsK PiAgCj4gIAlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdik7Cj4gIAo+IC0JcmV0dXJuIGNv dW50Owo+IC0KPiArCXJldHVybiByZXQgPzogY291bnQ7Cj4gIH0KPiAgCj4gIHN0YXRpYyBERVZJ Q0VfQVRUUihndF9hY3RfZnJlcV9taHosIFNfSVJVR08sIGd0X2FjdF9mcmVxX21oel9zaG93LCBO VUxMKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiBpbmRleCAyNWMyNjUyZTFlMTEuLjc5ODc4 N2M1ZGY5ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+IEBAIC00OTMzLDcgKzQ5MzMs NyBAQCBzdGF0aWMgdTMyIGdlbjZfcnBzX3BtX21hc2soc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LCB1OCB2YWwpCj4gIC8qIGdlbjZfc2V0X3JwcyBpcyBjYWxsZWQgdG8gdXBkYXRl IHRoZSBmcmVxdWVuY3kgcmVxdWVzdCwgYnV0IHNob3VsZCBhbHNvIGJlCj4gICAqIGNhbGxlZCB3 aGVuIHRoZSByYW5nZSAobWluX2RlbGF5IGFuZCBtYXhfZGVsYXkpIGlzIG1vZGlmaWVkIHNvIHRo YXQgd2UgY2FuCj4gICAqIHVwZGF0ZSB0aGUgR0VONl9SUF9JTlRFUlJVUFRfTElNSVRTIHJlZ2lz dGVyIGFjY29yZGluZ2x5LiAqLwo+IC1zdGF0aWMgdm9pZCBnZW42X3NldF9ycHMoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1OCB2YWwpCj4gK3N0YXRpYyBpbnQgZ2VuNl9zZXRf cnBzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTggdmFsKQo+ICB7Cj4gIAlX QVJOX09OKCFtdXRleF9pc19sb2NrZWQoJmRldl9wcml2LT5ycHMuaHdfbG9jaykpOwo+ICAJV0FS Tl9PTih2YWwgPiBkZXZfcHJpdi0+cnBzLm1heF9mcmVxKTsKPiBAQCAtNDk2OCwxMCArNDk2OCwx NCBAQCBzdGF0aWMgdm9pZCBnZW42X3NldF9ycHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LCB1OCB2YWwpCj4gIAo+ICAJZGV2X3ByaXYtPnJwcy5jdXJfZnJlcSA9IHZhbDsKPiAg CXRyYWNlX2ludGVsX2dwdV9mcmVxX2NoYW5nZShpbnRlbF9ncHVfZnJlcShkZXZfcHJpdiwgdmFs KSk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIHZhbGxleXZpZXdf c2V0X3JwcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHU4IHZhbCkKPiArc3Rh dGljIGludCB2YWxsZXl2aWV3X3NldF9ycHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LCB1OCB2YWwpCj4gIHsKPiArCWludCBlcnI7Cj4gKwo+ICAJV0FSTl9PTighbXV0ZXhfaXNf bG9ja2VkKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spKTsKPiAgCVdBUk5fT04odmFsID4gZGV2X3By aXYtPnJwcy5tYXhfZnJlcSk7Cj4gIAlXQVJOX09OKHZhbCA8IGRldl9wcml2LT5ycHMubWluX2Zy ZXEpOwo+IEBAIC00OTgzLDEzICs0OTg3LDE4IEBAIHN0YXRpYyB2b2lkIHZhbGxleXZpZXdfc2V0 X3JwcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHU4IHZhbCkKPiAgCUk5MTVf V1JJVEUoR0VONl9QTUlOVFJNU0ssIGdlbjZfcnBzX3BtX21hc2soZGV2X3ByaXYsIHZhbCkpOwo+ ICAKPiAgCWlmICh2YWwgIT0gZGV2X3ByaXYtPnJwcy5jdXJfZnJlcSkgewo+IC0JCXZsdl9wdW5p dF93cml0ZShkZXZfcHJpdiwgUFVOSVRfUkVHX0dQVV9GUkVRX1JFUSwgdmFsKTsKPiArCQllcnIg PSB2bHZfcHVuaXRfd3JpdGUoZGV2X3ByaXYsIFBVTklUX1JFR19HUFVfRlJFUV9SRVEsIHZhbCk7 Cj4gKwkJaWYgKGVycikKPiArCQkJcmV0dXJuIGVycjsKPiArCj4gIAkJaWYgKCFJU19DSEVSUllW SUVXKGRldl9wcml2KSkKPiAgCQkJZ2VuNl9zZXRfcnBzX3RocmVzaG9sZHMoZGV2X3ByaXYsIHZh bCk7Cj4gIAl9Cj4gIAo+ICAJZGV2X3ByaXYtPnJwcy5jdXJfZnJlcSA9IHZhbDsKPiAgCXRyYWNl X2ludGVsX2dwdV9mcmVxX2NoYW5nZShpbnRlbF9ncHVfZnJlcShkZXZfcHJpdiwgdmFsKSk7Cj4g Kwo+ICsJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gIC8qIHZsdl9zZXRfcnBzX2lkbGU6IFNldCB0aGUg ZnJlcXVlbmN5IHRvIGlkbGUsIGlmIEdmeCBjbG9ja3MgYXJlIGRvd24KPiBAQCAtNTAwMiw2ICs1 MDExLDcgQEAgc3RhdGljIHZvaWQgdmFsbGV5dmlld19zZXRfcnBzKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwgdTggdmFsKQo+ICBzdGF0aWMgdm9pZCB2bHZfc2V0X3Jwc19pZGxl KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgewo+ICAJdTMyIHZhbCA9IGRl dl9wcml2LT5ycHMuaWRsZV9mcmVxOwo+ICsJaW50IGVycjsKPiAgCj4gIAlpZiAoZGV2X3ByaXYt PnJwcy5jdXJfZnJlcSA8PSB2YWwpCj4gIAkJcmV0dXJuOwo+IEBAIC01MDE5LDggKzUwMjksMTEg QEAgc3RhdGljIHZvaWQgdmx2X3NldF9ycHNfaWRsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCj4gIAkgKiBwb3dlciB0aGFuIHRoZSByZW5kZXIgcG93ZXJ3ZWxsLgo+ICAJICov Cj4gIAlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2dldChkZXZfcHJpdiwgRk9SQ0VXQUtFX01FRElB KTsKPiAtCXZhbGxleXZpZXdfc2V0X3JwcyhkZXZfcHJpdiwgdmFsKTsKPiArCWVyciA9IHZhbGxl eXZpZXdfc2V0X3JwcyhkZXZfcHJpdiwgdmFsKTsKPiAgCWludGVsX3VuY29yZV9mb3JjZXdha2Vf cHV0KGRldl9wcml2LCBGT1JDRVdBS0VfTUVESUEpOwo+ICsKPiArCWlmIChlcnIpCj4gKwkJRFJN X0VSUk9SKCJGYWlsZWQgdG8gc2V0IFJQUyBmb3IgaWRsZVxuIik7Cj4gIH0KPiAgCj4gIHZvaWQg Z2VuNl9ycHNfYnVzeShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gQEAgLTUw MzUsMTAgKzUwNDgsMTEgQEAgdm9pZCBnZW42X3Jwc19idXN5KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKPiAgCQlnZW42X2VuYWJsZV9ycHNfaW50ZXJydXB0cyhkZXZfcHJpdik7 Cj4gIAo+ICAJCS8qIEVuc3VyZSB3ZSBzdGFydCBhdCB0aGUgdXNlcidzIGRlc2lyZWQgZnJlcXVl bmN5ICovCj4gLQkJaW50ZWxfc2V0X3JwcyhkZXZfcHJpdiwKPiAtCQkJICAgICAgY2xhbXAoZGV2 X3ByaXYtPnJwcy5jdXJfZnJlcSwKPiAtCQkJCSAgICBkZXZfcHJpdi0+cnBzLm1pbl9mcmVxX3Nv ZnRsaW1pdCwKPiAtCQkJCSAgICBkZXZfcHJpdi0+cnBzLm1heF9mcmVxX3NvZnRsaW1pdCkpOwo+ ICsJCWlmIChpbnRlbF9zZXRfcnBzKGRldl9wcml2LAo+ICsJCQkJICBjbGFtcChkZXZfcHJpdi0+ cnBzLmN1cl9mcmVxLAo+ICsJCQkJCWRldl9wcml2LT5ycHMubWluX2ZyZXFfc29mdGxpbWl0LAo+ ICsJCQkJCWRldl9wcml2LT5ycHMubWF4X2ZyZXFfc29mdGxpbWl0KSkpCj4gKwkJCURSTV9ERUJV R19EUklWRVIoIkZhaWxlZCB0byBzZXQgaWRsZSBmcmVxdWVuY3lcbiIpOwo+ICAJfQo+ICAJbXV0 ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwo+ICB9Cj4gQEAgLTUxMDYsMTIgKzUx MjAsMTYgQEAgdm9pZCBnZW42X3Jwc19ib29zdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCj4gIAlzcGluX3VubG9jaygmZGV2X3ByaXYtPnJwcy5jbGllbnRfbG9jayk7Cj4gIH0K PiAgCj4gLXZvaWQgaW50ZWxfc2V0X3JwcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsIHU4IHZhbCkKPiAraW50IGludGVsX3NldF9ycHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LCB1OCB2YWwpCj4gIHsKPiArCWludCBlcnI7Cj4gKwo+ICAJaWYgKElTX1ZBTExF WVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+IC0JCXZhbGxleXZp ZXdfc2V0X3JwcyhkZXZfcHJpdiwgdmFsKTsKPiArCQllcnIgPSB2YWxsZXl2aWV3X3NldF9ycHMo ZGV2X3ByaXYsIHZhbCk7Cj4gIAllbHNlCj4gLQkJZ2VuNl9zZXRfcnBzKGRldl9wcml2LCB2YWwp Owo+ICsJCWVyciA9IGdlbjZfc2V0X3JwcyhkZXZfcHJpdiwgdmFsKTsKPiArCj4gKwlyZXR1cm4g ZXJyOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBnZW45X2Rpc2FibGVfcmM2KHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiBAQCAtNTMxNSw3ICs1MzMzLDcgQEAgc3RhdGljIHZv aWQgZ2VuNl9pbml0X3Jwc19mcmVxdWVuY2llcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIHJlc2V0X3JwcyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCj4gLQkJICAgICAgdm9pZCAoKnNldCkoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKiwgdTgpKQo+ICsJCSAgICAgIGludCAoKnNldCkoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKiwgdTgpKQo+ICB7Cj4gIAl1OCBmcmVxID0gZGV2X3ByaXYtPnJwcy5jdXJfZnJlcTsK PiAgCj4gQEAgLTUzMjMsNyArNTM0MSw4IEBAIHN0YXRpYyB2b2lkIHJlc2V0X3JwcyhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAlkZXZfcHJpdi0+cnBzLnBvd2VyID0gLTE7 Cj4gIAlkZXZfcHJpdi0+cnBzLmN1cl9mcmVxID0gLTE7Cj4gIAo+IC0Jc2V0KGRldl9wcml2LCBm cmVxKTsKPiArCWlmIChzZXQoZGV2X3ByaXYsIGZyZXEpKQo+ICsJCURSTV9FUlJPUigiRmFpbGVk IHRvIHJlc2V0IFJQUyB0byBpbml0aWFsIHZhbHVlc1xuIik7Cj4gIH0KPiAgCj4gIC8qIFNlZSB0 aGUgR2VuOV9HVF9QTV9Qcm9ncmFtbWluZ19HdWlkZSBkb2MgZm9yIHRoZSBiZWxvdyAqLwo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zaWRlYmFuZC5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfc2lkZWJhbmQuYwo+IGluZGV4IDFhODQwYmY5MmVlYS4uZDNk NDlhMDljOTE5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3NpZGVi YW5kLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zaWRlYmFuZC5jCj4gQEAg LTkzLDE0ICs5MywxOCBAQCB1MzIgdmx2X3B1bml0X3JlYWQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LCB1MzIgYWRkcikKPiAgCXJldHVybiB2YWw7Cj4gIH0KPiAgCj4gLXZvaWQg dmx2X3B1bml0X3dyaXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIGFk ZHIsIHUzMiB2YWwpCj4gK2ludCB2bHZfcHVuaXRfd3JpdGUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LCB1MzIgYWRkciwgdTMyIHZhbCkKPiAgewo+ICsJaW50IGVycjsKPiArCj4g IAlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoJmRldl9wcml2LT5ycHMuaHdfbG9jaykpOwo+ICAK PiAgCW11dGV4X2xvY2soJmRldl9wcml2LT5zYl9sb2NrKTsKPiAtCXZsdl9zaWRlYmFuZF9ydyhk ZXZfcHJpdiwgUENJX0RFVkZOKDAsIDApLCBJT1NGX1BPUlRfUFVOSVQsCj4gLQkJCVNCX0NSV1JE QV9OUCwgYWRkciwgJnZhbCk7Cj4gKwllcnIgPSB2bHZfc2lkZWJhbmRfcncoZGV2X3ByaXYsIFBD SV9ERVZGTigwLCAwKSwgSU9TRl9QT1JUX1BVTklULAo+ICsJCQkgICAgICBTQl9DUldSREFfTlAs IGFkZHIsICZ2YWwpOwo+ICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+c2JfbG9jayk7Cj4gKwo+ ICsJcmV0dXJuIGVycjsKPiAgfQo+ICAKPiAgdTMyIHZsdl9idW5pdF9yZWFkKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIHJlZykKPiAtLSAKPiAyLjExLjAKPgo+IF9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeApfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK