From mboxrd@z Thu Jan 1 00:00:00 1970 From: zhoucm1 Subject: Re: [PATCH 7/7] drm/amdgpu: add a fence timeout for the IB tests v2 Date: Thu, 21 Jul 2016 18:24:01 +0800 Message-ID: <5790A2C1.1060204@amd.com> References: <1469095284-2024-1-git-send-email-deathsimple@vodafone.de> <1469095284-2024-7-git-send-email-deathsimple@vodafone.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1469095284-2024-7-git-send-email-deathsimple-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: =?UTF-8?B?Q2hyaXN0aWFuIEvDtm5pZw==?= , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org CgpPbiAyMDE25bm0MDfmnIgyMeaXpSAxODowMSwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToKPiBG cm9tOiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+Cj4KPiAxMG1z IHNob3VsZCBiZSBlbm91Z2ggZm9yIG5vdy4KPgo+IHYyOiBmaXggc29tZSB0eXBvcyBpbiBDSUsg Y29kZQo+Cj4gU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5p Z0BhbWQuY29tPgpSZXZpZXdlZC1ieTogQ2h1bm1pbmcgWmhvdSA8ZGF2aWQxLnpob3VAYW1kLmNv bT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oICAgICB8ICA0 ICsrLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9pYi5jICB8ICA0ICsr Ky0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91dmQuYyB8IDI1ICsrKysr KysrKysrKysrKy0tLS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV91dmQuaCB8ICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmNl LmMgfCAxOCArKysrKysrKysrKy0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV92Y2UuaCB8ICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jaWtf c2RtYS5jICAgfCAxOSArKysrKysrKysrKystLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9nZnhfdjdfMC5jICAgfCAxOSArKysrKysrKysrKystLS0tLS0tCj4gICBkcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjhfMC5jICAgfCAxOSArKysrKysrKysrKystLS0tLS0t Cj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1hX3YyXzQuYyAgfCAxOSArKysrKysr KysrKystLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1hX3YzXzAuYyAg fCAxOSArKysrKysrKysrKystLS0tLS0tCj4gICAxMSBmaWxlcyBjaGFuZ2VkLCA5MyBpbnNlcnRp b25zKCspLCA1NyBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHUuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5o Cj4gaW5kZXggZjcyNGE4Ny4uMDNjM2E4YSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHUuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdS5oCj4gQEAgLTMwNyw3ICszMDcsNyBAQCBzdHJ1Y3QgYW1kZ3B1X3JpbmdfZnVuY3Mgewo+ ICAgCQkJCXVpbnQzMl90IG9hX2Jhc2UsIHVpbnQzMl90IG9hX3NpemUpOwo+ICAgCS8qIHRlc3Rp bmcgZnVuY3Rpb25zICovCj4gICAJaW50ICgqdGVzdF9yaW5nKShzdHJ1Y3QgYW1kZ3B1X3Jpbmcg KnJpbmcpOwo+IC0JaW50ICgqdGVzdF9pYikoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKTsKPiAr CWludCAoKnRlc3RfaWIpKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgbG9uZyB0aW1lb3V0KTsK PiAgIAkvKiBpbnNlcnQgTk9QIHBhY2tldHMgKi8KPiAgIAl2b2lkICgqaW5zZXJ0X25vcCkoc3Ry dWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50MzJfdCBjb3VudCk7Cj4gICAJLyogcGFkIHRoZSBp bmRpcmVjdCBidWZmZXIgdG8gdGhlIG5lY2Vzc2FyeSBudW1iZXIgb2YgZHcgKi8KPiBAQCAtMjI2 MSw3ICsyMjYxLDcgQEAgYW1kZ3B1X2dldF9zZG1hX2luc3RhbmNlKHN0cnVjdCBhbWRncHVfcmlu ZyAqcmluZykKPiAgICNkZWZpbmUgYW1kZ3B1X3ZtX3NldF9wdGVfcGRlKGFkZXYsIGliLCBwZSwg YWRkciwgY291bnQsIGluY3IsIGZsYWdzKSAoKGFkZXYpLT52bV9tYW5hZ2VyLnZtX3B0ZV9mdW5j cy0+c2V0X3B0ZV9wZGUoKGliKSwgKHBlKSwgKGFkZHIpLCAoY291bnQpLCAoaW5jciksIChmbGFn cykpKQo+ICAgI2RlZmluZSBhbWRncHVfcmluZ19wYXJzZV9jcyhyLCBwLCBpYikgKChyKS0+ZnVu Y3MtPnBhcnNlX2NzKChwKSwgKGliKSkpCj4gICAjZGVmaW5lIGFtZGdwdV9yaW5nX3Rlc3Rfcmlu ZyhyKSAociktPmZ1bmNzLT50ZXN0X3JpbmcoKHIpKQo+IC0jZGVmaW5lIGFtZGdwdV9yaW5nX3Rl c3RfaWIocikgKHIpLT5mdW5jcy0+dGVzdF9pYigocikpCj4gKyNkZWZpbmUgYW1kZ3B1X3Jpbmdf dGVzdF9pYihyLCB0KSAociktPmZ1bmNzLT50ZXN0X2liKChyKSwgKHQpKQo+ICAgI2RlZmluZSBh bWRncHVfcmluZ19nZXRfcnB0cihyKSAociktPmZ1bmNzLT5nZXRfcnB0cigocikpCj4gICAjZGVm aW5lIGFtZGdwdV9yaW5nX2dldF93cHRyKHIpIChyKS0+ZnVuY3MtPmdldF93cHRyKChyKSkKPiAg ICNkZWZpbmUgYW1kZ3B1X3Jpbmdfc2V0X3dwdHIocikgKHIpLT5mdW5jcy0+c2V0X3dwdHIoKHIp KQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaWIuYyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9pYi5jCj4gaW5kZXggNDI4ZWJmMy4u MDUwMDYyZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf aWIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9pYi5jCj4gQEAg LTMzLDYgKzMzLDggQEAKPiAgICNpbmNsdWRlICJhbWRncHUuaCIKPiAgICNpbmNsdWRlICJhdG9t LmgiCj4gICAKPiArI2RlZmluZSBBTURHUFVfSUJfVEVTVF9USU1FT1VUCW1zZWNzX3RvX2ppZmZp ZXMoMTApCj4gKwo+ICAgLyoKPiAgICAqIElCCj4gICAgKiBJQnMgKEluZGlyZWN0IEJ1ZmZlcnMp IGFuZCBhcmVhcyBvZiBHUFUgYWNjZXNzaWJsZSBtZW1vcnkgd2hlcmUKPiBAQCAtMjg2LDcgKzI4 OCw3IEBAIGludCBhbWRncHVfaWJfcmluZ190ZXN0cyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl dikKPiAgIAkJaWYgKCFyaW5nIHx8ICFyaW5nLT5yZWFkeSkKPiAgIAkJCWNvbnRpbnVlOwo+ICAg Cj4gLQkJciA9IGFtZGdwdV9yaW5nX3Rlc3RfaWIocmluZyk7Cj4gKwkJciA9IGFtZGdwdV9yaW5n X3Rlc3RfaWIocmluZywgQU1ER1BVX0lCX1RFU1RfVElNRU9VVCk7Cj4gICAJCWlmIChyKSB7Cj4g ICAJCQlyaW5nLT5yZWFkeSA9IGZhbHNlOwo+ICAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91dmQuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV91dmQuYwo+IGluZGV4IGQ4YjQ2MWEuLmFhODBiNzIgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3V2ZC5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3V2ZC5jCj4gQEAgLTExMzksMjkgKzExMzksMzQgQEAgdm9p ZCBhbWRncHVfdXZkX3JpbmdfZW5kX3VzZShzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCj4gICAg Kgo+ICAgICogVGVzdCBpZiB3ZSBjYW4gc3VjY2Vzc2Z1bGx5IGV4ZWN1dGUgYW4gSUIKPiAgICAq Lwo+IC1pbnQgYW1kZ3B1X3V2ZF9yaW5nX3Rlc3RfaWIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5n KQo+ICtpbnQgYW1kZ3B1X3V2ZF9yaW5nX3Rlc3RfaWIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5n LCBsb25nIHRpbWVvdXQpCj4gICB7Cj4gLQlzdHJ1Y3QgZmVuY2UgKmZlbmNlID0gTlVMTDsKPiAt CWludCByOwo+ICsJc3RydWN0IGZlbmNlICpmZW5jZTsKPiArCWxvbmcgcjsKPiAgIAo+ICAgCXIg PSBhbWRncHVfdXZkX2dldF9jcmVhdGVfbXNnKHJpbmcsIDEsIE5VTEwpOwo+ICAgCWlmIChyKSB7 Cj4gLQkJRFJNX0VSUk9SKCJhbWRncHU6IGZhaWxlZCB0byBnZXQgY3JlYXRlIG1zZyAoJWQpLlxu Iiwgcik7Cj4gKwkJRFJNX0VSUk9SKCJhbWRncHU6IGZhaWxlZCB0byBnZXQgY3JlYXRlIG1zZyAo JWxkKS5cbiIsIHIpOwo+ICAgCQlnb3RvIGVycm9yOwo+ICAgCX0KPiAgIAo+ICAgCXIgPSBhbWRn cHVfdXZkX2dldF9kZXN0cm95X21zZyhyaW5nLCAxLCB0cnVlLCAmZmVuY2UpOwo+ICAgCWlmIChy KSB7Cj4gLQkJRFJNX0VSUk9SKCJhbWRncHU6IGZhaWxlZCB0byBnZXQgZGVzdHJveSBpYiAoJWQp LlxuIiwgcik7Cj4gKwkJRFJNX0VSUk9SKCJhbWRncHU6IGZhaWxlZCB0byBnZXQgZGVzdHJveSBp YiAoJWxkKS5cbiIsIHIpOwo+ICAgCQlnb3RvIGVycm9yOwo+ICAgCX0KPiAgIAo+IC0JciA9IGZl bmNlX3dhaXQoZmVuY2UsIGZhbHNlKTsKPiAtCWlmIChyKSB7Cj4gLQkJRFJNX0VSUk9SKCJhbWRn cHU6IGZlbmNlIHdhaXQgZmFpbGVkICglZCkuXG4iLCByKTsKPiAtCQlnb3RvIGVycm9yOwo+ICsJ ciA9IGZlbmNlX3dhaXRfdGltZW91dChmZW5jZSwgZmFsc2UsIHRpbWVvdXQpOwo+ICsJaWYgKHIg PT0gMCkgewo+ICsJCURSTV9FUlJPUigiYW1kZ3B1OiBJQiB0ZXN0IHRpbWVkIG91dC5cbiIpOwo+ ICsJCXIgPSAtRVRJTUVET1VUOwo+ICsJfSBlbHNlIGlmIChyIDwgMCkgewo+ICsJCURSTV9FUlJP UigiYW1kZ3B1OiBmZW5jZSB3YWl0IGZhaWxlZCAoJWxkKS5cbiIsIHIpOwo+ICsJfSBlbHNlIHsK PiArCQlEUk1fSU5GTygiaWIgdGVzdCBvbiByaW5nICVkIHN1Y2NlZWRlZFxuIiwgIHJpbmctPmlk eCk7Cj4gKwkJciA9IDA7Cj4gICAJfQo+IC0JRFJNX0lORk8oImliIHRlc3Qgb24gcmluZyAlZCBz dWNjZWVkZWRcbiIsICByaW5nLT5pZHgpOwo+ICsKPiAgIGVycm9yOgo+ICAgCWZlbmNlX3B1dChm ZW5jZSk7Cj4gICAJcmV0dXJuIHI7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV91dmQuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91 dmQuaAo+IGluZGV4IDIyNDM1OWUuLmM4NTAwMDkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3V2ZC5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X3V2ZC5oCj4gQEAgLTM3LDYgKzM3LDYgQEAgdm9pZCBhbWRncHVfdXZkX2Zy ZWVfaGFuZGxlcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPiAgIGludCBhbWRncHVfdXZk X3JpbmdfcGFyc2VfY3Moc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgKnBhcnNlciwgdWludDMyX3Qg aWJfaWR4KTsKPiAgIHZvaWQgYW1kZ3B1X3V2ZF9yaW5nX2JlZ2luX3VzZShzdHJ1Y3QgYW1kZ3B1 X3JpbmcgKnJpbmcpOwo+ICAgdm9pZCBhbWRncHVfdXZkX3JpbmdfZW5kX3VzZShzdHJ1Y3QgYW1k Z3B1X3JpbmcgKnJpbmcpOwo+IC1pbnQgYW1kZ3B1X3V2ZF9yaW5nX3Rlc3RfaWIoc3RydWN0IGFt ZGdwdV9yaW5nICpyaW5nKTsKPiAraW50IGFtZGdwdV91dmRfcmluZ190ZXN0X2liKHN0cnVjdCBh bWRncHVfcmluZyAqcmluZywgbG9uZyB0aW1lb3V0KTsKPiAgIAo+ICAgI2VuZGlmCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92Y2UuYyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92Y2UuYwo+IGluZGV4IDZiNDlkNDAuLjBhZmE3M2Mg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZjZS5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZjZS5jCj4gQEAgLTg0NCwx MCArODQ0LDEwIEBAIGludCBhbWRncHVfdmNlX3JpbmdfdGVzdF9yaW5nKHN0cnVjdCBhbWRncHVf cmluZyAqcmluZykKPiAgICAqIEByaW5nOiB0aGUgZW5naW5lIHRvIHRlc3Qgb24KPiAgICAqCj4g ICAgKi8KPiAtaW50IGFtZGdwdV92Y2VfcmluZ190ZXN0X2liKHN0cnVjdCBhbWRncHVfcmluZyAq cmluZykKPiAraW50IGFtZGdwdV92Y2VfcmluZ190ZXN0X2liKHN0cnVjdCBhbWRncHVfcmluZyAq cmluZywgbG9uZyB0aW1lb3V0KQo+ICAgewo+ICAgCXN0cnVjdCBmZW5jZSAqZmVuY2UgPSBOVUxM Owo+IC0JaW50IHI7Cj4gKwlsb25nIHI7Cj4gICAKPiAgIAkvKiBza2lwIHZjZSByaW5nMSBpYiB0 ZXN0IGZvciBub3csIHNpbmNlIGl0J3Mgbm90IHJlbGlhYmxlICovCj4gICAJaWYgKHJpbmcgPT0g JnJpbmctPmFkZXYtPnZjZS5yaW5nWzFdKQo+IEBAIC04NTUsMjEgKzg1NSwyNSBAQCBpbnQgYW1k Z3B1X3ZjZV9yaW5nX3Rlc3RfaWIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQo+ICAgCj4gICAJ ciA9IGFtZGdwdV92Y2VfZ2V0X2NyZWF0ZV9tc2cocmluZywgMSwgTlVMTCk7Cj4gICAJaWYgKHIp IHsKPiAtCQlEUk1fRVJST1IoImFtZGdwdTogZmFpbGVkIHRvIGdldCBjcmVhdGUgbXNnICglZCku XG4iLCByKTsKPiArCQlEUk1fRVJST1IoImFtZGdwdTogZmFpbGVkIHRvIGdldCBjcmVhdGUgbXNn ICglbGQpLlxuIiwgcik7Cj4gICAJCWdvdG8gZXJyb3I7Cj4gICAJfQo+ICAgCj4gICAJciA9IGFt ZGdwdV92Y2VfZ2V0X2Rlc3Ryb3lfbXNnKHJpbmcsIDEsIHRydWUsICZmZW5jZSk7Cj4gICAJaWYg KHIpIHsKPiAtCQlEUk1fRVJST1IoImFtZGdwdTogZmFpbGVkIHRvIGdldCBkZXN0cm95IGliICgl ZCkuXG4iLCByKTsKPiArCQlEUk1fRVJST1IoImFtZGdwdTogZmFpbGVkIHRvIGdldCBkZXN0cm95 IGliICglbGQpLlxuIiwgcik7Cj4gICAJCWdvdG8gZXJyb3I7Cj4gICAJfQo+ICAgCj4gLQlyID0g ZmVuY2Vfd2FpdChmZW5jZSwgZmFsc2UpOwo+IC0JaWYgKHIpIHsKPiAtCQlEUk1fRVJST1IoImFt ZGdwdTogZmVuY2Ugd2FpdCBmYWlsZWQgKCVkKS5cbiIsIHIpOwo+ICsJciA9IGZlbmNlX3dhaXRf dGltZW91dChmZW5jZSwgZmFsc2UsIHRpbWVvdXQpOwo+ICsJaWYgKHIgPT0gMCkgewo+ICsJCURS TV9FUlJPUigiYW1kZ3B1OiBJQiB0ZXN0IHRpbWVkIG91dC5cbiIpOwo+ICsJCXIgPSAtRVRJTUVE T1VUOwo+ICsJfSBlbHNlIGlmIChyIDwgMCkgewo+ICsJCURSTV9FUlJPUigiYW1kZ3B1OiBmZW5j ZSB3YWl0IGZhaWxlZCAoJWxkKS5cbiIsIHIpOwo+ICAgCX0gZWxzZSB7Cj4gICAJCURSTV9JTkZP KCJpYiB0ZXN0IG9uIHJpbmcgJWQgc3VjY2VlZGVkXG4iLCByaW5nLT5pZHgpOwo+ICsJCXIgPSAw Owo+ICAgCX0KPiAgIGVycm9yOgo+ICAgCWZlbmNlX3B1dChmZW5jZSk7Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92Y2UuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV92Y2UuaAo+IGluZGV4IGZlODRiODAuLjYzZjgzZDAgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZjZS5oCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZjZS5oCj4gQEAgLTM5LDcgKzM5LDcg QEAgdm9pZCBhbWRncHVfdmNlX3JpbmdfZW1pdF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcs IHN0cnVjdCBhbWRncHVfaWIgKmliLAo+ICAgdm9pZCBhbWRncHVfdmNlX3JpbmdfZW1pdF9mZW5j ZShzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHU2NCBhZGRyLCB1NjQgc2VxLAo+ICAgCQkJCXVu c2lnbmVkIGZsYWdzKTsKPiAgIGludCBhbWRncHVfdmNlX3JpbmdfdGVzdF9yaW5nKHN0cnVjdCBh bWRncHVfcmluZyAqcmluZyk7Cj4gLWludCBhbWRncHVfdmNlX3JpbmdfdGVzdF9pYihzdHJ1Y3Qg YW1kZ3B1X3JpbmcgKnJpbmcpOwo+ICtpbnQgYW1kZ3B1X3ZjZV9yaW5nX3Rlc3RfaWIoc3RydWN0 IGFtZGdwdV9yaW5nICpyaW5nLCBsb25nIHRpbWVvdXQpOwo+ICAgdm9pZCBhbWRncHVfdmNlX3Jp bmdfYmVnaW5fdXNlKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZyk7Cj4gICB2b2lkIGFtZGdwdV92 Y2VfcmluZ19lbmRfdXNlKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZyk7Cj4gICAKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvY2lrX3NkbWEuYyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2Npa19zZG1hLmMKPiBpbmRleCA2NTA3YTdlLi43Zjk1YThiIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Npa19zZG1hLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jaWtfc2RtYS5jCj4gQEAgLTYxNywxOSArNjE3LDE5 IEBAIHN0YXRpYyBpbnQgY2lrX3NkbWFfcmluZ190ZXN0X3Jpbmcoc3RydWN0IGFtZGdwdV9yaW5n ICpyaW5nKQo+ICAgICogVGVzdCBhIHNpbXBsZSBJQiBpbiB0aGUgRE1BIHJpbmcgKENJSykuCj4g ICAgKiBSZXR1cm5zIDAgb24gc3VjY2VzcywgZXJyb3Igb24gZmFpbHVyZS4KPiAgICAqLwo+IC1z dGF0aWMgaW50IGNpa19zZG1hX3JpbmdfdGVzdF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcp Cj4gK3N0YXRpYyBpbnQgY2lrX3NkbWFfcmluZ190ZXN0X2liKHN0cnVjdCBhbWRncHVfcmluZyAq cmluZywgbG9uZyB0aW1lb3V0KQo+ICAgewo+ICAgCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 ID0gcmluZy0+YWRldjsKPiAgIAlzdHJ1Y3QgYW1kZ3B1X2liIGliOwo+ICAgCXN0cnVjdCBmZW5j ZSAqZiA9IE5VTEw7Cj4gICAJdW5zaWduZWQgaW5kZXg7Cj4gLQlpbnQgcjsKPiAgIAl1MzIgdG1w ID0gMDsKPiAgIAl1NjQgZ3B1X2FkZHI7Cj4gKwlsb25nIHI7Cj4gICAKPiAgIAlyID0gYW1kZ3B1 X3diX2dldChhZGV2LCAmaW5kZXgpOwo+ICAgCWlmIChyKSB7Cj4gLQkJZGV2X2VycihhZGV2LT5k ZXYsICIoJWQpIGZhaWxlZCB0byBhbGxvY2F0ZSB3YiBzbG90XG4iLCByKTsKPiArCQlkZXZfZXJy KGFkZXYtPmRldiwgIiglbGQpIGZhaWxlZCB0byBhbGxvY2F0ZSB3YiBzbG90XG4iLCByKTsKPiAg IAkJcmV0dXJuIHI7Cj4gICAJfQo+ICAgCj4gQEAgLTYzOSw3ICs2MzksNyBAQCBzdGF0aWMgaW50 IGNpa19zZG1hX3JpbmdfdGVzdF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCj4gICAJbWVt c2V0KCZpYiwgMCwgc2l6ZW9mKGliKSk7Cj4gICAJciA9IGFtZGdwdV9pYl9nZXQoYWRldiwgTlVM TCwgMjU2LCAmaWIpOwo+ICAgCWlmIChyKSB7Cj4gLQkJRFJNX0VSUk9SKCJhbWRncHU6IGZhaWxl ZCB0byBnZXQgaWIgKCVkKS5cbiIsIHIpOwo+ICsJCURSTV9FUlJPUigiYW1kZ3B1OiBmYWlsZWQg dG8gZ2V0IGliICglbGQpLlxuIiwgcik7Cj4gICAJCWdvdG8gZXJyMDsKPiAgIAl9Cj4gICAKPiBA QCAtNjU0LDE0ICs2NTQsMTkgQEAgc3RhdGljIGludCBjaWtfc2RtYV9yaW5nX3Rlc3RfaWIoc3Ry dWN0IGFtZGdwdV9yaW5nICpyaW5nKQo+ICAgCWlmIChyKQo+ICAgCQlnb3RvIGVycjE7Cj4gICAK PiAtCXIgPSBmZW5jZV93YWl0KGYsIGZhbHNlKTsKPiAtCWlmIChyKSB7Cj4gLQkJRFJNX0VSUk9S KCJhbWRncHU6IGZlbmNlIHdhaXQgZmFpbGVkICglZCkuXG4iLCByKTsKPiArCXIgPSBmZW5jZV93 YWl0X3RpbWVvdXQoZiwgZmFsc2UsIHRpbWVvdXQpOwo+ICsJaWYgKHIgPT0gMCkgewo+ICsJCURS TV9FUlJPUigiYW1kZ3B1OiBJQiB0ZXN0IHRpbWVkIG91dFxuIik7Cj4gKwkJciA9IC1FVElNRURP VVQ7Cj4gKwkJZ290byBlcnIxOwo+ICsJfSBlbHNlIGlmIChyIDwgMCkgewo+ICsJCURSTV9FUlJP UigiYW1kZ3B1OiBmZW5jZSB3YWl0IGZhaWxlZCAoJWxkKS5cbiIsIHIpOwo+ICAgCQlnb3RvIGVy cjE7Cj4gICAJfQo+ICAgCXRtcCA9IGxlMzJfdG9fY3B1KGFkZXYtPndiLndiW2luZGV4XSk7Cj4g ICAJaWYgKHRtcCA9PSAweERFQURCRUVGKSB7Cj4gICAJCURSTV9JTkZPKCJpYiB0ZXN0IG9uIHJp bmcgJWQgc3VjY2VlZGVkXG4iLCByaW5nLT5pZHgpOwo+ICsJCXIgPSAwOwo+ICAgCX0gZWxzZSB7 Cj4gICAJCURSTV9FUlJPUigiYW1kZ3B1OiBpYiB0ZXN0IGZhaWxlZCAoMHglMDhYKVxuIiwgdG1w KTsKPiAgIAkJciA9IC1FSU5WQUw7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2dmeF92N18wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjdfMC5j Cj4gaW5kZXggODFlNWRlYy4uNzQwYjRiZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9nZnhfdjdfMC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv Z2Z4X3Y3XzAuYwo+IEBAIC0yMTA1LDI1ICsyMTA1LDI1IEBAIHN0YXRpYyB2b2lkIGdmeF92N18w X3JpbmdfZW1pdF9pYl9jb21wdXRlKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywKPiAgICAqIFBy b3ZpZGVzIGEgYmFzaWMgZ2Z4IHJpbmcgdGVzdCB0byB2ZXJpZnkgdGhhdCBJQnMgYXJlIHdvcmtp bmcuCj4gICAgKiBSZXR1cm5zIDAgb24gc3VjY2VzcywgZXJyb3Igb24gZmFpbHVyZS4KPiAgICAq Lwo+IC1zdGF0aWMgaW50IGdmeF92N18wX3JpbmdfdGVzdF9pYihzdHJ1Y3QgYW1kZ3B1X3Jpbmcg KnJpbmcpCj4gK3N0YXRpYyBpbnQgZ2Z4X3Y3XzBfcmluZ190ZXN0X2liKHN0cnVjdCBhbWRncHVf cmluZyAqcmluZywgbG9uZyB0aW1lb3V0KQo+ICAgewo+ICAgCXN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2ID0gcmluZy0+YWRldjsKPiAgIAlzdHJ1Y3QgYW1kZ3B1X2liIGliOwo+ICAgCXN0cnVj dCBmZW5jZSAqZiA9IE5VTEw7Cj4gICAJdWludDMyX3Qgc2NyYXRjaDsKPiAgIAl1aW50MzJfdCB0 bXAgPSAwOwo+IC0JaW50IHI7Cj4gKwlsb25nIHI7Cj4gICAKPiAgIAlyID0gYW1kZ3B1X2dmeF9z Y3JhdGNoX2dldChhZGV2LCAmc2NyYXRjaCk7Cj4gICAJaWYgKHIpIHsKPiAtCQlEUk1fRVJST1Io ImFtZGdwdTogZmFpbGVkIHRvIGdldCBzY3JhdGNoIHJlZyAoJWQpLlxuIiwgcik7Cj4gKwkJRFJN X0VSUk9SKCJhbWRncHU6IGZhaWxlZCB0byBnZXQgc2NyYXRjaCByZWcgKCVsZCkuXG4iLCByKTsK PiAgIAkJcmV0dXJuIHI7Cj4gICAJfQo+ICAgCVdSRUczMihzY3JhdGNoLCAweENBRkVERUFEKTsK PiAgIAltZW1zZXQoJmliLCAwLCBzaXplb2YoaWIpKTsKPiAgIAlyID0gYW1kZ3B1X2liX2dldChh ZGV2LCBOVUxMLCAyNTYsICZpYik7Cj4gICAJaWYgKHIpIHsKPiAtCQlEUk1fRVJST1IoImFtZGdw dTogZmFpbGVkIHRvIGdldCBpYiAoJWQpLlxuIiwgcik7Cj4gKwkJRFJNX0VSUk9SKCJhbWRncHU6 IGZhaWxlZCB0byBnZXQgaWIgKCVsZCkuXG4iLCByKTsKPiAgIAkJZ290byBlcnIxOwo+ICAgCX0K PiAgIAlpYi5wdHJbMF0gPSBQQUNLRVQzKFBBQ0tFVDNfU0VUX1VDT05GSUdfUkVHLCAxKTsKPiBA QCAtMjEzNSwxNCArMjEzNSwxOSBAQCBzdGF0aWMgaW50IGdmeF92N18wX3JpbmdfdGVzdF9pYihz dHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCj4gICAJaWYgKHIpCj4gICAJCWdvdG8gZXJyMjsKPiAg IAo+IC0JciA9IGZlbmNlX3dhaXQoZiwgZmFsc2UpOwo+IC0JaWYgKHIpIHsKPiAtCQlEUk1fRVJS T1IoImFtZGdwdTogZmVuY2Ugd2FpdCBmYWlsZWQgKCVkKS5cbiIsIHIpOwo+ICsJciA9IGZlbmNl X3dhaXRfdGltZW91dChmLCBmYWxzZSwgdGltZW91dCk7Cj4gKwlpZiAociA9PSAwKSB7Cj4gKwkJ RFJNX0VSUk9SKCJhbWRncHU6IElCIHRlc3QgdGltZWQgb3V0XG4iKTsKPiArCQlyID0gLUVUSU1F RE9VVDsKPiArCQlnb3RvIGVycjI7Cj4gKwl9IGVsc2UgaWYgKHIgPCAwKSB7Cj4gKwkJRFJNX0VS Uk9SKCJhbWRncHU6IGZlbmNlIHdhaXQgZmFpbGVkICglbGQpLlxuIiwgcik7Cj4gICAJCWdvdG8g ZXJyMjsKPiAgIAl9Cj4gICAJdG1wID0gUlJFRzMyKHNjcmF0Y2gpOwo+ICAgCWlmICh0bXAgPT0g MHhERUFEQkVFRikgewo+ICAgCQlEUk1fSU5GTygiaWIgdGVzdCBvbiByaW5nICVkIHN1Y2NlZWRl ZFxuIiwgcmluZy0+aWR4KTsKPiArCQlyID0gMDsKPiAgIAl9IGVsc2Ugewo+ICAgCQlEUk1fRVJS T1IoImFtZGdwdTogaWIgdGVzdCBmYWlsZWQgKHNjcmF0Y2goMHglMDRYKT0weCUwOFgpXG4iLAo+ ICAgCQkJICBzY3JhdGNoLCB0bXApOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9nZnhfdjhfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y4XzAu Ywo+IGluZGV4IDU4ODJkM2EuLmY1OGZjODQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvZ2Z4X3Y4XzAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2dmeF92OF8wLmMKPiBAQCAtNzg0LDI1ICs3ODQsMjUgQEAgc3RhdGljIGludCBnZnhfdjhfMF9y aW5nX3Rlc3RfcmluZyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCj4gICAJcmV0dXJuIHI7Cj4g ICB9Cj4gICAKPiAtc3RhdGljIGludCBnZnhfdjhfMF9yaW5nX3Rlc3RfaWIoc3RydWN0IGFtZGdw dV9yaW5nICpyaW5nKQo+ICtzdGF0aWMgaW50IGdmeF92OF8wX3JpbmdfdGVzdF9pYihzdHJ1Y3Qg YW1kZ3B1X3JpbmcgKnJpbmcsIGxvbmcgdGltZW91dCkKPiAgIHsKPiAgIAlzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiA9IHJpbmctPmFkZXY7Cj4gICAJc3RydWN0IGFtZGdwdV9pYiBpYjsKPiAg IAlzdHJ1Y3QgZmVuY2UgKmYgPSBOVUxMOwo+ICAgCXVpbnQzMl90IHNjcmF0Y2g7Cj4gICAJdWlu dDMyX3QgdG1wID0gMDsKPiAtCWludCByOwo+ICsJbG9uZyByOwo+ICAgCj4gICAJciA9IGFtZGdw dV9nZnhfc2NyYXRjaF9nZXQoYWRldiwgJnNjcmF0Y2gpOwo+ICAgCWlmIChyKSB7Cj4gLQkJRFJN X0VSUk9SKCJhbWRncHU6IGZhaWxlZCB0byBnZXQgc2NyYXRjaCByZWcgKCVkKS5cbiIsIHIpOwo+ ICsJCURSTV9FUlJPUigiYW1kZ3B1OiBmYWlsZWQgdG8gZ2V0IHNjcmF0Y2ggcmVnICglbGQpLlxu Iiwgcik7Cj4gICAJCXJldHVybiByOwo+ICAgCX0KPiAgIAlXUkVHMzIoc2NyYXRjaCwgMHhDQUZF REVBRCk7Cj4gICAJbWVtc2V0KCZpYiwgMCwgc2l6ZW9mKGliKSk7Cj4gICAJciA9IGFtZGdwdV9p Yl9nZXQoYWRldiwgTlVMTCwgMjU2LCAmaWIpOwo+ICAgCWlmIChyKSB7Cj4gLQkJRFJNX0VSUk9S KCJhbWRncHU6IGZhaWxlZCB0byBnZXQgaWIgKCVkKS5cbiIsIHIpOwo+ICsJCURSTV9FUlJPUigi YW1kZ3B1OiBmYWlsZWQgdG8gZ2V0IGliICglbGQpLlxuIiwgcik7Cj4gICAJCWdvdG8gZXJyMTsK PiAgIAl9Cj4gICAJaWIucHRyWzBdID0gUEFDS0VUMyhQQUNLRVQzX1NFVF9VQ09ORklHX1JFRywg MSk7Cj4gQEAgLTgxNCwxNCArODE0LDE5IEBAIHN0YXRpYyBpbnQgZ2Z4X3Y4XzBfcmluZ190ZXN0 X2liKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKPiAgIAlpZiAocikKPiAgIAkJZ290byBlcnIy Owo+ICAgCj4gLQlyID0gZmVuY2Vfd2FpdChmLCBmYWxzZSk7Cj4gLQlpZiAocikgewo+IC0JCURS TV9FUlJPUigiYW1kZ3B1OiBmZW5jZSB3YWl0IGZhaWxlZCAoJWQpLlxuIiwgcik7Cj4gKwlyID0g ZmVuY2Vfd2FpdF90aW1lb3V0KGYsIGZhbHNlLCB0aW1lb3V0KTsKPiArCWlmIChyID09IDApIHsK PiArCQlEUk1fRVJST1IoImFtZGdwdTogSUIgdGVzdCB0aW1lZCBvdXQuXG4iKTsKPiArCQlyID0g LUVUSU1FRE9VVDsKPiArCQlnb3RvIGVycjI7Cj4gKwl9IGVsc2UgaWYgKHIgPCAwKSB7Cj4gKwkJ RFJNX0VSUk9SKCJhbWRncHU6IGZlbmNlIHdhaXQgZmFpbGVkICglbGQpLlxuIiwgcik7Cj4gICAJ CWdvdG8gZXJyMjsKPiAgIAl9Cj4gICAJdG1wID0gUlJFRzMyKHNjcmF0Y2gpOwo+ICAgCWlmICh0 bXAgPT0gMHhERUFEQkVFRikgewo+ICAgCQlEUk1fSU5GTygiaWIgdGVzdCBvbiByaW5nICVkIHN1 Y2NlZWRlZFxuIiwgcmluZy0+aWR4KTsKPiArCQlyID0gMDsKPiAgIAl9IGVsc2Ugewo+ICAgCQlE Uk1fRVJST1IoImFtZGdwdTogaWIgdGVzdCBmYWlsZWQgKHNjcmF0Y2goMHglMDRYKT0weCUwOFgp XG4iLAo+ICAgCQkJICBzY3JhdGNoLCB0bXApOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9zZG1hX3YyXzQuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3Nk bWFfdjJfNC5jCj4gaW5kZXggMDExMWQxNS4uYzcxMTNlZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1hX3YyXzQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L3NkbWFfdjJfNC5jCj4gQEAgLTY2OCwxOSArNjY4LDE5IEBAIHN0YXRpYyBpbnQg c2RtYV92Ml80X3JpbmdfdGVzdF9yaW5nKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKPiAgICAq IFRlc3QgYSBzaW1wbGUgSUIgaW4gdGhlIERNQSByaW5nIChWSSkuCj4gICAgKiBSZXR1cm5zIDAg b24gc3VjY2VzcywgZXJyb3Igb24gZmFpbHVyZS4KPiAgICAqLwo+IC1zdGF0aWMgaW50IHNkbWFf djJfNF9yaW5nX3Rlc3RfaWIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQo+ICtzdGF0aWMgaW50 IHNkbWFfdjJfNF9yaW5nX3Rlc3RfaWIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBsb25nIHRp bWVvdXQpCj4gICB7Cj4gICAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSByaW5nLT5hZGV2 Owo+ICAgCXN0cnVjdCBhbWRncHVfaWIgaWI7Cj4gICAJc3RydWN0IGZlbmNlICpmID0gTlVMTDsK PiAgIAl1bnNpZ25lZCBpbmRleDsKPiAtCWludCByOwo+ICAgCXUzMiB0bXAgPSAwOwo+ICAgCXU2 NCBncHVfYWRkcjsKPiArCWxvbmcgcjsKPiAgIAo+ICAgCXIgPSBhbWRncHVfd2JfZ2V0KGFkZXYs ICZpbmRleCk7Cj4gICAJaWYgKHIpIHsKPiAtCQlkZXZfZXJyKGFkZXYtPmRldiwgIiglZCkgZmFp bGVkIHRvIGFsbG9jYXRlIHdiIHNsb3RcbiIsIHIpOwo+ICsJCWRldl9lcnIoYWRldi0+ZGV2LCAi KCVsZCkgZmFpbGVkIHRvIGFsbG9jYXRlIHdiIHNsb3RcbiIsIHIpOwo+ICAgCQlyZXR1cm4gcjsK PiAgIAl9Cj4gICAKPiBAQCAtNjkwLDcgKzY5MCw3IEBAIHN0YXRpYyBpbnQgc2RtYV92Ml80X3Jp bmdfdGVzdF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCj4gICAJbWVtc2V0KCZpYiwgMCwg c2l6ZW9mKGliKSk7Cj4gICAJciA9IGFtZGdwdV9pYl9nZXQoYWRldiwgTlVMTCwgMjU2LCAmaWIp Owo+ICAgCWlmIChyKSB7Cj4gLQkJRFJNX0VSUk9SKCJhbWRncHU6IGZhaWxlZCB0byBnZXQgaWIg KCVkKS5cbiIsIHIpOwo+ICsJCURSTV9FUlJPUigiYW1kZ3B1OiBmYWlsZWQgdG8gZ2V0IGliICgl bGQpLlxuIiwgcik7Cj4gICAJCWdvdG8gZXJyMDsKPiAgIAl9Cj4gICAKPiBAQCAtNzA5LDE0ICs3 MDksMTkgQEAgc3RhdGljIGludCBzZG1hX3YyXzRfcmluZ190ZXN0X2liKHN0cnVjdCBhbWRncHVf cmluZyAqcmluZykKPiAgIAlpZiAocikKPiAgIAkJZ290byBlcnIxOwo+ICAgCj4gLQlyID0gZmVu Y2Vfd2FpdChmLCBmYWxzZSk7Cj4gLQlpZiAocikgewo+IC0JCURSTV9FUlJPUigiYW1kZ3B1OiBm ZW5jZSB3YWl0IGZhaWxlZCAoJWQpLlxuIiwgcik7Cj4gKwlyID0gZmVuY2Vfd2FpdF90aW1lb3V0 KGYsIGZhbHNlLCB0aW1lb3V0KTsKPiArCWlmIChyID09IDApIHsKPiArCQlEUk1fRVJST1IoImFt ZGdwdTogSUIgdGVzdCB0aW1lZCBvdXRcbiIpOwo+ICsJCXIgPSAtRVRJTUVET1VUOwo+ICsJCWdv dG8gZXJyMTsKPiArCX0gZWxzZSBpZiAocikgewo+ICsJCURSTV9FUlJPUigiYW1kZ3B1OiBmZW5j ZSB3YWl0IGZhaWxlZCAoJWxkKS5cbiIsIHIpOwo+ICAgCQlnb3RvIGVycjE7Cj4gICAJfQo+ICAg CXRtcCA9IGxlMzJfdG9fY3B1KGFkZXYtPndiLndiW2luZGV4XSk7Cj4gICAJaWYgKHRtcCA9PSAw eERFQURCRUVGKSB7Cj4gICAJCURSTV9JTkZPKCJpYiB0ZXN0IG9uIHJpbmcgJWQgc3VjY2VlZGVk XG4iLCByaW5nLT5pZHgpOwo+ICsJCXIgPSAwOwo+ICAgCX0gZWxzZSB7Cj4gICAJCURSTV9FUlJP UigiYW1kZ3B1OiBpYiB0ZXN0IGZhaWxlZCAoMHglMDhYKVxuIiwgdG1wKTsKPiAgIAkJciA9IC1F SU5WQUw7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjNf MC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2RtYV92M18wLmMKPiBpbmRleCBlNTA2 ZDNjLi5kZjA5ZDg1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3Nk bWFfdjNfMC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2RtYV92M18wLmMK PiBAQCAtODk2LDE5ICs4OTYsMTkgQEAgc3RhdGljIGludCBzZG1hX3YzXzBfcmluZ190ZXN0X3Jp bmcoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQo+ICAgICogVGVzdCBhIHNpbXBsZSBJQiBpbiB0 aGUgRE1BIHJpbmcgKFZJKS4KPiAgICAqIFJldHVybnMgMCBvbiBzdWNjZXNzLCBlcnJvciBvbiBm YWlsdXJlLgo+ICAgICovCj4gLXN0YXRpYyBpbnQgc2RtYV92M18wX3JpbmdfdGVzdF9pYihzdHJ1 Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCj4gK3N0YXRpYyBpbnQgc2RtYV92M18wX3JpbmdfdGVzdF9p YihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIGxvbmcgdGltZW91dCkKPiAgIHsKPiAgIAlzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHJpbmctPmFkZXY7Cj4gICAJc3RydWN0IGFtZGdwdV9p YiBpYjsKPiAgIAlzdHJ1Y3QgZmVuY2UgKmYgPSBOVUxMOwo+ICAgCXVuc2lnbmVkIGluZGV4Owo+ IC0JaW50IHI7Cj4gICAJdTMyIHRtcCA9IDA7Cj4gICAJdTY0IGdwdV9hZGRyOwo+ICsJbG9uZyBy Owo+ICAgCj4gICAJciA9IGFtZGdwdV93Yl9nZXQoYWRldiwgJmluZGV4KTsKPiAgIAlpZiAocikg ewo+IC0JCWRldl9lcnIoYWRldi0+ZGV2LCAiKCVkKSBmYWlsZWQgdG8gYWxsb2NhdGUgd2Igc2xv dFxuIiwgcik7Cj4gKwkJZGV2X2VycihhZGV2LT5kZXYsICIoJWxkKSBmYWlsZWQgdG8gYWxsb2Nh dGUgd2Igc2xvdFxuIiwgcik7Cj4gICAJCXJldHVybiByOwo+ICAgCX0KPiAgIAo+IEBAIC05MTgs NyArOTE4LDcgQEAgc3RhdGljIGludCBzZG1hX3YzXzBfcmluZ190ZXN0X2liKHN0cnVjdCBhbWRn cHVfcmluZyAqcmluZykKPiAgIAltZW1zZXQoJmliLCAwLCBzaXplb2YoaWIpKTsKPiAgIAlyID0g YW1kZ3B1X2liX2dldChhZGV2LCBOVUxMLCAyNTYsICZpYik7Cj4gICAJaWYgKHIpIHsKPiAtCQlE Uk1fRVJST1IoImFtZGdwdTogZmFpbGVkIHRvIGdldCBpYiAoJWQpLlxuIiwgcik7Cj4gKwkJRFJN X0VSUk9SKCJhbWRncHU6IGZhaWxlZCB0byBnZXQgaWIgKCVsZCkuXG4iLCByKTsKPiAgIAkJZ290 byBlcnIwOwo+ICAgCX0KPiAgIAo+IEBAIC05MzcsMTQgKzkzNywxOSBAQCBzdGF0aWMgaW50IHNk bWFfdjNfMF9yaW5nX3Rlc3RfaWIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQo+ICAgCWlmIChy KQo+ICAgCQlnb3RvIGVycjE7Cj4gICAKPiAtCXIgPSBmZW5jZV93YWl0KGYsIGZhbHNlKTsKPiAt CWlmIChyKSB7Cj4gLQkJRFJNX0VSUk9SKCJhbWRncHU6IGZlbmNlIHdhaXQgZmFpbGVkICglZCku XG4iLCByKTsKPiArCXIgPSBmZW5jZV93YWl0X3RpbWVvdXQoZiwgZmFsc2UsIHRpbWVvdXQpOwo+ ICsJaWYgKHIgPT0gMCkgewo+ICsJCURSTV9FUlJPUigiYW1kZ3B1OiBJQiB0ZXN0IHRpbWVkIG91 dFxuIik7Cj4gKwkJciA9IC1FVElNRURPVVQ7Cj4gKwkJZ290byBlcnIxOwo+ICsJfSBlbHNlIGlm IChyIDwgMCkgewo+ICsJCURSTV9FUlJPUigiYW1kZ3B1OiBmZW5jZSB3YWl0IGZhaWxlZCAoJWxk KS5cbiIsIHIpOwo+ICAgCQlnb3RvIGVycjE7Cj4gICAJfQo+ICAgCXRtcCA9IGxlMzJfdG9fY3B1 KGFkZXYtPndiLndiW2luZGV4XSk7Cj4gICAJaWYgKHRtcCA9PSAweERFQURCRUVGKSB7Cj4gICAJ CURSTV9JTkZPKCJpYiB0ZXN0IG9uIHJpbmcgJWQgc3VjY2VlZGVkXG4iLCByaW5nLT5pZHgpOwo+ ICsJCXIgPSAwOwo+ICAgCX0gZWxzZSB7Cj4gICAJCURSTV9FUlJPUigiYW1kZ3B1OiBpYiB0ZXN0 IGZhaWxlZCAoMHglMDhYKVxuIiwgdG1wKTsKPiAgIAkJciA9IC1FSU5WQUw7CgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlz dAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK