From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 04/32] drm/i915: Hide the atomic_read(reset_counter) behind a helper Date: Wed, 16 Dec 2015 10:31:15 +0100 Message-ID: <20151216093115.GK30437@phenom.ffwll.local> References: <1449833608-22125-1-git-send-email-chris@chris-wilson.co.uk> <1449833608-22125-5-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-f41.google.com (mail-wm0-f41.google.com [74.125.82.41]) by gabe.freedesktop.org (Postfix) with ESMTPS id CEF876E862 for ; Wed, 16 Dec 2015 01:31:18 -0800 (PST) Received: by mail-wm0-f41.google.com with SMTP id n186so62236911wmn.0 for ; Wed, 16 Dec 2015 01:31:18 -0800 (PST) Content-Disposition: inline In-Reply-To: <1449833608-22125-5-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 T24gRnJpLCBEZWMgMTEsIDIwMTUgYXQgMTE6MzM6MDBBTSArMDAwMCwgQ2hyaXMgV2lsc29uIHdy b3RlOgo+IFRoaXMgaXMgcHJpbmNpcGFsbHkgYSBsaXR0bGUgYml0IG9mIHN5bnRhdGljIHN1Z2Fy IHRvIGhpZGUgdGhlCj4gYXRvbWljX3JlYWQoKXMgdGhyb3VnaG91dCB0aGUgY29kZSB0byByZXRy aWV2ZSB0aGUgY3VycmVudCByZXNldF9jb3VudGVyLgo+IEl0IGFsc28gcHJvdmlkZXMgdGhlIG90 aGVyIHV0aWxpdHkgZnVuY3Rpb25zIHRvIGNoZWNrIHRoZSByZXNldCBzdGF0ZSBvbiB0aGUKPiBh bHJlYWR5IHJlYWQgcmVzZXRfY291bnRlciwgc28gdGhhdCAoaW4gbGF0ZXIgcGF0Y2hlcykgd2Ug Y2FuIHJlYWQgaXQgb25jZQo+IGFuZCBkbyBtdWx0aXBsZSB0ZXN0cyByYXRoZXIgdGhhbiByaXNr IHRoZSB2YWx1ZSBjaGFuZ2luZyBiZXR3ZWVuIHRlc3RzLgo+IAo+IHYyOiBCZSBzdHJpY3RseSBv biBjb252ZXJ0aW5nIGV4aXN0aW5nIGk5MTVfcmVzZXRfaW5fcHJvZ3Jlc3MoKSBvdmVyIHRvCj4g dGhlIG1vcmUgdmVyYm9zZSBpOTE1X3Jlc2V0X2luX3Byb2dyZXNzX29yX3dlZGdlZCgpLgo+IAo+ IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+ IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgoKUmV2aWV3ZWQtYnk6 IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cgo+IC0tLQo+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgICAgfCAgNCArKy0tCj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICB8IDMyICsrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICB8IDE2 ICsrKysrKysrLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyAgICAg ICAgIHwgIDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jICAgIHwg MTggKysrKysrKysrKystLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5j ICAgICAgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIu YyB8ICA0ICsrLS0KPiAgNyBmaWxlcyBjaGFuZ2VkLCA1MyBpbnNlcnRpb25zKCspLCAyNSBkZWxl dGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1 Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+IGluZGV4IDI0MzE4 Yjc5YmNmYy4uYzI2YTRjMDg3ZjQ5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZGVidWdmcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2Zz LmMKPiBAQCAtNDY3Miw3ICs0NjcyLDcgQEAgaTkxNV93ZWRnZWRfZ2V0KHZvaWQgKmRhdGEsIHU2 NCAqdmFsKQo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRhdGE7Cj4gIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAKPiAtCSp2YWwg PSBhdG9taWNfcmVhZCgmZGV2X3ByaXYtPmdwdV9lcnJvci5yZXNldF9jb3VudGVyKTsKPiArCSp2 YWwgPSBpOTE1X3Jlc2V0X2NvdW50ZXIoJmRldl9wcml2LT5ncHVfZXJyb3IpOwo+ICAKPiAgCXJl dHVybiAwOwo+ICB9Cj4gQEAgLTQ2OTEsNyArNDY5MSw3IEBAIGk5MTVfd2VkZ2VkX3NldCh2b2lk ICpkYXRhLCB1NjQgdmFsKQo+ICAJICogd2hpbGUgaXQgaXMgd3JpdGluZyB0byAnaTkxNV93ZWRn ZWQnCj4gIAkgKi8KPiAgCj4gLQlpZiAoaTkxNV9yZXNldF9pbl9wcm9ncmVzcygmZGV2X3ByaXYt PmdwdV9lcnJvcikpCj4gKwlpZiAoaTkxNV9yZXNldF9pbl9wcm9ncmVzc19vcl93ZWRnZWQoJmRl dl9wcml2LT5ncHVfZXJyb3IpKQo+ICAJCXJldHVybiAtRUFHQUlOOwo+ICAKPiAgCWludGVsX3J1 bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCA4 YzQzMDNiNjY0ZDkuLjQ2NmNhYTBiYzA0MyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ IEBAIC0yOTkyLDIwICsyOTkyLDQ0IEBAIHZvaWQgaTkxNV9nZW1fcmV0aXJlX3JlcXVlc3RzX3Jp bmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyk7Cj4gIGludCBfX211c3RfY2hlY2sgaTkx NV9nZW1fY2hlY2tfd2VkZ2Uoc3RydWN0IGk5MTVfZ3B1X2Vycm9yICplcnJvciwKPiAgCQkJCSAg ICAgIGJvb2wgaW50ZXJydXB0aWJsZSk7Cj4gIAo+ICtzdGF0aWMgaW5saW5lIHUzMiBpOTE1X3Jl c2V0X2NvdW50ZXIoc3RydWN0IGk5MTVfZ3B1X2Vycm9yICplcnJvcikKPiArewo+ICsJcmV0dXJu IGF0b21pY19yZWFkKCZlcnJvci0+cmVzZXRfY291bnRlcik7Cj4gK30KPiArCj4gK3N0YXRpYyBp bmxpbmUgYm9vbCBfX2k5MTVfcmVzZXRfaW5fcHJvZ3Jlc3ModTMyIHJlc2V0KQo+ICt7Cj4gKwly ZXR1cm4gdW5saWtlbHkocmVzZXQgJiBJOTE1X1JFU0VUX0lOX1BST0dSRVNTX0ZMQUcpOwo+ICt9 Cj4gKwo+ICtzdGF0aWMgaW5saW5lIGJvb2wgX19pOTE1X3Jlc2V0X2luX3Byb2dyZXNzX29yX3dl ZGdlZCh1MzIgcmVzZXQpCj4gK3sKPiArCXJldHVybiB1bmxpa2VseShyZXNldCAmIChJOTE1X1JF U0VUX0lOX1BST0dSRVNTX0ZMQUcgfCBJOTE1X1dFREdFRCkpOwo+ICt9Cj4gKwo+ICtzdGF0aWMg aW5saW5lIGJvb2wgX19pOTE1X3Rlcm1pbmFsbHlfd2VkZ2VkKHUzMiByZXNldCkKPiArewo+ICsJ cmV0dXJuIHVubGlrZWx5KHJlc2V0ICYgSTkxNV9XRURHRUQpOwo+ICt9Cj4gKwo+ICBzdGF0aWMg aW5saW5lIGJvb2wgaTkxNV9yZXNldF9pbl9wcm9ncmVzcyhzdHJ1Y3QgaTkxNV9ncHVfZXJyb3Ig KmVycm9yKQo+ICB7Cj4gLQlyZXR1cm4gdW5saWtlbHkoYXRvbWljX3JlYWQoJmVycm9yLT5yZXNl dF9jb3VudGVyKQo+IC0JCQkmIChJOTE1X1JFU0VUX0lOX1BST0dSRVNTX0ZMQUcgfCBJOTE1X1dF REdFRCkpOwo+ICsJcmV0dXJuIF9faTkxNV9yZXNldF9pbl9wcm9ncmVzcyhpOTE1X3Jlc2V0X2Nv dW50ZXIoZXJyb3IpKTsKPiArfQo+ICsKPiArc3RhdGljIGlubGluZSBib29sIGk5MTVfcmVzZXRf aW5fcHJvZ3Jlc3Nfb3Jfd2VkZ2VkKHN0cnVjdCBpOTE1X2dwdV9lcnJvciAqZXJyb3IpCj4gK3sK PiArCXJldHVybiBfX2k5MTVfcmVzZXRfaW5fcHJvZ3Jlc3Nfb3Jfd2VkZ2VkKGk5MTVfcmVzZXRf Y291bnRlcihlcnJvcikpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgaW5saW5lIGJvb2wgaTkxNV90ZXJt aW5hbGx5X3dlZGdlZChzdHJ1Y3QgaTkxNV9ncHVfZXJyb3IgKmVycm9yKQo+ICB7Cj4gLQlyZXR1 cm4gYXRvbWljX3JlYWQoJmVycm9yLT5yZXNldF9jb3VudGVyKSAmIEk5MTVfV0VER0VEOwo+ICsJ cmV0dXJuIF9faTkxNV90ZXJtaW5hbGx5X3dlZGdlZChpOTE1X3Jlc2V0X2NvdW50ZXIoZXJyb3Ip KTsKPiAgfQo+ICAKPiAgc3RhdGljIGlubGluZSB1MzIgaTkxNV9yZXNldF9jb3VudChzdHJ1Y3Qg aTkxNV9ncHVfZXJyb3IgKmVycm9yKQo+ICB7Cj4gLQlyZXR1cm4gKChhdG9taWNfcmVhZCgmZXJy b3ItPnJlc2V0X2NvdW50ZXIpICYgfkk5MTVfV0VER0VEKSArIDEpIC8gMjsKPiArCXJldHVybiAo KGk5MTVfcmVzZXRfY291bnRlcihlcnJvcikgJiB+STkxNV9XRURHRUQpICsgMSkgLyAyOwo+ICB9 Cj4gIAo+ICBzdGF0aWMgaW5saW5lIGJvb2wgaTkxNV9zdG9wX3JpbmdfYWxsb3dfYmFuKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBp bmRleCAyOWQ5OGRkYmJjODAuLjBiM2UwNTM0YmFhMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYwo+IEBAIC04NSw3ICs4NSw3IEBAIGk5MTVfZ2VtX3dhaXRfZm9yX2Vycm9yKHN0cnVjdCBp OTE1X2dwdV9lcnJvciAqZXJyb3IpCj4gIHsKPiAgCWludCByZXQ7Cj4gIAo+IC0jZGVmaW5lIEVY SVRfQ09ORCAoIWk5MTVfcmVzZXRfaW5fcHJvZ3Jlc3MoZXJyb3IpIHx8IFwKPiArI2RlZmluZSBF WElUX0NPTkQgKCFpOTE1X3Jlc2V0X2luX3Byb2dyZXNzX29yX3dlZGdlZChlcnJvcikgfHwgXAo+ ICAJCSAgIGk5MTVfdGVybWluYWxseV93ZWRnZWQoZXJyb3IpKQo+ICAJaWYgKEVYSVRfQ09ORCkK PiAgCQlyZXR1cm4gMDsKPiBAQCAtMTExMyw3ICsxMTEzLDcgQEAgaW50Cj4gIGk5MTVfZ2VtX2No ZWNrX3dlZGdlKHN0cnVjdCBpOTE1X2dwdV9lcnJvciAqZXJyb3IsCj4gIAkJICAgICBib29sIGlu dGVycnVwdGlibGUpCj4gIHsKPiAtCWlmIChpOTE1X3Jlc2V0X2luX3Byb2dyZXNzKGVycm9yKSkg ewo+ICsJaWYgKGk5MTVfcmVzZXRfaW5fcHJvZ3Jlc3Nfb3Jfd2VkZ2VkKGVycm9yKSkgewo+ICAJ CS8qIE5vbi1pbnRlcnJ1cHRpYmxlIGNhbGxlcnMgY2FuJ3QgaGFuZGxlIC1FQUdBSU4sIGhlbmNl IHJldHVybgo+ICAJCSAqIC1FSU8gdW5jb25kaXRpb25hbGx5IGZvciB0aGVzZS4gKi8KPiAgCQlp ZiAoIWludGVycnVwdGlibGUpCj4gQEAgLTEyOTcsNyArMTI5Nyw3IEBAIGludCBfX2k5MTVfd2Fp dF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICAKPiAgCQkvKiBX ZSBuZWVkIHRvIGNoZWNrIHdoZXRoZXIgYW55IGdwdSByZXNldCBoYXBwZW5lZCBpbiBiZXR3ZWVu Cj4gIAkJICogdGhlIGNhbGxlciBncmFiYmluZyB0aGUgc2Vxbm8gYW5kIG5vdyAuLi4gKi8KPiAt CQlpZiAocmVzZXRfY291bnRlciAhPSBhdG9taWNfcmVhZCgmZGV2X3ByaXYtPmdwdV9lcnJvci5y ZXNldF9jb3VudGVyKSkgewo+ICsJCWlmIChyZXNldF9jb3VudGVyICE9IGk5MTVfcmVzZXRfY291 bnRlcigmZGV2X3ByaXYtPmdwdV9lcnJvcikpIHsKPiAgCQkJLyogLi4uIGJ1dCB1cGdyYWRlIHRo ZSAtRUFHQUlOIHRvIGFuIC1FSU8gaWYgdGhlIGdwdQo+ICAJCQkgKiBpcyB0cnVlbHkgZ29uZS4g Ki8KPiAgCQkJcmV0ID0gaTkxNV9nZW1fY2hlY2tfd2VkZ2UoJmRldl9wcml2LT5ncHVfZXJyb3Is IGludGVycnVwdGlibGUpOwo+IEBAIC0xNDc1LDcgKzE0NzUsNyBAQCBpOTE1X3dhaXRfcmVxdWVz dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiAgCQlyZXR1cm4gcmV0Owo+ICAK PiAgCXJldCA9IF9faTkxNV93YWl0X3JlcXVlc3QocmVxLAo+IC0JCQkJICBhdG9taWNfcmVhZCgm ZGV2X3ByaXYtPmdwdV9lcnJvci5yZXNldF9jb3VudGVyKSwKPiArCQkJCSAgaTkxNV9yZXNldF9j b3VudGVyKCZkZXZfcHJpdi0+Z3B1X2Vycm9yKSwKPiAgCQkJCSAgaW50ZXJydXB0aWJsZSwgTlVM TCwgTlVMTCk7Cj4gIAlpZiAocmV0KQo+ICAJCXJldHVybiByZXQ7Cj4gQEAgLTE1NjQsNyArMTU2 NCw3IEBAIGk5MTVfZ2VtX29iamVjdF93YWl0X3JlbmRlcmluZ19fbm9uYmxvY2tpbmcoc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiAgCWlmIChyZXQpCj4gIAkJcmV0dXJuIHJldDsK PiAgCj4gLQlyZXNldF9jb3VudGVyID0gYXRvbWljX3JlYWQoJmRldl9wcml2LT5ncHVfZXJyb3Iu cmVzZXRfY291bnRlcik7Cj4gKwlyZXNldF9jb3VudGVyID0gaTkxNV9yZXNldF9jb3VudGVyKCZk ZXZfcHJpdi0+Z3B1X2Vycm9yKTsKPiAgCj4gIAlpZiAocmVhZG9ubHkpIHsKPiAgCQlzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsKPiBAQCAtMzExNCw3ICszMTE0LDcgQEAgaTkxNV9n ZW1fd2FpdF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3Qg ZHJtX2ZpbGUgKmZpbGUpCj4gIAl9Cj4gIAo+ICAJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2Uo Jm9iai0+YmFzZSk7Cj4gLQlyZXNldF9jb3VudGVyID0gYXRvbWljX3JlYWQoJmRldl9wcml2LT5n cHVfZXJyb3IucmVzZXRfY291bnRlcik7Cj4gKwlyZXNldF9jb3VudGVyID0gaTkxNV9yZXNldF9j b3VudGVyKCZkZXZfcHJpdi0+Z3B1X2Vycm9yKTsKPiAgCj4gIAlmb3IgKGkgPSAwOyBpIDwgSTkx NV9OVU1fUklOR1M7IGkrKykgewo+ICAJCWlmIChvYmotPmxhc3RfcmVhZF9yZXFbaV0gPT0gTlVM TCkKPiBAQCAtMzE1OSw3ICszMTU5LDcgQEAgX19pOTE1X2dlbV9vYmplY3Rfc3luYyhzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAJaWYgKCFpOTE1X3NlbWFwaG9yZV9pc19lbmFi bGVkKG9iai0+YmFzZS5kZXYpKSB7Cj4gIAkJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUg PSB0b19pOTE1KG9iai0+YmFzZS5kZXYpOwo+ICAJCXJldCA9IF9faTkxNV93YWl0X3JlcXVlc3Qo ZnJvbV9yZXEsCj4gLQkJCQkJICBhdG9taWNfcmVhZCgmaTkxNS0+Z3B1X2Vycm9yLnJlc2V0X2Nv dW50ZXIpLAo+ICsJCQkJCSAgaTkxNV9yZXNldF9jb3VudGVyKCZpOTE1LT5ncHVfZXJyb3IpLAo+ ICAJCQkJCSAgaTkxNS0+bW0uaW50ZXJydXB0aWJsZSwKPiAgCQkJCQkgIE5VTEwsCj4gIAkJCQkJ ICAmaTkxNS0+cnBzLnNlbWFwaG9yZXMpOwo+IEBAIC00MTMzLDcgKzQxMzMsNyBAQCBpOTE1X2dl bV9yaW5nX3Rocm90dGxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAq ZmlsZSkKPiAgCj4gIAkJdGFyZ2V0ID0gcmVxdWVzdDsKPiAgCX0KPiAtCXJlc2V0X2NvdW50ZXIg PSBhdG9taWNfcmVhZCgmZGV2X3ByaXYtPmdwdV9lcnJvci5yZXNldF9jb3VudGVyKTsKPiArCXJl c2V0X2NvdW50ZXIgPSBpOTE1X3Jlc2V0X2NvdW50ZXIoJmRldl9wcml2LT5ncHVfZXJyb3IpOwo+ ICAJaWYgKHRhcmdldCkKPiAgCQlpOTE1X2dlbV9yZXF1ZXN0X3JlZmVyZW5jZSh0YXJnZXQpOwo+ ICAJc3Bpbl91bmxvY2soJmZpbGVfcHJpdi0+bW0ubG9jayk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2ly cS5jCj4gaW5kZXggODY2NjRkMWIzMzg5Li42MGRmZjNmODk1MzEgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfaXJxLmMKPiBAQCAtMjQ1Miw3ICsyNDUyLDcgQEAgc3RhdGljIHZvaWQgaTkxNV9yZXNl dF9hbmRfd2FrZXVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAkgKiB0aGUgcmVzZXQgaW4t cHJvZ3Jlc3MgYml0IGlzIG9ubHkgZXZlciBzZXQgYnkgY29kZSBvdXRzaWRlIG9mIHRoaXMKPiAg CSAqIHdvcmsgd2UgZG9uJ3QgbmVlZCB0byB3b3JyeSBhYm91dCBhbnkgb3RoZXIgcmFjZXMuCj4g IAkgKi8KPiAtCWlmIChpOTE1X3Jlc2V0X2luX3Byb2dyZXNzKGVycm9yKSAmJiAhaTkxNV90ZXJt aW5hbGx5X3dlZGdlZChlcnJvcikpIHsKPiArCWlmIChpOTE1X3Jlc2V0X2luX3Byb2dyZXNzX29y X3dlZGdlZChlcnJvcikgJiYgIWk5MTVfdGVybWluYWxseV93ZWRnZWQoZXJyb3IpKSB7Cj4gIAkJ RFJNX0RFQlVHX0RSSVZFUigicmVzZXR0aW5nIGNoaXBcbiIpOwo+ICAJCWtvYmplY3RfdWV2ZW50 X2VudigmZGV2LT5wcmltYXJ5LT5rZGV2LT5rb2JqLCBLT0JKX0NIQU5HRSwKPiAgCQkJCSAgIHJl c2V0X2V2ZW50KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXggN2Rk NzIwMGQzYmE5Li5jYzQ3YzAyMDYyOTQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCj4gQEAgLTMyODUsMTAgKzMyODUsMTIgQEAgc3RhdGljIGJvb2wgaW50ZWxfY3J0Y19o YXNfcGVuZGluZ19mbGlwKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBjcnRjLT5kZXY7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMg PSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ICsJdW5zaWduZWQgcmVzZXRfY291bnRlcjsKPiAgCWJv b2wgcGVuZGluZzsKPiAgCj4gLQlpZiAoaTkxNV9yZXNldF9pbl9wcm9ncmVzcygmZGV2X3ByaXYt PmdwdV9lcnJvcikgfHwKPiAtCSAgICBpbnRlbF9jcnRjLT5yZXNldF9jb3VudGVyICE9IGF0b21p Y19yZWFkKCZkZXZfcHJpdi0+Z3B1X2Vycm9yLnJlc2V0X2NvdW50ZXIpKQo+ICsJcmVzZXRfY291 bnRlciA9IGk5MTVfcmVzZXRfY291bnRlcigmZGV2X3ByaXYtPmdwdV9lcnJvcik7Cj4gKwlpZiAo aW50ZWxfY3J0Yy0+cmVzZXRfY291bnRlciAhPSByZXNldF9jb3VudGVyIHx8Cj4gKwkgICAgX19p OTE1X3Jlc2V0X2luX3Byb2dyZXNzX29yX3dlZGdlZChyZXNldF9jb3VudGVyKSkKPiAgCQlyZXR1 cm4gZmFsc2U7Cj4gIAo+ICAJc3Bpbl9sb2NrX2lycSgmZGV2LT5ldmVudF9sb2NrKTsKPiBAQCAt MTA5NDIsOSArMTA5NDQsMTEgQEAgc3RhdGljIGJvb2wgcGFnZV9mbGlwX2ZpbmlzaGVkKHN0cnVj dCBpbnRlbF9jcnRjICpjcnRjKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0 Yy0+YmFzZS5kZXY7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYt PmRldl9wcml2YXRlOwo+ICsJdW5zaWduZWQgcmVzZXRfY291bnRlcjsKPiAgCj4gLQlpZiAoaTkx NV9yZXNldF9pbl9wcm9ncmVzcygmZGV2X3ByaXYtPmdwdV9lcnJvcikgfHwKPiAtCSAgICBjcnRj LT5yZXNldF9jb3VudGVyICE9IGF0b21pY19yZWFkKCZkZXZfcHJpdi0+Z3B1X2Vycm9yLnJlc2V0 X2NvdW50ZXIpKQo+ICsJcmVzZXRfY291bnRlciA9IGk5MTVfcmVzZXRfY291bnRlcigmZGV2X3By aXYtPmdwdV9lcnJvcik7Cj4gKwlpZiAoY3J0Yy0+cmVzZXRfY291bnRlciAhPSByZXNldF9jb3Vu dGVyIHx8Cj4gKwkgICAgX19pOTE1X3Jlc2V0X2luX3Byb2dyZXNzX29yX3dlZGdlZChyZXNldF9j b3VudGVyKSkKPiAgCQlyZXR1cm4gdHJ1ZTsKPiAgCj4gIAkvKgo+IEBAIC0xMTYwMSw3ICsxMTYw NSw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19wYWdlX2ZsaXAoc3RydWN0IGRybV9jcnRjICpj cnRjLAo+ICAJCWdvdG8gY2xlYW51cDsKPiAgCj4gIAlhdG9taWNfaW5jKCZpbnRlbF9jcnRjLT51 bnBpbl93b3JrX2NvdW50KTsKPiAtCWludGVsX2NydGMtPnJlc2V0X2NvdW50ZXIgPSBhdG9taWNf cmVhZCgmZGV2X3ByaXYtPmdwdV9lcnJvci5yZXNldF9jb3VudGVyKTsKPiArCWludGVsX2NydGMt PnJlc2V0X2NvdW50ZXIgPSBpOTE1X3Jlc2V0X2NvdW50ZXIoJmRldl9wcml2LT5ncHVfZXJyb3Ip Owo+ICAKPiAgCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA1IHx8IElTX0c0WChkZXYpKQo+ ICAJCXdvcmstPmZsaXBfY291bnQgPSBJOTE1X1JFQUQoUElQRV9GTElQQ09VTlRfRzRYKHBpcGUp KSArIDE7Cj4gQEAgLTEzMzg4LDEwICsxMzM5MiwxMCBAQCBzdGF0aWMgaW50IGludGVsX2F0b21p Y19wcmVwYXJlX2NvbW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCXJldHVybiByZXQ7 Cj4gIAo+ICAJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfcHJlcGFyZV9wbGFuZXMoZGV2LCBzdGF0 ZSk7Cj4gLQlpZiAoIXJldCAmJiAhYXN5bmMgJiYgIWk5MTVfcmVzZXRfaW5fcHJvZ3Jlc3MoJmRl dl9wcml2LT5ncHVfZXJyb3IpKSB7Cj4gKwlpZiAoIXJldCAmJiAhYXN5bmMgJiYgIWk5MTVfcmVz ZXRfaW5fcHJvZ3Jlc3Nfb3Jfd2VkZ2VkKCZkZXZfcHJpdi0+Z3B1X2Vycm9yKSkgewo+ICAJCXUz MiByZXNldF9jb3VudGVyOwo+ICAKPiAtCQlyZXNldF9jb3VudGVyID0gYXRvbWljX3JlYWQoJmRl dl9wcml2LT5ncHVfZXJyb3IucmVzZXRfY291bnRlcik7Cj4gKwkJcmVzZXRfY291bnRlciA9IGk5 MTVfcmVzZXRfY291bnRlcigmZGV2X3ByaXYtPmdwdV9lcnJvcik7Cj4gIAkJbXV0ZXhfdW5sb2Nr KCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4gIAo+ICAJCWZvcl9lYWNoX3BsYW5lX2luX3N0YXRlKHN0 YXRlLCBwbGFuZSwgcGxhbmVfc3RhdGUsIGkpIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ IGluZGV4IDc2NDRjNDhkYTRlYS4uODY0MDRiMDNkYzkxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmMKPiBAQCAtOTgzLDcgKzk4Myw3IEBAIHZvaWQgaW50ZWxfbG9naWNhbF9yaW5nX3N0 b3Aoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKPiAgCQlyZXR1cm47Cj4gIAo+ICAJcmV0 ID0gaW50ZWxfcmluZ19pZGxlKHJpbmcpOwo+IC0JaWYgKHJldCAmJiAhaTkxNV9yZXNldF9pbl9w cm9ncmVzcygmdG9faTkxNShyaW5nLT5kZXYpLT5ncHVfZXJyb3IpKQo+ICsJaWYgKHJldCAmJiAh aTkxNV9yZXNldF9pbl9wcm9ncmVzc19vcl93ZWRnZWQoJnRvX2k5MTUocmluZy0+ZGV2KS0+Z3B1 X2Vycm9yKSkKPiAgCQlEUk1fRVJST1IoImZhaWxlZCB0byBxdWllc2NlICVzIHdoaWxzdCBjbGVh bmluZyB1cDogJWRcbiIsCj4gIAkJCSAgcmluZy0+bmFtZSwgcmV0KTsKPiAgCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwo+IGluZGV4IGVlZmNlOWEzZTljOC4uZDcxZmE3 NzA1NWY5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZm ZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwo+IEBA IC0yMjc0LDcgKzIyNzQsNyBAQCBpbnQgaW50ZWxfcmluZ19pZGxlKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKnJpbmcpCj4gIAo+ICAJLyogTWFrZSBzdXJlIHdlIGRvIG5vdCB0cmlnZ2VyIGFueSBy ZXRpcmVzICovCj4gIAlyZXR1cm4gX19pOTE1X3dhaXRfcmVxdWVzdChyZXEsCj4gLQkJCQkgICBh dG9taWNfcmVhZCgmdG9faTkxNShyaW5nLT5kZXYpLT5ncHVfZXJyb3IucmVzZXRfY291bnRlciks Cj4gKwkJCQkgICBpOTE1X3Jlc2V0X2NvdW50ZXIoJnRvX2k5MTUocmluZy0+ZGV2KS0+Z3B1X2Vy cm9yKSwKPiAgCQkJCSAgIHRvX2k5MTUocmluZy0+ZGV2KS0+bW0uaW50ZXJydXB0aWJsZSwKPiAg CQkJCSAgIE5VTEwsIE5VTEwpOwo+ICB9Cj4gQEAgLTMwNjgsNyArMzA2OCw3IEBAIGludGVsX3N0 b3BfcmluZ19idWZmZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKPiAgCQlyZXR1cm47 Cj4gIAo+ICAJcmV0ID0gaW50ZWxfcmluZ19pZGxlKHJpbmcpOwo+IC0JaWYgKHJldCAmJiAhaTkx NV9yZXNldF9pbl9wcm9ncmVzcygmdG9faTkxNShyaW5nLT5kZXYpLT5ncHVfZXJyb3IpKQo+ICsJ aWYgKHJldCAmJiAhaTkxNV9yZXNldF9pbl9wcm9ncmVzc19vcl93ZWRnZWQoJnRvX2k5MTUocmlu Zy0+ZGV2KS0+Z3B1X2Vycm9yKSkKPiAgCQlEUk1fRVJST1IoImZhaWxlZCB0byBxdWllc2NlICVz IHdoaWxzdCBjbGVhbmluZyB1cDogJWRcbiIsCj4gIAkJCSAgcmluZy0+bmFtZSwgcmV0KTsKPiAg Cj4gLS0gCj4gMi42LjMKPiAKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJ bnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=