From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 2/3] drm/i915: Store the reset counter when constructing a request Date: Thu, 3 Dec 2015 09:59:59 +0100 Message-ID: <20151203085959.GK10243@phenom.ffwll.local> References: <20151201091535.GI22663@nuc-i3427.alporthouse.com> <1448967935-21760-1-git-send-email-chris@chris-wilson.co.uk> <1448967935-21760-2-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-f52.google.com (mail-wm0-f52.google.com [74.125.82.52]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6C69F6EA98 for ; Thu, 3 Dec 2015 01:00:03 -0800 (PST) Received: by wmec201 with SMTP id c201so16167551wme.0 for ; Thu, 03 Dec 2015 01:00:02 -0800 (PST) Content-Disposition: inline In-Reply-To: <1448967935-21760-2-git-send-email-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: daniel.vetter@ffwll.ch, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBEZWMgMDEsIDIwMTUgYXQgMTE6MDU6MzRBTSArMDAwMCwgQ2hyaXMgV2lsc29uIHdy b3RlOgo+IEFzIHRoZSByZXF1ZXN0IGlzIG9ubHkgdmFsaWQgZHVyaW5nIHRoZSBzYW1lIGdsb2Jh bCByZXNldCBlcG9jaCwgd2UgY2FuCj4gcmVjb3JkIHRoZSBjdXJyZW50IHJlc2V0X2NvdW50ZXIg d2hlbiBjb25zdHJ1Y3RpbmcgdGhlIHJlcXVlc3QgYW5kIHJldXNlCj4gaXQgd2hlbiB3YWl0aW5n IHVwb24gdGhhdCByZXF1ZXN0IGluIGZ1dHVyZS4gVGhpcyByZW1vdmVzIGEgdmVyeSBoYWlyeQo+ IGF0b21pYyBjaGVjayBzZXJpYWxpc2VkIGJ5IHRoZSBzdHJ1Y3RfbXV0ZXggYXQgdGhlIHRpbWUg b2Ygd2FpdGluZyBhbmQKPiBhbGxvd3MgdXMgdG8gdHJhbnNmZXIgdGhvc2Ugd2FpdHMgdG8gYSBj ZW50cmFsIGRpc3BhdGNoZXIgZm9yIGFsbAo+IHdhaXRlcnMgYW5kIGFsbCByZXF1ZXN0cy4KClBs ZWFzZSBhZGQKCiJUaGlzIGFsc28gYWxsb3dzIHVzIHRvIGNsZWFuIHVwIHRoZSBjaGVja193ZWRn ZSBoYW5kbGluZyBhIGJpdCwgc2luY2Ugd2UKZG9uJ3QgaGF2ZSB0byBiZSBzdXBlci1jYXJlZnVs IGFueSBtb3JlIHdpdGggcnVubmluZyBpbnRvIGEgem9tYmllIGdwdS4KVGhlcmUncyBub3cgb25s eSB0d28gcGxhY2VzIHdlIGNoZWNrIGZvciBhIHdlZGdlIGdwdTogcmVxdWVzdF9hbGxvYyAodG8K Y2F0Y2ggY29tbWFuZCBzdWJtaXNzaW9uKSBhbmQgaW4gdGhlIGlubmVyIGxvb3Agb2Ygd2FpdF9y ZXF1ZXN0IChubyBwb2ludApiYWlsaW5nIG91dCBpZiB3ZSBkb24ndCBoYXZlIHRvIHdhaXQgYW55 d2F5KS4iCgpXaXRoIHRoYXQgYWRkZWQgUmV2aWV3ZWQtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmll bC52ZXR0ZXJAZmZ3bGwuY2g+Cgo+IAo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hy aXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oICAgICAgICAgfCAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5j ICAgICAgICAgfCA0MCArKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jICAgIHwgIDcgKy0tLS0tCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2xyYy5jICAgICAgICB8ICA3IC0tLS0tLQo+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgfCAgNiAtLS0tLQo+ICA1IGZpbGVzIGNoYW5n ZWQsIDE1IGluc2VydGlvbnMoKyksIDQ3IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaAo+IGluZGV4IDJhNGNmYTA2YzI4ZC4uZWU3Njc3MzQzMDU2IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCj4gQEAgLTIxODEsNiArMjE4MSw3IEBAIHN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCB7Cj4gIAkvKiogT24gV2hpY2ggcmluZyB0aGlzIHJlcXVlc3Qgd2FzIGdlbmVy YXRlZCAqLwo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTU7Cj4gIAlzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICpyaW5nOwo+ICsJdW5zaWduZWQgcmVzZXRfY291bnRlcjsKPiAgCj4gIAkg LyoqIEdFTSBzZXF1ZW5jZSBudW1iZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBwcmV2aW91cyByZXF1 ZXN0LAo+ICAJICAqIHdoZW4gdGhlIEhXUyBicmVhZGNydW1iIGlzIGVxdWFsIHRvIHRoaXMgdGhl IEdQVSBpcyBwcm9jZXNzaW5nCj4gQEAgLTMwNDksNyArMzA1MCw2IEBAIHZvaWQgX19pOTE1X2Fk ZF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICAjZGVmaW5lIGk5 MTVfYWRkX3JlcXVlc3Rfbm9fZmx1c2gocmVxKSBcCj4gIAlfX2k5MTVfYWRkX3JlcXVlc3QocmVx LCBOVUxMLCBmYWxzZSkKPiAgaW50IF9faTkxNV93YWl0X3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICpyZXEsCj4gLQkJCXVuc2lnbmVkIHJlc2V0X2NvdW50ZXIsCj4gIAkJCWJv b2wgaW50ZXJydXB0aWJsZSwKPiAgCQkJczY0ICp0aW1lb3V0LAo+ICAJCQlzdHJ1Y3QgaW50ZWxf cnBzX2NsaWVudCAqcnBzKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBpbmRleCBiZmYyNDVk ZThhZGUuLjY4ZDRiYWI5M2ZkOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IEBAIC0x MjIzLDcgKzEyMjMsNiBAQCBzdGF0aWMgaW50IF9faTkxNV9zcGluX3JlcXVlc3Qoc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsIGludCBzdGF0ZSkKPiAgLyoqCj4gICAqIF9faTkxNV93 YWl0X3JlcXVlc3QgLSB3YWl0IHVudGlsIGV4ZWN1dGlvbiBvZiByZXF1ZXN0IGhhcyBmaW5pc2hl ZAo+ICAgKiBAcmVxOiBkdWghCj4gLSAqIEByZXNldF9jb3VudGVyOiByZXNldCBzZXF1ZW5jZSBh c3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIHJlcXVlc3QKPiAgICogQGludGVycnVwdGlibGU6IGRv IGFuIGludGVycnVwdGlibGUgd2FpdCAobm9ybWFsbHkgeWVzKQo+ICAgKiBAdGltZW91dDogaW4g LSBob3cgbG9uZyB0byB3YWl0IChOVUxMIGZvcmV2ZXIpOyBvdXQgLSBob3cgbXVjaCB0aW1lIHJl bWFpbmluZwo+ICAgKgo+IEBAIC0xMjM4LDcgKzEyMzcsNiBAQCBzdGF0aWMgaW50IF9faTkxNV9z cGluX3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsIGludCBzdGF0ZSkK PiAgICogZXJybm8gd2l0aCByZW1haW5pbmcgdGltZSBmaWxsZWQgaW4gdGltZW91dCBhcmd1bWVu dC4KPiAgICovCj4gIGludCBfX2k5MTVfd2FpdF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcmVxLAo+IC0JCQl1bnNpZ25lZCByZXNldF9jb3VudGVyLAo+ICAJCQlib29sIGlu dGVycnVwdGlibGUsCj4gIAkJCXM2NCAqdGltZW91dCwKPiAgCQkJc3RydWN0IGludGVsX3Jwc19j bGllbnQgKnJwcykKPiBAQCAtMTI5Nyw3ICsxMjk1LDcgQEAgaW50IF9faTkxNV93YWl0X3JlcXVl c3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gIAo+ICAJCS8qIFdlIG5lZWQg dG8gY2hlY2sgd2hldGhlciBhbnkgZ3B1IHJlc2V0IGhhcHBlbmVkIGluIGJldHdlZW4KPiAgCQkg KiB0aGUgY2FsbGVyIGdyYWJiaW5nIHRoZSBzZXFubyBhbmQgbm93IC4uLiAqLwo+IC0JCWlmIChy ZXNldF9jb3VudGVyICE9IGk5MTVfcmVzZXRfY291bnRlcigmZGV2X3ByaXYtPmdwdV9lcnJvcikp IHsKPiArCQlpZiAocmVxLT5yZXNldF9jb3VudGVyICE9IGk5MTVfcmVzZXRfY291bnRlcigmZGV2 X3ByaXYtPmdwdV9lcnJvcikpIHsKPiAgCQkJLyogLi4uIGJ1dCB1cGdyYWRlIHRoZSAtRUFHQUlO IHRvIGFuIC1FSU8gaWYgdGhlIGdwdQo+ICAJCQkgKiBpcyB0cnVlbHkgZ29uZS4gKi8KPiAgCQkJ cmV0ID0gaTkxNV9nZW1fY2hlY2tfd2VkZ2UoJmRldl9wcml2LT5ncHVfZXJyb3IsIGludGVycnVw dGlibGUpOwo+IEBAIC0xNDcwLDEzICsxNDY4LDcgQEAgaTkxNV93YWl0X3JlcXVlc3Qoc3RydWN0 IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4gIAo+ICAJQlVHX09OKCFtdXRleF9pc19sb2Nr ZWQoJmRldi0+c3RydWN0X211dGV4KSk7Cj4gIAo+IC0JcmV0ID0gaTkxNV9nZW1fY2hlY2tfd2Vk Z2UoJmRldl9wcml2LT5ncHVfZXJyb3IsIGludGVycnVwdGlibGUpOwo+IC0JaWYgKHJldCkKPiAt CQlyZXR1cm4gcmV0Owo+IC0KPiAtCXJldCA9IF9faTkxNV93YWl0X3JlcXVlc3QocmVxLAo+IC0J CQkJICBpOTE1X3Jlc2V0X2NvdW50ZXIoJmRldl9wcml2LT5ncHVfZXJyb3IpLAo+IC0JCQkJICBp bnRlcnJ1cHRpYmxlLCBOVUxMLCBOVUxMKTsKPiArCXJldCA9IF9faTkxNV93YWl0X3JlcXVlc3Qo cmVxLCBpbnRlcnJ1cHRpYmxlLCBOVUxMLCBOVUxMKTsKPiAgCWlmIChyZXQpCj4gIAkJcmV0dXJu IHJldDsKPiAgCj4gQEAgLTE1NTEsNyArMTU0Myw2IEBAIGk5MTVfZ2VtX29iamVjdF93YWl0X3Jl bmRlcmluZ19fbm9uYmxvY2tpbmcoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiAg CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBvYmotPmJhc2UuZGV2Owo+ICAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAgCXN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdHNbSTkxNV9OVU1fUklOR1NdOwo+IC0JdW5zaWduZWQg cmVzZXRfY291bnRlcjsKPiAgCWludCByZXQsIGksIG4gPSAwOwo+ICAKPiAgCUJVR19PTighbXV0 ZXhfaXNfbG9ja2VkKCZkZXYtPnN0cnVjdF9tdXRleCkpOwo+IEBAIC0xNTYwLDEyICsxNTUxLDYg QEAgaTkxNV9nZW1fb2JqZWN0X3dhaXRfcmVuZGVyaW5nX19ub25ibG9ja2luZyhzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAJaWYgKCFvYmotPmFjdGl2ZSkKPiAgCQlyZXR1cm4g MDsKPiAgCj4gLQlyZXQgPSBpOTE1X2dlbV9jaGVja193ZWRnZSgmZGV2X3ByaXYtPmdwdV9lcnJv ciwgdHJ1ZSk7Cj4gLQlpZiAocmV0KQo+IC0JCXJldHVybiByZXQ7Cj4gLQo+IC0JcmVzZXRfY291 bnRlciA9IGk5MTVfcmVzZXRfY291bnRlcigmZGV2X3ByaXYtPmdwdV9lcnJvcik7Cj4gLQo+ICAJ aWYgKHJlYWRvbmx5KSB7Cj4gIAkJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7Cj4g IAo+IEBAIC0xNTg3LDkgKzE1NzIsOSBAQCBpOTE1X2dlbV9vYmplY3Rfd2FpdF9yZW5kZXJpbmdf X25vbmJsb2NraW5nKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gIAl9Cj4gIAo+ ICAJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4gKwlyZXQgPSAwOwo+ICAJZm9y IChpID0gMDsgcmV0ID09IDAgJiYgaSA8IG47IGkrKykKPiAtCQlyZXQgPSBfX2k5MTVfd2FpdF9y ZXF1ZXN0KHJlcXVlc3RzW2ldLCByZXNldF9jb3VudGVyLCB0cnVlLAo+IC0JCQkJCSAgTlVMTCwg cnBzKTsKPiArCQlyZXQgPSBfX2k5MTVfd2FpdF9yZXF1ZXN0KHJlcXVlc3RzW2ldLCB0cnVlLCBO VUxMLCBycHMpOwo+ICAJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ICAKPiAgCWZv ciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKPiBAQCAtMjY5Myw2ICsyNjc4LDcgQEAgaW50IGk5MTVf Z2VtX3JlcXVlc3RfYWxsb2Moc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiAgCQkJICAg c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICoqcmVxX291dCkKPiAgewo+ICAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShyaW5nLT5kZXYpOwo+ICsJdW5zaWdu ZWQgcmVzZXRfY291bnRlciA9IGk5MTVfcmVzZXRfY291bnRlcigmZGV2X3ByaXYtPmdwdV9lcnJv cik7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsKPiAgCWludCByZXQ7Cj4g IAo+IEBAIC0yNzAxLDYgKzI2ODcsMTEgQEAgaW50IGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2Moc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiAgCj4gIAkqcmVxX291dCA9IE5VTEw7Cj4gIAo+ ICsJcmV0ID0gaTkxNV9nZW1fY2hlY2tfd2VkZ2UoJmRldl9wcml2LT5ncHVfZXJyb3IsCj4gKwkJ CQkgICBkZXZfcHJpdi0+bW0uaW50ZXJydXB0aWJsZSk7Cj4gKwlpZiAocmV0KQo+ICsJCXJldHVy biByZXQ7Cj4gKwo+ICAJcmVxID0ga21lbV9jYWNoZV96YWxsb2MoZGV2X3ByaXYtPnJlcXVlc3Rz LCBHRlBfS0VSTkVMKTsKPiAgCWlmIChyZXEgPT0gTlVMTCkKPiAgCQlyZXR1cm4gLUVOT01FTTsK PiBAQCAtMjcxMiw2ICsyNzAzLDcgQEAgaW50IGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2Moc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiAgCWtyZWZfaW5pdCgmcmVxLT5yZWYpOwo+ICAJcmVx LT5pOTE1ID0gZGV2X3ByaXY7Cj4gIAlyZXEtPnJpbmcgPSByaW5nOwo+ICsJcmVxLT5yZXNldF9j b3VudGVyID0gcmVzZXRfY291bnRlcjsKPiAgCXJlcS0+Y3R4ICA9IGN0eDsKPiAgCWk5MTVfZ2Vt X2NvbnRleHRfcmVmZXJlbmNlKHJlcS0+Y3R4KTsKPiAgCj4gQEAgLTMwNzIsMTEgKzMwNjQsOSBA QCByZXRpcmU6Cj4gIGludAo+ICBpOTE1X2dlbV93YWl0X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKPiAgewo+IC0Jc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAgCXN0cnVj dCBkcm1faTkxNV9nZW1fd2FpdCAqYXJncyA9IGRhdGE7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqOwo+ICAJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXFbSTkxNV9O VU1fUklOR1NdOwo+IC0JdW5zaWduZWQgcmVzZXRfY291bnRlcjsKPiAgCWludCBpLCBuID0gMDsK PiAgCWludCByZXQ7Cj4gIAo+IEBAIC0zMTEwLDcgKzMxMDAsNiBAQCBpOTE1X2dlbV93YWl0X2lv Y3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAq ZmlsZSkKPiAgCX0KPiAgCj4gIAlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgmb2JqLT5iYXNl KTsKPiAtCXJlc2V0X2NvdW50ZXIgPSBpOTE1X3Jlc2V0X2NvdW50ZXIoJmRldl9wcml2LT5ncHVf ZXJyb3IpOwo+ICAKPiAgCWZvciAoaSA9IDA7IGkgPCBJOTE1X05VTV9SSU5HUzsgaSsrKSB7Cj4g IAkJaWYgKG9iai0+bGFzdF9yZWFkX3JlcVtpXSA9PSBOVUxMKQo+IEBAIC0zMTIzLDcgKzMxMTIs NyBAQCBpOTE1X2dlbV93YWl0X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRh dGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKPiAgCj4gIAlmb3IgKGkgPSAwOyBpIDwgbjsgaSsr KSB7Cj4gIAkJaWYgKHJldCA9PSAwKQo+IC0JCQlyZXQgPSBfX2k5MTVfd2FpdF9yZXF1ZXN0KHJl cVtpXSwgcmVzZXRfY291bnRlciwgdHJ1ZSwKPiArCQkJcmV0ID0gX19pOTE1X3dhaXRfcmVxdWVz dChyZXFbaV0sIHRydWUsCj4gIAkJCQkJCSAgYXJncy0+dGltZW91dF9ucyA+IDAgPyAmYXJncy0+ dGltZW91dF9ucyA6IE5VTEwsCj4gIAkJCQkJCSAgZmlsZS0+ZHJpdmVyX3ByaXYpOwo+ICAJCWk5 MTVfZ2VtX3JlcXVlc3RfdW5yZWZlcmVuY2VfX3VubG9ja2VkKHJlcVtpXSk7Cj4gQEAgLTMxNTUs NyArMzE0NCw2IEBAIF9faTkxNV9nZW1fb2JqZWN0X3N5bmMoc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaiwKPiAgCWlmICghaTkxNV9zZW1hcGhvcmVfaXNfZW5hYmxlZChvYmotPmJhc2Uu ZGV2KSkgewo+ICAJCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShvYmot PmJhc2UuZGV2KTsKPiAgCQlyZXQgPSBfX2k5MTVfd2FpdF9yZXF1ZXN0KGZyb21fcmVxLAo+IC0J CQkJCSAgaTkxNV9yZXNldF9jb3VudGVyKCZpOTE1LT5ncHVfZXJyb3IpLAo+ICAJCQkJCSAgaTkx NS0+bW0uaW50ZXJydXB0aWJsZSwKPiAgCQkJCQkgIE5VTEwsCj4gIAkJCQkJICAmaTkxNS0+cnBz LnNlbWFwaG9yZXMpOwo+IEBAIC00MDg0LDcgKzQwNzIsNiBAQCBpOTE1X2dlbV9yaW5nX3Rocm90 dGxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKPiAgCXN0 cnVjdCBkcm1faTkxNV9maWxlX3ByaXZhdGUgKmZpbGVfcHJpdiA9IGZpbGUtPmRyaXZlcl9wcml2 Owo+ICAJdW5zaWduZWQgbG9uZyByZWNlbnRfZW5vdWdoID0gamlmZmllcyAtIERSTV9JOTE1X1RI Uk9UVExFX0pJRkZJRVM7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3Qs ICp0YXJnZXQgPSBOVUxMOwo+IC0JdW5zaWduZWQgcmVzZXRfY291bnRlcjsKPiAgCWludCByZXQ7 Cj4gIAo+ICAJcmV0ID0gaTkxNV9nZW1fd2FpdF9mb3JfZXJyb3IoJmRldl9wcml2LT5ncHVfZXJy b3IpOwo+IEBAIC00MTA5LDcgKzQwOTYsNiBAQCBpOTE1X2dlbV9yaW5nX3Rocm90dGxlKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKPiAgCj4gIAkJdGFyZ2V0 ID0gcmVxdWVzdDsKPiAgCX0KPiAtCXJlc2V0X2NvdW50ZXIgPSBpOTE1X3Jlc2V0X2NvdW50ZXIo JmRldl9wcml2LT5ncHVfZXJyb3IpOwo+ICAJaWYgKHRhcmdldCkKPiAgCQlpOTE1X2dlbV9yZXF1 ZXN0X3JlZmVyZW5jZSh0YXJnZXQpOwo+ICAJc3Bpbl91bmxvY2soJmZpbGVfcHJpdi0+bW0ubG9j ayk7Cj4gQEAgLTQxMTcsNyArNDEwMyw3IEBAIGk5MTVfZ2VtX3JpbmdfdGhyb3R0bGUoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlKQo+ICAJaWYgKHRhcmdldCA9 PSBOVUxMKQo+ICAJCXJldHVybiAwOwo+ICAKPiAtCXJldCA9IF9faTkxNV93YWl0X3JlcXVlc3Qo dGFyZ2V0LCByZXNldF9jb3VudGVyLCB0cnVlLCBOVUxMLCBOVUxMKTsKPiArCXJldCA9IF9faTkx NV93YWl0X3JlcXVlc3QodGFyZ2V0LCB0cnVlLCBOVUxMLCBOVUxMKTsKPiAgCWlmIChyZXQgPT0g MCkKPiAgCQlxdWV1ZV9kZWxheWVkX3dvcmsoZGV2X3ByaXYtPndxLCAmZGV2X3ByaXYtPm1tLnJl dGlyZV93b3JrLCAwKTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGlu ZGV4IDUxMWVhZDA4Y2NkOC4uNDQ0N2U3M2I1NGRiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYwo+IEBAIC0xMTMxMyw3ICsxMTMxMyw2IEBAIHN0YXRpYyB2b2lkIGludGVs X21taW9fZmxpcF93b3JrX2Z1bmMoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+ICAKPiAgCWlm IChtbWlvX2ZsaXAtPnJlcSkgewo+ICAJCVdBUk5fT04oX19pOTE1X3dhaXRfcmVxdWVzdChtbWlv X2ZsaXAtPnJlcSwKPiAtCQkJCQkgICAgbW1pb19mbGlwLT5jcnRjLT5yZXNldF9jb3VudGVyLAo+ ICAJCQkJCSAgICBmYWxzZSwgTlVMTCwKPiAgCQkJCQkgICAgJm1taW9fZmxpcC0+aTkxNS0+cnBz Lm1taW9mbGlwcykpOwo+ICAJCWk5MTVfZ2VtX3JlcXVlc3RfdW5yZWZlcmVuY2VfX3VubG9ja2Vk KG1taW9fZmxpcC0+cmVxKTsKPiBAQCAtMTMzMDUsOSArMTMzMDQsNiBAQCBzdGF0aWMgaW50IGlu dGVsX2F0b21pY19wcmVwYXJlX2NvbW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAKPiAg CXJldCA9IGRybV9hdG9taWNfaGVscGVyX3ByZXBhcmVfcGxhbmVzKGRldiwgc3RhdGUpOwo+ICAJ aWYgKCFyZXQgJiYgIWFzeW5jICYmICFpOTE1X3Jlc2V0X2luX3Byb2dyZXNzKCZkZXZfcHJpdi0+ Z3B1X2Vycm9yKSkgewo+IC0JCXUzMiByZXNldF9jb3VudGVyOwo+IC0KPiAtCQlyZXNldF9jb3Vu dGVyID0gaTkxNV9yZXNldF9jb3VudGVyKCZkZXZfcHJpdi0+Z3B1X2Vycm9yKTsKPiAgCQltdXRl eF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKPiAgCj4gIAkJZm9yX2VhY2hfcGxhbmVfaW5f c3RhdGUoc3RhdGUsIHBsYW5lLCBwbGFuZV9zdGF0ZSwgaSkgewo+IEBAIC0xMzMxOCw4ICsxMzMx NCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfYXRvbWljX3ByZXBhcmVfY29tbWl0KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCj4gIAkJCQljb250aW51ZTsKPiAgCj4gIAkJCXJldCA9IF9faTkxNV93YWl0 X3JlcXVlc3QoaW50ZWxfcGxhbmVfc3RhdGUtPndhaXRfcmVxLAo+IC0JCQkJCQkgIHJlc2V0X2Nv dW50ZXIsIHRydWUsCj4gLQkJCQkJCSAgTlVMTCwgTlVMTCk7Cj4gKwkJCQkJCSAgdHJ1ZSwgTlVM TCwgTlVMTCk7Cj4gIAo+ICAJCQkvKiBTd2FsbG93IC1FSU8gZXJyb3JzIHRvIGFsbG93IHVwZGF0 ZXMgZHVyaW5nIGh3IGxvY2t1cC4gKi8KPiAgCQkJaWYgKHJldCA9PSAtRUlPKQo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2xyYy5jCj4gaW5kZXggNGViYWZhYjUzZjMwLi5mZTcxYzc2OGRiYzQgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+IEBAIC04MTksMTYgKzgxOSw5IEBAIHN0YXRpYyBp bnQgbG9naWNhbF9yaW5nX3ByZXBhcmUoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEs IGludCBieXRlcykKPiAgICovCj4gIGludCBpbnRlbF9sb2dpY2FsX3JpbmdfYmVnaW4oc3RydWN0 IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsIGludCBudW1fZHdvcmRzKQo+ICB7Cj4gLQlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXY7Cj4gIAlpbnQgcmV0Owo+ICAKPiAgCVdBUk5f T04ocmVxID09IE5VTEwpOwo+IC0JZGV2X3ByaXYgPSByZXEtPnJpbmctPmRldi0+ZGV2X3ByaXZh dGU7Cj4gLQo+IC0JcmV0ID0gaTkxNV9nZW1fY2hlY2tfd2VkZ2UoJmRldl9wcml2LT5ncHVfZXJy b3IsCj4gLQkJCQkgICBkZXZfcHJpdi0+bW0uaW50ZXJydXB0aWJsZSk7Cj4gLQlpZiAocmV0KQo+ IC0JCXJldHVybiByZXQ7Cj4gIAo+ICAJcmV0ID0gbG9naWNhbF9yaW5nX3ByZXBhcmUocmVxLCBu dW1fZHdvcmRzICogc2l6ZW9mKHVpbnQzMl90KSk7Cj4gIAlpZiAocmV0KQo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiBpbmRleCA4OTcwMjY3ZDI3YmIuLjkxMzUyNmMw MjY0ZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVy LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiBAQCAt MjI4Niw3ICsyMjg2LDYgQEAgaW50IGludGVsX3JpbmdfaWRsZShzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICpyaW5nKQo+ICAKPiAgCS8qIE1ha2Ugc3VyZSB3ZSBkbyBub3QgdHJpZ2dlciBhbnkgcmV0 aXJlcyAqLwo+ICAJcmV0dXJuIF9faTkxNV93YWl0X3JlcXVlc3QocmVxLAo+IC0JCQkJICAgaTkx NV9yZXNldF9jb3VudGVyKCZ0b19pOTE1KHJpbmctPmRldiktPmdwdV9lcnJvciksCj4gIAkJCQkg ICB0b19pOTE1KHJpbmctPmRldiktPm1tLmludGVycnVwdGlibGUsCj4gIAkJCQkgICBOVUxMLCBO VUxMKTsKPiAgfQo+IEBAIC0yNDE3LDExICsyNDE2LDYgQEAgaW50IGludGVsX3JpbmdfYmVnaW4o c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gIAlyaW5nID0gcmVxLT5yaW5nOwo+ ICAJZGV2X3ByaXYgPSByaW5nLT5kZXYtPmRldl9wcml2YXRlOwo+ICAKPiAtCXJldCA9IGk5MTVf Z2VtX2NoZWNrX3dlZGdlKCZkZXZfcHJpdi0+Z3B1X2Vycm9yLAo+IC0JCQkJICAgZGV2X3ByaXYt Pm1tLmludGVycnVwdGlibGUpOwo+IC0JaWYgKHJldCkKPiAtCQlyZXR1cm4gcmV0Owo+IC0KPiAg CXJldCA9IF9faW50ZWxfcmluZ19wcmVwYXJlKHJpbmcsIG51bV9kd29yZHMgKiBzaXplb2YodWlu dDMyX3QpKTsKPiAgCWlmIChyZXQpCj4gIAkJcmV0dXJuIHJldDsKPiAtLSAKPiAyLjYuMgo+IAoK LS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0 dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==