From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 07/32] drm/i915: Store the reset counter when constructing a request Date: Wed, 16 Dec 2015 10:44:19 +0100 Message-ID: <20151216094419.GP30437@phenom.ffwll.local> References: <1449833608-22125-1-git-send-email-chris@chris-wilson.co.uk> <1449833608-22125-8-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-f44.google.com (mail-wm0-f44.google.com [74.125.82.44]) by gabe.freedesktop.org (Postfix) with ESMTPS id C0F226E872 for ; Wed, 16 Dec 2015 01:44:22 -0800 (PST) Received: by mail-wm0-f44.google.com with SMTP id n186so201772540wmn.1 for ; Wed, 16 Dec 2015 01:44:22 -0800 (PST) Content-Disposition: inline In-Reply-To: <1449833608-22125-8-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 , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBEZWMgMTEsIDIwMTUgYXQgMTE6MzM6MDNBTSArMDAwMCwgQ2hyaXMgV2lsc29uIHdy b3RlOgo+IEFzIHRoZSByZXF1ZXN0IGlzIG9ubHkgdmFsaWQgZHVyaW5nIHRoZSBzYW1lIGdsb2Jh bCByZXNldCBlcG9jaCwgd2UgY2FuCj4gcmVjb3JkIHRoZSBjdXJyZW50IHJlc2V0X2NvdW50ZXIg d2hlbiBjb25zdHJ1Y3RpbmcgdGhlIHJlcXVlc3QgYW5kIHJldXNlCj4gaXQgd2hlbiB3YWl0aW5n IHVwb24gdGhhdCByZXF1ZXN0IGluIGZ1dHVyZS4gVGhpcyByZW1vdmVzIGEgdmVyeSBoYWlyeQo+ IGF0b21pYyBjaGVjayBzZXJpYWxpc2VkIGJ5IHRoZSBzdHJ1Y3RfbXV0ZXggYXQgdGhlIHRpbWUg b2Ygd2FpdGluZyBhbmQKPiBhbGxvd3MgdXMgdG8gdHJhbnNmZXIgdGhvc2Ugd2FpdHMgdG8gYSBj ZW50cmFsIGRpc3BhdGNoZXIgZm9yIGFsbAo+IHdhaXRlcnMgYW5kIGFsbCByZXF1ZXN0cy4KPiAK PiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4K PiBDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KCiJnbG9iYWwgcmVz ZXQgZXBvY2giIGdvdCBtZSB0aGlua2luZyBhYm91dCB3aGF0IHRoZSBpbXBsaWNhdGlvbnMgZm9y IFREUgphcmUuIE5vdyB0aGUgY3VycmVudCBURFIgcGF0Y2hlcyBpaXJjIGFyZSBzdGlsbCBzb21l d2hhdCB0YWNrZWQgb24gdGhlCnNpZGUgb2YgdGhlIGV4aXN0aW5nIHJlc2V0IGhhbmRsaW5nLCBh bmQgc28gZG9uJ3QgZW5kIHVwIGluY3JlbWVudGluZyB0aGUKcmVzZXQgY291bnRlci4KCkJ1dCBJ IGRvbid0IGFncmVlIHdpdGggdGhhdCBkZXNpZ24gZGVjaXNpb24sIGFuZCBJIHRoaW5rIGFueSBy ZXNldCBtdXN0CmluY3JlbWVudCB0aGUgY291bnRlciAoYW5kIGRvIHRoZSByZXNldC1pbi1wcm9n cmVzcyBmbGFnIGRhbmNlKSwgc2luY2UKdGhhdCdzIHRoZSBvbmx5IHdheSB0byBndWFyYW50ZWUg dGhhdCB3YWl0ZXJzIHdpbGwgZ2V0IG9mZiBsb2Nrcy4gRXZlbgp0aG91Z2ggd2UgaGF2ZSBmZXdl ciBvZiB0aG9zZSB3aXRoIGV2ZXJ5IGtlcm5lbCByZWxlYXNlLgoKQnV0IHRoZW4gdGhlcmUncyB0 aGUgcHJvYmxlbSB0aGF0IGF0IGxlYXN0IGZvciBzb21lIHJlcXVlc3QgdGhleSdsbCBzdGlsbApi ZSB2YWxpZCBhZnRlciB0aGUgcmVzZXQsIGFuZCB3b3VsZCBicmVhayB3aXRoIHRoaXMgZGVzaWdu IGhlcmUuIFdoaWNoIGNhbgplYXNpbHkgYmUgZml4ZWQgYnkgaW5jcmVtZW50aW5nIHRoZSByZXNl dCBlcG9jaCBmb3IgZXZlcnkgcmVxdWVzdCB3ZQpkZWNpZGUgc2hvdWxkIGtlZXAgcnVubmluZyAo b3Igd2hpY2ggZ2V0cyByZS1zY2hlZHVsZWQvZW1pdHRlZCBmb3IgYW5vdGhlcgphdHRlbXB0KSwg YW5kIGRvaW5nIHRoYXQgZXhwbGljaXRseSBzZWVtcyBsaWtlIGEgZ29vZCBpZGVhLgoKVGhlIG9u bHkgaW1wbGljYXRpb24gSSBzZWUgaXMgdGhhdCBmb3IgcGVyLXJpbmcgcmVzZXQgd2UgbWlnaHQg d2FudCB0byBnbwp0byBhIHBlci1lbmdpbmUgcmVzZXQgZXBvY2ggY291bnRlci4KClNvIGdpdmVu IGFsbCB0aGF0IEkgdGhpbmsgdGhpcyBpcyBhIHNvbGlkIGlkZWEuIEJ1dCBvbmUgY29tbWVudCBi ZWxvdyBhcyBhCmZhbGxvdXQuCgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oICAgICAgICAgfCAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAg ICAgICAgfCA0MCArKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jICAgIHwgIDcgKy0tLS0tCj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2xyYy5jICAgICAgICB8ICA3IC0tLS0tLQo+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgfCAgNiAtLS0tLQo+ICA1IGZpbGVzIGNoYW5nZWQs IDE1IGluc2VydGlvbnMoKyksIDQ3IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaAo+IGluZGV4IDEwNDNkZGQ2NzBhNS4uZjMwYzMwNWE2ODg5IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCj4gQEAgLTIxNzgsNiArMjE3OCw3IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCB7Cj4gIAkvKiogT24gV2hpY2ggcmluZyB0aGlzIHJlcXVlc3Qgd2FzIGdlbmVyYXRl ZCAqLwo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTU7Cj4gIAlzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICpyaW5nOwo+ICsJdW5zaWduZWQgcmVzZXRfY291bnRlcjsKPiAgCj4gIAkgLyoq IEdFTSBzZXF1ZW5jZSBudW1iZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBwcmV2aW91cyByZXF1ZXN0 LAo+ICAJICAqIHdoZW4gdGhlIEhXUyBicmVhZGNydW1iIGlzIGVxdWFsIHRvIHRoaXMgdGhlIEdQ VSBpcyBwcm9jZXNzaW5nCj4gQEAgLTMwNTksNyArMzA2MCw2IEBAIHZvaWQgX19pOTE1X2FkZF9y ZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICAjZGVmaW5lIGk5MTVf YWRkX3JlcXVlc3Rfbm9fZmx1c2gocmVxKSBcCj4gIAlfX2k5MTVfYWRkX3JlcXVlc3QocmVxLCBO VUxMLCBmYWxzZSkKPiAgaW50IF9faTkxNV93YWl0X3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0ICpyZXEsCj4gLQkJCXVuc2lnbmVkIHJlc2V0X2NvdW50ZXIsCj4gIAkJCWJvb2wg aW50ZXJydXB0aWJsZSwKPiAgCQkJczY0ICp0aW1lb3V0LAo+ICAJCQlzdHJ1Y3QgaW50ZWxfcnBz X2NsaWVudCAqcnBzKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBpbmRleCAyN2U2MTdiNzY0 MTguLmIxN2NjMGU0MmE0ZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IEBAIC0xMjE0 LDcgKzEyMTQsNiBAQCBzdGF0aWMgaW50IF9faTkxNV9zcGluX3JlcXVlc3Qoc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpyZXEsIGludCBzdGF0ZSkKPiAgLyoqCj4gICAqIF9faTkxNV93YWl0 X3JlcXVlc3QgLSB3YWl0IHVudGlsIGV4ZWN1dGlvbiBvZiByZXF1ZXN0IGhhcyBmaW5pc2hlZAo+ ICAgKiBAcmVxOiBkdWghCj4gLSAqIEByZXNldF9jb3VudGVyOiByZXNldCBzZXF1ZW5jZSBhc3Nv Y2lhdGVkIHdpdGggdGhlIGdpdmVuIHJlcXVlc3QKPiAgICogQGludGVycnVwdGlibGU6IGRvIGFu IGludGVycnVwdGlibGUgd2FpdCAobm9ybWFsbHkgeWVzKQo+ICAgKiBAdGltZW91dDogaW4gLSBo b3cgbG9uZyB0byB3YWl0IChOVUxMIGZvcmV2ZXIpOyBvdXQgLSBob3cgbXVjaCB0aW1lIHJlbWFp bmluZwo+ICAgKgo+IEBAIC0xMjI5LDcgKzEyMjgsNiBAQCBzdGF0aWMgaW50IF9faTkxNV9zcGlu X3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsIGludCBzdGF0ZSkKPiAg ICogZXJybm8gd2l0aCByZW1haW5pbmcgdGltZSBmaWxsZWQgaW4gdGltZW91dCBhcmd1bWVudC4K PiAgICovCj4gIGludCBfX2k5MTVfd2FpdF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxLAo+IC0JCQl1bnNpZ25lZCByZXNldF9jb3VudGVyLAo+ICAJCQlib29sIGludGVy cnVwdGlibGUsCj4gIAkJCXM2NCAqdGltZW91dCwKPiAgCQkJc3RydWN0IGludGVsX3Jwc19jbGll bnQgKnJwcykKPiBAQCAtMTI4OCw3ICsxMjg2LDcgQEAgaW50IF9faTkxNV93YWl0X3JlcXVlc3Qo c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gIAo+ICAJCS8qIFdlIG5lZWQgdG8g Y2hlY2sgd2hldGhlciBhbnkgZ3B1IHJlc2V0IGhhcHBlbmVkIGluIGJldHdlZW4KPiAgCQkgKiB0 aGUgY2FsbGVyIGdyYWJiaW5nIHRoZSBzZXFubyBhbmQgbm93IC4uLiAqLwo+IC0JCWlmIChyZXNl dF9jb3VudGVyICE9IGk5MTVfcmVzZXRfY291bnRlcigmZGV2X3ByaXYtPmdwdV9lcnJvcikpIHsK PiArCQlpZiAocmVxLT5yZXNldF9jb3VudGVyICE9IGk5MTVfcmVzZXRfY291bnRlcigmZGV2X3By aXYtPmdwdV9lcnJvcikpIHsKClJFQURfT05DRShyZXEtPnJlc2V0KSBhcyBhIGZ1dHVyZSBwcm9v ZmluZyBtYXliZSBmb3IgVERSPyBPciBwdW50IHRoYXQgdG8KVERSPyBDb3VsZCBiZSBjb25mdXNp bmcgdG8gUkVBRF9PTkNFIHNvbWV0aGluZyB0aGF0J3MgKHdpdGggdGhlIGN1cnJlbnQKY29kZSBh dCBsZWFzdCkgaW52YXJpYW50LgoKU28gZWl0aGVyIHdheTogUmV2aWV3ZWQtYnk6IERhbmllbCBW ZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+CgoKPiAgCQkJLyogLi4uIGJ1dCB1cGdyYWRl IHRoZSAtRUFHQUlOIHRvIGFuIC1FSU8gaWYgdGhlIGdwdQo+ICAJCQkgKiBpcyB0cnVlbHkgZ29u ZS4gKi8KPiAgCQkJcmV0ID0gaTkxNV9nZW1fY2hlY2tfd2VkZ2UoJmRldl9wcml2LT5ncHVfZXJy b3IsIGludGVycnVwdGlibGUpOwo+IEBAIC0xNDYxLDEzICsxNDU5LDcgQEAgaTkxNV93YWl0X3Jl cXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4gIAo+ICAJQlVHX09OKCFt dXRleF9pc19sb2NrZWQoJmRldi0+c3RydWN0X211dGV4KSk7Cj4gIAo+IC0JcmV0ID0gaTkxNV9n ZW1fY2hlY2tfd2VkZ2UoJmRldl9wcml2LT5ncHVfZXJyb3IsIGludGVycnVwdGlibGUpOwo+IC0J aWYgKHJldCkKPiAtCQlyZXR1cm4gcmV0Owo+IC0KPiAtCXJldCA9IF9faTkxNV93YWl0X3JlcXVl c3QocmVxLAo+IC0JCQkJICBpOTE1X3Jlc2V0X2NvdW50ZXIoJmRldl9wcml2LT5ncHVfZXJyb3Ip LAo+IC0JCQkJICBpbnRlcnJ1cHRpYmxlLCBOVUxMLCBOVUxMKTsKPiArCXJldCA9IF9faTkxNV93 YWl0X3JlcXVlc3QocmVxLCBpbnRlcnJ1cHRpYmxlLCBOVUxMLCBOVUxMKTsKPiAgCWlmIChyZXQp Cj4gIAkJcmV0dXJuIHJldDsKPiAgCj4gQEAgLTE1NDIsNyArMTUzNCw2IEBAIGk5MTVfZ2VtX29i amVjdF93YWl0X3JlbmRlcmluZ19fbm9uYmxvY2tpbmcoc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaiwKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBvYmotPmJhc2UuZGV2Owo+ICAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAg CXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdHNbSTkxNV9OVU1fUklOR1NdOwo+ IC0JdW5zaWduZWQgcmVzZXRfY291bnRlcjsKPiAgCWludCByZXQsIGksIG4gPSAwOwo+ICAKPiAg CUJVR19PTighbXV0ZXhfaXNfbG9ja2VkKCZkZXYtPnN0cnVjdF9tdXRleCkpOwo+IEBAIC0xNTUx LDEyICsxNTQyLDYgQEAgaTkxNV9nZW1fb2JqZWN0X3dhaXRfcmVuZGVyaW5nX19ub25ibG9ja2lu ZyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAJaWYgKCFvYmotPmFjdGl2ZSkK PiAgCQlyZXR1cm4gMDsKPiAgCj4gLQlyZXQgPSBpOTE1X2dlbV9jaGVja193ZWRnZSgmZGV2X3By aXYtPmdwdV9lcnJvciwgdHJ1ZSk7Cj4gLQlpZiAocmV0KQo+IC0JCXJldHVybiByZXQ7Cj4gLQo+ IC0JcmVzZXRfY291bnRlciA9IGk5MTVfcmVzZXRfY291bnRlcigmZGV2X3ByaXYtPmdwdV9lcnJv cik7Cj4gLQo+ICAJaWYgKHJlYWRvbmx5KSB7Cj4gIAkJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpyZXE7Cj4gIAo+IEBAIC0xNTc4LDkgKzE1NjMsOSBAQCBpOTE1X2dlbV9vYmplY3Rfd2Fp dF9yZW5kZXJpbmdfX25vbmJsb2NraW5nKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmos Cj4gIAl9Cj4gIAo+ICAJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4gKwlyZXQg PSAwOwo+ICAJZm9yIChpID0gMDsgcmV0ID09IDAgJiYgaSA8IG47IGkrKykKPiAtCQlyZXQgPSBf X2k5MTVfd2FpdF9yZXF1ZXN0KHJlcXVlc3RzW2ldLCByZXNldF9jb3VudGVyLCB0cnVlLAo+IC0J CQkJCSAgTlVMTCwgcnBzKTsKPiArCQlyZXQgPSBfX2k5MTVfd2FpdF9yZXF1ZXN0KHJlcXVlc3Rz W2ldLCB0cnVlLCBOVUxMLCBycHMpOwo+ICAJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgp Owo+ICAKPiAgCWZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKPiBAQCAtMjY4NCw2ICsyNjY5LDcg QEAgaW50IGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2Moc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmlu ZywKPiAgCQkJICAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICoqcmVxX291dCkKPiAgewo+ ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShyaW5nLT5kZXYp Owo+ICsJdW5zaWduZWQgcmVzZXRfY291bnRlciA9IGk5MTVfcmVzZXRfY291bnRlcigmZGV2X3By aXYtPmdwdV9lcnJvcik7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsKPiAg CWludCByZXQ7Cj4gIAo+IEBAIC0yNjkyLDYgKzI2NzgsMTEgQEAgaW50IGk5MTVfZ2VtX3JlcXVl c3RfYWxsb2Moc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiAgCj4gIAkqcmVxX291dCA9 IE5VTEw7Cj4gIAo+ICsJcmV0ID0gaTkxNV9nZW1fY2hlY2tfd2VkZ2UoJmRldl9wcml2LT5ncHVf ZXJyb3IsCj4gKwkJCQkgICBkZXZfcHJpdi0+bW0uaW50ZXJydXB0aWJsZSk7Cj4gKwlpZiAocmV0 KQo+ICsJCXJldHVybiByZXQ7Cj4gKwo+ICAJcmVxID0ga21lbV9jYWNoZV96YWxsb2MoZGV2X3By aXYtPnJlcXVlc3RzLCBHRlBfS0VSTkVMKTsKPiAgCWlmIChyZXEgPT0gTlVMTCkKPiAgCQlyZXR1 cm4gLUVOT01FTTsKPiBAQCAtMjcwMyw2ICsyNjk0LDcgQEAgaW50IGk5MTVfZ2VtX3JlcXVlc3Rf YWxsb2Moc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiAgCWtyZWZfaW5pdCgmcmVxLT5y ZWYpOwo+ICAJcmVxLT5pOTE1ID0gZGV2X3ByaXY7Cj4gIAlyZXEtPnJpbmcgPSByaW5nOwo+ICsJ cmVxLT5yZXNldF9jb3VudGVyID0gcmVzZXRfY291bnRlcjsKPiAgCXJlcS0+Y3R4ICA9IGN0eDsK PiAgCWk5MTVfZ2VtX2NvbnRleHRfcmVmZXJlbmNlKHJlcS0+Y3R4KTsKPiAgCj4gQEAgLTMwNjcs MTEgKzMwNTksOSBAQCByZXRpcmU6Cj4gIGludAo+ICBpOTE1X2dlbV93YWl0X2lvY3RsKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKPiAg ewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0 ZTsKPiAgCXN0cnVjdCBkcm1faTkxNV9nZW1fd2FpdCAqYXJncyA9IGRhdGE7Cj4gIAlzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwo+ICAJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICpyZXFbSTkxNV9OVU1fUklOR1NdOwo+IC0JdW5zaWduZWQgcmVzZXRfY291bnRlcjsKPiAgCWlu dCBpLCBuID0gMDsKPiAgCWludCByZXQ7Cj4gIAo+IEBAIC0zMTA1LDcgKzMwOTUsNiBAQCBpOTE1 X2dlbV93YWl0X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVj dCBkcm1fZmlsZSAqZmlsZSkKPiAgCX0KPiAgCj4gIAlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5j ZSgmb2JqLT5iYXNlKTsKPiAtCXJlc2V0X2NvdW50ZXIgPSBpOTE1X3Jlc2V0X2NvdW50ZXIoJmRl dl9wcml2LT5ncHVfZXJyb3IpOwo+ICAKPiAgCWZvciAoaSA9IDA7IGkgPCBJOTE1X05VTV9SSU5H UzsgaSsrKSB7Cj4gIAkJaWYgKG9iai0+bGFzdF9yZWFkX3JlcVtpXSA9PSBOVUxMKQo+IEBAIC0z MTE4LDcgKzMxMDcsNyBAQCBpOTE1X2dlbV93YWl0X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKPiAgCj4gIAlmb3IgKGkgPSAw OyBpIDwgbjsgaSsrKSB7Cj4gIAkJaWYgKHJldCA9PSAwKQo+IC0JCQlyZXQgPSBfX2k5MTVfd2Fp dF9yZXF1ZXN0KHJlcVtpXSwgcmVzZXRfY291bnRlciwgdHJ1ZSwKPiArCQkJcmV0ID0gX19pOTE1 X3dhaXRfcmVxdWVzdChyZXFbaV0sIHRydWUsCj4gIAkJCQkJCSAgYXJncy0+dGltZW91dF9ucyA+ IDAgPyAmYXJncy0+dGltZW91dF9ucyA6IE5VTEwsCj4gIAkJCQkJCSAgdG9fcnBzX2NsaWVudChm aWxlKSk7Cj4gIAkJaTkxNV9nZW1fcmVxdWVzdF91bnJlZmVyZW5jZV9fdW5sb2NrZWQocmVxW2ld KTsKPiBAQCAtMzE1MCw3ICszMTM5LDYgQEAgX19pOTE1X2dlbV9vYmplY3Rfc3luYyhzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAJaWYgKCFpOTE1X3NlbWFwaG9yZV9pc19lbmFi bGVkKG9iai0+YmFzZS5kZXYpKSB7Cj4gIAkJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUg PSB0b19pOTE1KG9iai0+YmFzZS5kZXYpOwo+ICAJCXJldCA9IF9faTkxNV93YWl0X3JlcXVlc3Qo ZnJvbV9yZXEsCj4gLQkJCQkJICBpOTE1X3Jlc2V0X2NvdW50ZXIoJmk5MTUtPmdwdV9lcnJvciks Cj4gIAkJCQkJICBpOTE1LT5tbS5pbnRlcnJ1cHRpYmxlLAo+ICAJCQkJCSAgTlVMTCwKPiAgCQkJ CQkgICZpOTE1LT5ycHMuc2VtYXBob3Jlcyk7Cj4gQEAgLTQwOTksNyArNDA4Nyw2IEBAIGk5MTVf Z2VtX3JpbmdfdGhyb3R0bGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxl ICpmaWxlKQo+ICAJc3RydWN0IGRybV9pOTE1X2ZpbGVfcHJpdmF0ZSAqZmlsZV9wcml2ID0gZmls ZS0+ZHJpdmVyX3ByaXY7Cj4gIAl1bnNpZ25lZCBsb25nIHJlY2VudF9lbm91Z2ggPSBqaWZmaWVz IC0gRFJNX0k5MTVfVEhST1RUTEVfSklGRklFUzsKPiAgCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxdWVzdCwgKnRhcmdldCA9IE5VTEw7Cj4gLQl1bnNpZ25lZCByZXNldF9jb3VudGVy Owo+ICAJaW50IHJldDsKPiAgCj4gIAlyZXQgPSBpOTE1X2dlbV93YWl0X2Zvcl9lcnJvcigmZGV2 X3ByaXYtPmdwdV9lcnJvcik7Cj4gQEAgLTQxMjQsNyArNDExMSw2IEBAIGk5MTVfZ2VtX3Jpbmdf dGhyb3R0bGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlKQo+ ICAKPiAgCQl0YXJnZXQgPSByZXF1ZXN0Owo+ICAJfQo+IC0JcmVzZXRfY291bnRlciA9IGk5MTVf cmVzZXRfY291bnRlcigmZGV2X3ByaXYtPmdwdV9lcnJvcik7Cj4gIAlpZiAodGFyZ2V0KQo+ICAJ CWk5MTVfZ2VtX3JlcXVlc3RfcmVmZXJlbmNlKHRhcmdldCk7Cj4gIAlzcGluX3VubG9jaygmZmls ZV9wcml2LT5tbS5sb2NrKTsKPiBAQCAtNDEzMiw3ICs0MTE4LDcgQEAgaTkxNV9nZW1fcmluZ190 aHJvdHRsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCj4g IAlpZiAodGFyZ2V0ID09IE5VTEwpCj4gIAkJcmV0dXJuIDA7Cj4gIAo+IC0JcmV0ID0gX19pOTE1 X3dhaXRfcmVxdWVzdCh0YXJnZXQsIHJlc2V0X2NvdW50ZXIsIHRydWUsIE5VTEwsIE5VTEwpOwo+ ICsJcmV0ID0gX19pOTE1X3dhaXRfcmVxdWVzdCh0YXJnZXQsIHRydWUsIE5VTEwsIE5VTEwpOwo+ ICAJaWYgKHJldCA9PSAwKQo+ICAJCXF1ZXVlX2RlbGF5ZWRfd29yayhkZXZfcHJpdi0+d3EsICZk ZXZfcHJpdi0+bW0ucmV0aXJlX3dvcmssIDApOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jCj4gaW5kZXggOGI2MDI4Y2Q2MTlmLi5kNTliZWNhOTI4YjcgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTExMzk0LDcgKzExMzk0LDYgQEAgc3Rh dGljIHZvaWQgaW50ZWxfbW1pb19mbGlwX3dvcmtfZnVuYyhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndv cmspCj4gIAo+ICAJaWYgKG1taW9fZmxpcC0+cmVxKSB7Cj4gIAkJV0FSTl9PTihfX2k5MTVfd2Fp dF9yZXF1ZXN0KG1taW9fZmxpcC0+cmVxLAo+IC0JCQkJCSAgICBtbWlvX2ZsaXAtPmNydGMtPnJl c2V0X2NvdW50ZXIsCj4gIAkJCQkJICAgIGZhbHNlLCBOVUxMLAo+ICAJCQkJCSAgICAmbW1pb19m bGlwLT5pOTE1LT5ycHMubW1pb2ZsaXBzKSk7Cj4gIAkJaTkxNV9nZW1fcmVxdWVzdF91bnJlZmVy ZW5jZV9fdW5sb2NrZWQobW1pb19mbGlwLT5yZXEpOwo+IEBAIC0xMzM5NSw5ICsxMzM5NCw2IEBA IHN0YXRpYyBpbnQgaW50ZWxfYXRvbWljX3ByZXBhcmVfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCj4gIAo+ICAJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfcHJlcGFyZV9wbGFuZXMoZGV2 LCBzdGF0ZSk7Cj4gIAlpZiAoIXJldCAmJiAhYXN5bmMgJiYgIWk5MTVfcmVzZXRfaW5fcHJvZ3Jl c3Nfb3Jfd2VkZ2VkKCZkZXZfcHJpdi0+Z3B1X2Vycm9yKSkgewo+IC0JCXUzMiByZXNldF9jb3Vu dGVyOwo+IC0KPiAtCQlyZXNldF9jb3VudGVyID0gaTkxNV9yZXNldF9jb3VudGVyKCZkZXZfcHJp di0+Z3B1X2Vycm9yKTsKPiAgCQltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKPiAg Cj4gIAkJZm9yX2VhY2hfcGxhbmVfaW5fc3RhdGUoc3RhdGUsIHBsYW5lLCBwbGFuZV9zdGF0ZSwg aSkgewo+IEBAIC0xMzQwOCw4ICsxMzQwNCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfYXRvbWljX3By ZXBhcmVfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJCQljb250aW51ZTsKPiAg Cj4gIAkJCXJldCA9IF9faTkxNV93YWl0X3JlcXVlc3QoaW50ZWxfcGxhbmVfc3RhdGUtPndhaXRf cmVxLAo+IC0JCQkJCQkgIHJlc2V0X2NvdW50ZXIsIHRydWUsCj4gLQkJCQkJCSAgTlVMTCwgTlVM TCk7Cj4gKwkJCQkJCSAgdHJ1ZSwgTlVMTCwgTlVMTCk7Cj4gIAo+ICAJCQkvKiBTd2FsbG93IC1F SU8gZXJyb3JzIHRvIGFsbG93IHVwZGF0ZXMgZHVyaW5nIGh3IGxvY2t1cC4gKi8KPiAgCQkJaWYg KHJldCA9PSAtRUlPKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9s cmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gaW5kZXggODY0MDRiMDNk YzkxLi42OWIyOThlZWQ2OWQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+IEBAIC04 MTksMTYgKzgxOSw5IEBAIHN0YXRpYyBpbnQgbG9naWNhbF9yaW5nX3ByZXBhcmUoc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsIGludCBieXRlcykKPiAgICovCj4gIGludCBpbnRlbF9s b2dpY2FsX3JpbmdfYmVnaW4oc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsIGludCBu dW1fZHdvcmRzKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXY7Cj4g IAlpbnQgcmV0Owo+ICAKPiAgCVdBUk5fT04ocmVxID09IE5VTEwpOwo+IC0JZGV2X3ByaXYgPSBy ZXEtPnJpbmctPmRldi0+ZGV2X3ByaXZhdGU7Cj4gLQo+IC0JcmV0ID0gaTkxNV9nZW1fY2hlY2tf d2VkZ2UoJmRldl9wcml2LT5ncHVfZXJyb3IsCj4gLQkJCQkgICBkZXZfcHJpdi0+bW0uaW50ZXJy dXB0aWJsZSk7Cj4gLQlpZiAocmV0KQo+IC0JCXJldHVybiByZXQ7Cj4gIAo+ICAJcmV0ID0gbG9n aWNhbF9yaW5nX3ByZXBhcmUocmVxLCBudW1fZHdvcmRzICogc2l6ZW9mKHVpbnQzMl90KSk7Cj4g IAlpZiAocmV0KQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5n YnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiBpbmRl eCBkNzFmYTc3MDU1ZjkuLjk0MmY4NmIzMTZjMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9yaW5nYnVmZmVyLmMKPiBAQCAtMjI3NCw3ICsyMjc0LDYgQEAgaW50IGludGVsX3Jpbmdf aWRsZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQo+ICAKPiAgCS8qIE1ha2Ugc3VyZSB3 ZSBkbyBub3QgdHJpZ2dlciBhbnkgcmV0aXJlcyAqLwo+ICAJcmV0dXJuIF9faTkxNV93YWl0X3Jl cXVlc3QocmVxLAo+IC0JCQkJICAgaTkxNV9yZXNldF9jb3VudGVyKCZ0b19pOTE1KHJpbmctPmRl diktPmdwdV9lcnJvciksCj4gIAkJCQkgICB0b19pOTE1KHJpbmctPmRldiktPm1tLmludGVycnVw dGlibGUsCj4gIAkJCQkgICBOVUxMLCBOVUxMKTsKPiAgfQo+IEBAIC0yNDA1LDExICsyNDA0LDYg QEAgaW50IGludGVsX3JpbmdfYmVnaW4oc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEs Cj4gIAlyaW5nID0gcmVxLT5yaW5nOwo+ICAJZGV2X3ByaXYgPSByaW5nLT5kZXYtPmRldl9wcml2 YXRlOwo+ICAKPiAtCXJldCA9IGk5MTVfZ2VtX2NoZWNrX3dlZGdlKCZkZXZfcHJpdi0+Z3B1X2Vy cm9yLAo+IC0JCQkJICAgZGV2X3ByaXYtPm1tLmludGVycnVwdGlibGUpOwo+IC0JaWYgKHJldCkK PiAtCQlyZXR1cm4gcmV0Owo+IC0KPiAgCXJldCA9IF9faW50ZWxfcmluZ19wcmVwYXJlKHJpbmcs IG51bV9kd29yZHMgKiBzaXplb2YodWludDMyX3QpKTsKPiAgCWlmIChyZXQpCj4gIAkJcmV0dXJu IHJldDsKPiAtLSAKPiAyLjYuMwo+IAoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5l ZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==