From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andi Shyti Subject: Re: [PATCH 1/2] drm/i915/selftests: Provide a mock GPU reset routine Date: Fri, 27 Sep 2019 23:41:19 +0300 Message-ID: <20190927204119.GA2902@intel.intel> References: <20190927191443.14126-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 mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 080AD6E235 for ; Fri, 27 Sep 2019 20:41:22 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190927191443.14126-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 Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org SGkgQ2hyaXMsCgpPbiBGcmksIFNlcCAyNywgMjAxOSBhdCAwODoxNDo0MlBNICswMTAwLCBDaHJp cyBXaWxzb24gd3JvdGU6Cj4gRm9yIHRob3NlIG1vY2sgdGVzdHMgdGhhdCBtYXkgd2lzaCB0byBw cmV0ZW5kIHRyaWdnZXJpbmcgYSBHUFUgcmVzZXQgYW5kCj4gcHJvY2Vzc2luZyB0aGUgY2xlYW51 cC4KClRoZSBwYXRjaCBpcyBPSywgcGVyIHNlLCBidXQgSSB0aGluayBpdCBzaG91bGQgYmUgc3Bs aXQgaW4gdHdvCnBhcnRzOgoKIC0gdGhlIGk5MTUgdG8gZ3QgY29udmVyc2lvbiAodGhhdCBpcyB0 aGUgYmlnZ2VzdCBwYXJ0IG9mIHRoZQogICBwYXRjaCkKIC0gdGhlIG1vY2stcmVzZXQgcGFydCAo YmFza2ljYWxseSB0aGUgZnVuY3Rpb24pCgpyaWdodD8KCkFuZGkKCj4gCj4gU2lnbmVkLW9mZi1i eTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gQ2M6IEFuZGkgU2h5 dGkgPGFuZGkuc2h5dGlAaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2Rpc3BsYXkuYyAgfCAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9pbnRlbF9yZXNldC5jICAgICAgICAgfCAzMiArKysrKysrKysrKysrLS0tLS0tCj4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jlc2V0LmggICAgICAgICB8ICA1ICsrLQo+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9oYW5nY2hlY2suYyAgfCAxMiArKystLS0tCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2xyYy5jICAgICAgICB8ICAyICstCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X3Jlc2V0LmMgICAgICB8ICA0ICstLQo+ ICAuLi4vZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X3dvcmthcm91bmRzLmMgICAgfCAgOCArKy0t LQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dldHBhcmFtLmMgICAgICAgICAgfCAgNCAr LS0KPiAgOCBmaWxlcyBjaGFuZ2VkLCA0MSBpbnNlcnRpb25zKCspLCAyOCBkZWxldGlvbnMoLSkK PiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNw bGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwo+IGlu ZGV4IDhmMTI1ZjE2MjRiZC4uNzc1OGEzNzQ0NjI2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtNDI3Myw3ICs0MjczLDcgQEAgX19p bnRlbF9kaXNwbGF5X3Jlc3VtZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICBzdGF0aWMgYm9v bCBncHVfcmVzZXRfY2xvYmJlcnNfZGlzcGxheShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCj4gIHsKPiAgCXJldHVybiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPmdwdV9yZXNldF9j bG9iYmVyc19kaXNwbGF5ICYmCj4gLQkJaW50ZWxfaGFzX2dwdV9yZXNldChkZXZfcHJpdikpOwo+ ICsJCWludGVsX2hhc19ncHVfcmVzZXQoJmRldl9wcml2LT5ndCkpOwo+ICB9Cj4gIAo+ICB2b2lk IGludGVsX3ByZXBhcmVfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yZXNldC5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQuYwo+IGluZGV4IGQwODIyNmY1YmVhNS4u NzY5MzhmYTNhMWI5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVs X3Jlc2V0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yZXNldC5jCj4g QEAgLTU0MiwxMyArNTQyLDI0IEBAIHN0YXRpYyBpbnQgZ2VuOF9yZXNldF9lbmdpbmVzKHN0cnVj dCBpbnRlbF9ndCAqZ3QsCj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4gIAo+ICtzdGF0aWMgaW50IG1v Y2tfcmVzZXQoc3RydWN0IGludGVsX2d0ICpndCwKPiArCQkgICAgICBpbnRlbF9lbmdpbmVfbWFz a190IG1hc2ssCj4gKwkJICAgICAgdW5zaWduZWQgaW50IHJldHJ5KQo+ICt7Cj4gKwlyZXR1cm4g MDsKPiArfQo+ICsKPiAgdHlwZWRlZiBpbnQgKCpyZXNldF9mdW5jKShzdHJ1Y3QgaW50ZWxfZ3Qg KiwKPiAgCQkJICBpbnRlbF9lbmdpbmVfbWFza190IGVuZ2luZV9tYXNrLAo+ICAJCQkgIHVuc2ln bmVkIGludCByZXRyeSk7Cj4gIAo+IC1zdGF0aWMgcmVzZXRfZnVuYyBpbnRlbF9nZXRfZ3B1X3Jl c2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ICtzdGF0aWMgcmVzZXRfZnVuYyBp bnRlbF9nZXRfZ3B1X3Jlc2V0KGNvbnN0IHN0cnVjdCBpbnRlbF9ndCAqZ3QpCj4gIHsKPiAtCWlm IChJTlRFTF9HRU4oaTkxNSkgPj0gOCkKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 ID0gZ3QtPmk5MTU7Cj4gKwo+ICsJaWYgKGlzX21vY2tfZ3QoZ3QpKQo+ICsJCXJldHVybiBtb2Nr X3Jlc2V0Owo+ICsJZWxzZSBpZiAoSU5URUxfR0VOKGk5MTUpID49IDgpCj4gIAkJcmV0dXJuIGdl bjhfcmVzZXRfZW5naW5lczsKPiAgCWVsc2UgaWYgKElOVEVMX0dFTihpOTE1KSA+PSA2KQo+ICAJ CXJldHVybiBnZW42X3Jlc2V0X2VuZ2luZXM7Cj4gQEAgLTU3MSw3ICs1ODIsNyBAQCBpbnQgX19p bnRlbF9ndF9yZXNldChzdHJ1Y3QgaW50ZWxfZ3QgKmd0LCBpbnRlbF9lbmdpbmVfbWFza190IGVu Z2luZV9tYXNrKQo+ICAJaW50IHJldCA9IC1FVElNRURPVVQ7Cj4gIAlpbnQgcmV0cnk7Cj4gIAo+ IC0JcmVzZXQgPSBpbnRlbF9nZXRfZ3B1X3Jlc2V0KGd0LT5pOTE1KTsKPiArCXJlc2V0ID0gaW50 ZWxfZ2V0X2dwdV9yZXNldChndCk7Cj4gIAlpZiAoIXJlc2V0KQo+ICAJCXJldHVybiAtRU5PREVW Owo+ICAKPiBAQCAtNTkxLDE3ICs2MDIsMjAgQEAgaW50IF9faW50ZWxfZ3RfcmVzZXQoc3RydWN0 IGludGVsX2d0ICpndCwgaW50ZWxfZW5naW5lX21hc2tfdCBlbmdpbmVfbWFzaykKPiAgCXJldHVy biByZXQ7Cj4gIH0KPiAgCj4gLWJvb2wgaW50ZWxfaGFzX2dwdV9yZXNldChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNSkKPiArYm9vbCBpbnRlbF9oYXNfZ3B1X3Jlc2V0KGNvbnN0IHN0cnVj dCBpbnRlbF9ndCAqZ3QpCj4gIHsKPiAgCWlmICghaTkxNV9tb2RwYXJhbXMucmVzZXQpCj4gIAkJ cmV0dXJuIE5VTEw7Cj4gIAo+IC0JcmV0dXJuIGludGVsX2dldF9ncHVfcmVzZXQoaTkxNSk7Cj4g KwlyZXR1cm4gaW50ZWxfZ2V0X2dwdV9yZXNldChndCk7Cj4gIH0KPiAgCj4gLWJvb2wgaW50ZWxf aGFzX3Jlc2V0X2VuZ2luZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiArYm9vbCBp bnRlbF9oYXNfcmVzZXRfZW5naW5lKGNvbnN0IHN0cnVjdCBpbnRlbF9ndCAqZ3QpCj4gIHsKPiAt CXJldHVybiBJTlRFTF9JTkZPKGk5MTUpLT5oYXNfcmVzZXRfZW5naW5lICYmIGk5MTVfbW9kcGFy YW1zLnJlc2V0ID49IDI7Cj4gKwlpZiAoaTkxNV9tb2RwYXJhbXMucmVzZXQgPCAyKQo+ICsJCXJl dHVybiBmYWxzZTsKPiArCj4gKwlyZXR1cm4gSU5URUxfSU5GTyhndC0+aTkxNSktPmhhc19yZXNl dF9lbmdpbmU7Cj4gIH0KPiAgCj4gIGludCBpbnRlbF9yZXNldF9ndWMoc3RydWN0IGludGVsX2d0 ICpndCkKPiBAQCAtOTU4LDcgKzk3Miw3IEBAIHZvaWQgaW50ZWxfZ3RfcmVzZXQoc3RydWN0IGlu dGVsX2d0ICpndCwKPiAgCj4gIAlhd2FrZSA9IHJlc2V0X3ByZXBhcmUoZ3QpOwo+ICAKPiAtCWlm ICghaW50ZWxfaGFzX2dwdV9yZXNldChndC0+aTkxNSkpIHsKPiArCWlmICghaW50ZWxfaGFzX2dw dV9yZXNldChndCkpIHsKPiAgCQlpZiAoaTkxNV9tb2RwYXJhbXMucmVzZXQpCj4gIAkJCWRldl9l cnIoZ3QtPmk5MTUtPmRybS5kZXYsICJHUFUgcmVzZXQgbm90IHN1cHBvcnRlZFxuIik7Cj4gIAkJ ZWxzZQo+IEBAIC0xMTc5LDcgKzExOTMsNyBAQCB2b2lkIGludGVsX2d0X2hhbmRsZV9lcnJvcihz dHJ1Y3QgaW50ZWxfZ3QgKmd0LAo+ICAJICogVHJ5IGVuZ2luZSByZXNldCB3aGVuIGF2YWlsYWJs ZS4gV2UgZmFsbCBiYWNrIHRvIGZ1bGwgcmVzZXQgaWYKPiAgCSAqIHNpbmdsZSByZXNldCBmYWls cy4KPiAgCSAqLwo+IC0JaWYgKGludGVsX2hhc19yZXNldF9lbmdpbmUoZ3QtPmk5MTUpICYmICFp bnRlbF9ndF9pc193ZWRnZWQoZ3QpKSB7Cj4gKwlpZiAoaW50ZWxfaGFzX3Jlc2V0X2VuZ2luZShn dCkgJiYgIWludGVsX2d0X2lzX3dlZGdlZChndCkpIHsKPiAgCQlmb3JfZWFjaF9lbmdpbmVfbWFz a2VkKGVuZ2luZSwgZ3QtPmk5MTUsIGVuZ2luZV9tYXNrLCB0bXApIHsKPiAgCQkJQlVJTERfQlVH X09OKEk5MTVfUkVTRVRfTU9ERVNFVCA+PSBJOTE1X1JFU0VUX0VOR0lORSk7Cj4gIAkJCWlmICh0 ZXN0X2FuZF9zZXRfYml0KEk5MTVfUkVTRVRfRU5HSU5FICsgZW5naW5lLT5pZCwKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L2ludGVsX3Jlc2V0LmgKPiBpbmRleCAwYjZmZjFlZTdmMDYuLjhlOGQ1Zjc2 MTE2NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yZXNldC5o Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQuaAo+IEBAIC0xNCw3 ICsxNCw2IEBACj4gICNpbmNsdWRlICJpbnRlbF9lbmdpbmVfdHlwZXMuaCIKPiAgI2luY2x1ZGUg ImludGVsX3Jlc2V0X3R5cGVzLmgiCj4gIAo+IC1zdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZTsKPiAg c3RydWN0IGk5MTVfcmVxdWVzdDsKPiAgc3RydWN0IGludGVsX2VuZ2luZV9jczsKPiAgc3RydWN0 IGludGVsX2d0Owo+IEBAIC04MCw3ICs3OSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBfX2ludGVs X3Jlc2V0X2ZhaWxlZChjb25zdCBzdHJ1Y3QgaW50ZWxfcmVzZXQgKnJlc2V0KQo+ICAJcmV0dXJu IHVubGlrZWx5KHRlc3RfYml0KEk5MTVfV0VER0VELCAmcmVzZXQtPmZsYWdzKSk7Cj4gIH0KPiAg Cj4gLWJvb2wgaW50ZWxfaGFzX2dwdV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSk7Cj4gLWJvb2wgaW50ZWxfaGFzX3Jlc2V0X2VuZ2luZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSk7Cj4gK2Jvb2wgaW50ZWxfaGFzX2dwdV9yZXNldChjb25zdCBzdHJ1Y3QgaW50ZWxf Z3QgKmd0KTsKPiArYm9vbCBpbnRlbF9oYXNfcmVzZXRfZW5naW5lKGNvbnN0IHN0cnVjdCBpbnRl bF9ndCAqZ3QpOwo+ICAKPiAgI2VuZGlmIC8qIEk5MTVfUkVTRVRfSCAqLwo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9oYW5nY2hlY2suYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2hhbmdjaGVjay5jCj4gaW5kZXggYTAwOThmYzM1OTIx Li45YzBjODQ0MWMyMmEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2Vs ZnRlc3RfaGFuZ2NoZWNrLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVz dF9oYW5nY2hlY2suYwo+IEBAIC00NTgsNyArNDU4LDcgQEAgc3RhdGljIGludCBpZ3RfcmVzZXRf bm9wX2VuZ2luZSh2b2lkICphcmcpCj4gIAo+ICAJLyogQ2hlY2sgdGhhdCB3ZSBjYW4gZW5naW5l LXJlc2V0IGR1cmluZyBub24tdXNlciBwb3J0aW9ucyAqLwo+ICAKPiAtCWlmICghaW50ZWxfaGFz X3Jlc2V0X2VuZ2luZShndC0+aTkxNSkpCj4gKwlpZiAoIWludGVsX2hhc19yZXNldF9lbmdpbmUo Z3QpKQo+ICAJCXJldHVybiAwOwo+ICAKPiAgCWZpbGUgPSBtb2NrX2ZpbGUoZ3QtPmk5MTUpOwo+ IEBAIC01NTksNyArNTU5LDcgQEAgc3RhdGljIGludCBfX2lndF9yZXNldF9lbmdpbmUoc3RydWN0 IGludGVsX2d0ICpndCwgYm9vbCBhY3RpdmUpCj4gIAo+ICAJLyogQ2hlY2sgdGhhdCB3ZSBjYW4g aXNzdWUgYW4gZW5naW5lIHJlc2V0IG9uIGFuIGlkbGUgZW5naW5lIChuby1vcCkgKi8KPiAgCj4g LQlpZiAoIWludGVsX2hhc19yZXNldF9lbmdpbmUoZ3QtPmk5MTUpKQo+ICsJaWYgKCFpbnRlbF9o YXNfcmVzZXRfZW5naW5lKGd0KSkKPiAgCQlyZXR1cm4gMDsKPiAgCj4gIAlpZiAoYWN0aXZlKSB7 Cj4gQEAgLTc5MSw3ICs3OTEsNyBAQCBzdGF0aWMgaW50IF9faWd0X3Jlc2V0X2VuZ2luZXMoc3Ry dWN0IGludGVsX2d0ICpndCwKPiAgCSAqIHdpdGggYW55IG90aGVyIGVuZ2luZS4KPiAgCSAqLwo+ ICAKPiAtCWlmICghaW50ZWxfaGFzX3Jlc2V0X2VuZ2luZShndC0+aTkxNSkpCj4gKwlpZiAoIWlu dGVsX2hhc19yZXNldF9lbmdpbmUoZ3QpKQo+ICAJCXJldHVybiAwOwo+ICAKPiAgCWlmIChmbGFn cyAmIFRFU1RfQUNUSVZFKSB7Cj4gQEAgLTE1NDcsNyArMTU0Nyw3IEBAIHN0YXRpYyBpbnQgaWd0 X2hhbmRsZV9lcnJvcih2b2lkICphcmcpCj4gIAo+ICAJLyogQ2hlY2sgdGhhdCB3ZSBjYW4gaXNz dWUgYSBnbG9iYWwgR1BVIGFuZCBlbmdpbmUgcmVzZXQgKi8KPiAgCj4gLQlpZiAoIWludGVsX2hh c19yZXNldF9lbmdpbmUoZ3QtPmk5MTUpKQo+ICsJaWYgKCFpbnRlbF9oYXNfcmVzZXRfZW5naW5l KGd0KSkKPiAgCQlyZXR1cm4gMDsKPiAgCj4gIAlpZiAoIWVuZ2luZSB8fCAhaW50ZWxfZW5naW5l X2Nhbl9zdG9yZV9kd29yZChlbmdpbmUpKQo+IEBAIC0xNjg5LDcgKzE2ODksNyBAQCBzdGF0aWMg aW50IGlndF9yZXNldF9lbmdpbmVzX2F0b21pYyh2b2lkICphcmcpCj4gIAo+ICAJLyogQ2hlY2sg dGhhdCB0aGUgZW5naW5lcyByZXNldHMgYXJlIHVzYWJsZSBmcm9tIGF0b21pYyBjb250ZXh0ICov Cj4gIAo+IC0JaWYgKCFpbnRlbF9oYXNfcmVzZXRfZW5naW5lKGd0LT5pOTE1KSkKPiArCWlmICgh aW50ZWxfaGFzX3Jlc2V0X2VuZ2luZShndCkpCj4gIAkJcmV0dXJuIDA7Cj4gIAo+ICAJaWYgKFVT RVNfR1VDX1NVQk1JU1NJT04oZ3QtPmk5MTUpKQo+IEBAIC0xNzQ2LDcgKzE3NDYsNyBAQCBpbnQg aW50ZWxfaGFuZ2NoZWNrX2xpdmVfc2VsZnRlc3RzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1KQo+ICAJYm9vbCBzYXZlZF9oYW5nY2hlY2s7Cj4gIAlpbnQgZXJyOwo+ICAKPiAtCWlmICgh aW50ZWxfaGFzX2dwdV9yZXNldChndC0+aTkxNSkpCj4gKwlpZiAoIWludGVsX2hhc19ncHVfcmVz ZXQoZ3QpKQo+ICAJCXJldHVybiAwOwo+ICAKPiAgCWlmIChpbnRlbF9ndF9pc193ZWRnZWQoZ3Qp KQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9scmMuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2xyYy5jCj4gaW5kZXggMjJlYTJlNzQ3 MDY0Li45M2YyZmNkYzQ5YmYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv c2VsZnRlc3RfbHJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9s cmMuYwo+IEBAIC0xMzEwLDcgKzEzMTAsNyBAQCBzdGF0aWMgaW50IGxpdmVfcHJlZW1wdF9oYW5n KHZvaWQgKmFyZykKPiAgCWlmICghSEFTX0xPR0lDQUxfUklOR19QUkVFTVBUSU9OKGk5MTUpKQo+ ICAJCXJldHVybiAwOwo+ICAKPiAtCWlmICghaW50ZWxfaGFzX3Jlc2V0X2VuZ2luZShpOTE1KSkK PiArCWlmICghaW50ZWxfaGFzX3Jlc2V0X2VuZ2luZSgmaTkxNS0+Z3QpKQo+ICAJCXJldHVybiAw Owo+ICAKPiAgCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9yZXNldC5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfcmVzZXQuYwo+IGluZGV4IDAwYTRmNjBjZGZkNS4uZDc5 NDgyZGI3ZmU4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0 X3Jlc2V0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9yZXNldC5j Cj4gQEAgLTExMiw3ICsxMTIsNyBAQCBzdGF0aWMgaW50IGlndF9hdG9taWNfZW5naW5lX3Jlc2V0 KHZvaWQgKmFyZykKPiAgCj4gIAkvKiBDaGVjayB0aGF0IHRoZSByZXNldHMgYXJlIHVzYWJsZSBm cm9tIGF0b21pYyBjb250ZXh0ICovCj4gIAo+IC0JaWYgKCFpbnRlbF9oYXNfcmVzZXRfZW5naW5l KGd0LT5pOTE1KSkKPiArCWlmICghaW50ZWxfaGFzX3Jlc2V0X2VuZ2luZShndCkpCj4gIAkJcmV0 dXJuIDA7Cj4gIAo+ICAJaWYgKFVTRVNfR1VDX1NVQk1JU1NJT04oZ3QtPmk5MTUpKQo+IEBAIC0x NzAsNyArMTcwLDcgQEAgaW50IGludGVsX3Jlc2V0X2xpdmVfc2VsZnRlc3RzKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICppOTE1KQo+ICAJfTsKPiAgCXN0cnVjdCBpbnRlbF9ndCAqZ3QgPSAmaTkx NS0+Z3Q7Cj4gIAo+IC0JaWYgKCFpbnRlbF9oYXNfZ3B1X3Jlc2V0KGd0LT5pOTE1KSkKPiArCWlm ICghaW50ZWxfaGFzX2dwdV9yZXNldChndCkpCj4gIAkJcmV0dXJuIDA7Cj4gIAo+ICAJaWYgKGlu dGVsX2d0X2lzX3dlZGdlZChndCkpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L3NlbGZ0ZXN0X3dvcmthcm91bmRzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxm dGVzdF93b3JrYXJvdW5kcy5jCj4gaW5kZXggOTk5YTk4ZjAwNDk0Li5kNDBjZTA3MDliZmYgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3Rfd29ya2Fyb3VuZHMu Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X3dvcmthcm91bmRzLmMK PiBAQCAtNzQ3LDcgKzc0Nyw3IEBAIHN0YXRpYyBpbnQgbGl2ZV9yZXNldF93aGl0ZWxpc3Qodm9p ZCAqYXJnKQo+ICAKPiAgCWlndF9nbG9iYWxfcmVzZXRfbG9jaygmaTkxNS0+Z3QpOwo+ICAKPiAt CWlmIChpbnRlbF9oYXNfcmVzZXRfZW5naW5lKGk5MTUpKSB7Cj4gKwlpZiAoaW50ZWxfaGFzX3Jl c2V0X2VuZ2luZSgmaTkxNS0+Z3QpKSB7Cj4gIAkJZXJyID0gY2hlY2tfd2hpdGVsaXN0X2Fjcm9z c19yZXNldChlbmdpbmUsCj4gIAkJCQkJCSAgIGRvX2VuZ2luZV9yZXNldCwKPiAgCQkJCQkJICAg ImVuZ2luZSIpOwo+IEBAIC03NTUsNyArNzU1LDcgQEAgc3RhdGljIGludCBsaXZlX3Jlc2V0X3do aXRlbGlzdCh2b2lkICphcmcpCj4gIAkJCWdvdG8gb3V0Owo+ICAJfQo+ICAKPiAtCWlmIChpbnRl bF9oYXNfZ3B1X3Jlc2V0KGk5MTUpKSB7Cj4gKwlpZiAoaW50ZWxfaGFzX2dwdV9yZXNldCgmaTkx NS0+Z3QpKSB7Cj4gIAkJZXJyID0gY2hlY2tfd2hpdGVsaXN0X2Fjcm9zc19yZXNldChlbmdpbmUs Cj4gIAkJCQkJCSAgIGRvX2RldmljZV9yZXNldCwKPiAgCQkJCQkJICAgImRldmljZSIpOwo+IEBA IC0xMTMxLDcgKzExMzEsNyBAQCBsaXZlX2dwdV9yZXNldF93b3JrYXJvdW5kcyh2b2lkICphcmcp Cj4gIAlzdHJ1Y3Qgd2FfbGlzdHMgbGlzdHM7Cj4gIAlib29sIG9rOwo+ICAKPiAtCWlmICghaW50 ZWxfaGFzX2dwdV9yZXNldChpOTE1KSkKPiArCWlmICghaW50ZWxfaGFzX2dwdV9yZXNldCgmaTkx NS0+Z3QpKQo+ICAJCXJldHVybiAwOwo+ICAKPiAgCWN0eCA9IGtlcm5lbF9jb250ZXh0KGk5MTUp Owo+IEBAIC0xMTc4LDcgKzExNzgsNyBAQCBsaXZlX2VuZ2luZV9yZXNldF93b3JrYXJvdW5kcyh2 b2lkICphcmcpCj4gIAlzdHJ1Y3Qgd2FfbGlzdHMgbGlzdHM7Cj4gIAlpbnQgcmV0ID0gMDsKPiAg Cj4gLQlpZiAoIWludGVsX2hhc19yZXNldF9lbmdpbmUoaTkxNSkpCj4gKwlpZiAoIWludGVsX2hh c19yZXNldF9lbmdpbmUoJmk5MTUtPmd0KSkKPiAgCQlyZXR1cm4gMDsKPiAgCj4gIAljdHggPSBr ZXJuZWxfY29udGV4dChpOTE1KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZXRwYXJhbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZXRwYXJhbS5jCj4g aW5kZXggNWQ5MTAxMzc2YTNkLi5mNGIzY2JiMWFkY2UgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZXRwYXJhbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZXRwYXJhbS5jCj4gQEAgLTc5LDggKzc5LDggQEAgaW50IGk5MTVfZ2V0cGFyYW1faW9j dGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgCQlicmVhazsKPiAgCWNh c2UgSTkxNV9QQVJBTV9IQVNfR1BVX1JFU0VUOgo+ICAJCXZhbHVlID0gaTkxNV9tb2RwYXJhbXMu ZW5hYmxlX2hhbmdjaGVjayAmJgo+IC0JCQlpbnRlbF9oYXNfZ3B1X3Jlc2V0KGk5MTUpOwo+IC0J CWlmICh2YWx1ZSAmJiBpbnRlbF9oYXNfcmVzZXRfZW5naW5lKGk5MTUpKQo+ICsJCQlpbnRlbF9o YXNfZ3B1X3Jlc2V0KCZpOTE1LT5ndCk7Cj4gKwkJaWYgKHZhbHVlICYmIGludGVsX2hhc19yZXNl dF9lbmdpbmUoJmk5MTUtPmd0KSkKPiAgCQkJdmFsdWUgPSAyOwo+ICAJCWJyZWFrOwo+ICAJY2Fz ZSBJOTE1X1BBUkFNX0hBU19SRVNPVVJDRV9TVFJFQU1FUjoKPiAtLSAKPiAyLjIzLjAKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4