From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 1/3] drm/i915: Hide the atomic_read(reset_counter) behind a helper Date: Thu, 3 Dec 2015 09:57:01 +0100 Message-ID: <20151203085701.GJ10243@phenom.ffwll.local> References: <20151201091535.GI22663@nuc-i3427.alporthouse.com> <1448967935-21760-1-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-f49.google.com (mail-wm0-f49.google.com [74.125.82.49]) by gabe.freedesktop.org (Postfix) with ESMTPS id 96BB76EA94 for ; Thu, 3 Dec 2015 00:57:06 -0800 (PST) Received: by wmww144 with SMTP id w144so11637522wmw.1 for ; Thu, 03 Dec 2015 00:57:05 -0800 (PST) Content-Disposition: inline In-Reply-To: <1448967935-21760-1-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 T24gVHVlLCBEZWMgMDEsIDIwMTUgYXQgMTE6MDU6MzNBTSArMDAwMCwgQ2hyaXMgV2lsc29uIHdy b3RlOgo+IFRoaXMgaXMganVzdCBhIGxpdHRsZSBiaXQgb2Ygc3ludGF0aWMgc3VnYXIgdG8gaGlk ZSB0aGUgYXRvbWljX3JlYWRzKCkKPiB0aHJvdWdob3V0IHRoZSBjb2RlIHRvIHJldHJpZXZlIHRo ZSBjdXJyZW50IHJlc2V0X2NvdW50ZXIuIEl0IGFsc28KPiBwcm92aWRlcyB0aGUgb3RoZXIgdXRp bGl0eSBmdW5jdGlvbnMgdG8gY2hlY2sgdGhlIHJlc2V0IHN0YXRlIG9uIHRoZQo+IGFscmVhZHkg cmVhZCByZXNldF9jb3VudGVyLCBzbyB0aGF0IHdlIGNhbiByZWFkIGl0IG9uY2UgYW5kIGRvIG11 bHRpcGxlCj4gdGVzdHMgcmF0aGVyIHRoYW4gcmlzayB0aGUgdmFsdWUgY2hhbmdpbmcgYmV0d2Vl biB0ZXN0cy4KClRoaXMgcGF0Y2ggYWxzbyBjaGFuZ2VzIHRoZSBtZWFuaW5nIG9mIHJlc2V0X2lu X3Byb2dyZXNzIHRvIG5vdCBpbmNsdWRlCldFREdFRCBhZmFpY3QuIEkgYWdyZWUgd2l0aCB0aGF0 IGNoYW5nZSwgYnV0IGl0IG5lZWRzIHRvIGJlIG1lbnRpb25lZCBpbgp0aGUgY29tbWl0IG1lc3Nh Z2UuCgpBbHNvIHdpdGggdGhhdCBjaGFuZ2UgdGhlcmUncyBzb21lIGNsZWFudXAgcG90ZW50aWFs IHNpbmNlIGEgYnVuY2ggb2YKY2FsbGVycyB0aGF0IGV4cGxpY2l0bHkgY2hlY2tlZCBmb3IgcmVz ZXRfaW5fcHJvZ3Jlc3MgJiYKIXRlcm1pbmFsbHlfd2VkZ2VkIG5vdyBjYW4gZHJvcCB0aGUgMm5k IHBhcnQgb2YgdGhlIGNvbmRpdGlvbi4gVGhhdApzaW1wbGlmaWNhdGlvbiBpcyB3aHkgSSd2ZSBk b25lIHRoaXMgY2hhbmdlIGluIG15IHBhdGNoLgotRGFuaWVsCgoKPiAKPiBTaWduZWQtb2ZmLWJ5 OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiAtLS0KPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICAgIHwgIDIgKy0KPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgIHwgMzIgKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgIHwgMTIg KysrKysrLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgICB8 IDE2ICsrKysrKysrKystLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5jIHwgIDIgKy0KPiAgNSBmaWxlcyBjaGFuZ2VkLCA0NiBpbnNlcnRpb25zKCspLCAxOCBk ZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k ZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+IGluZGV4IGJm ZDU3ZmI1OTdkYy4uODY0YjNhZTk0MTljIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZGVidWdmcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1 Z2ZzLmMKPiBAQCAtNDY1Niw3ICs0NjU2LDcgQEAgaTkxNV93ZWRnZWRfZ2V0KHZvaWQgKmRhdGEs IHU2NCAqdmFsKQo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRhdGE7Cj4gIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAKPiAtCSp2 YWwgPSBhdG9taWNfcmVhZCgmZGV2X3ByaXYtPmdwdV9lcnJvci5yZXNldF9jb3VudGVyKTsKPiAr CSp2YWwgPSBpOTE1X3Jlc2V0X2NvdW50ZXIoJmRldl9wcml2LT5ncHVfZXJyb3IpOwo+ICAKPiAg CXJldHVybiAwOwo+ICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggZDA3MDQxYzE3 MjlkLi4yYTRjZmEwNmMyOGQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtMjk3 OSwyMCArMjk3OSw0NCBAQCB2b2lkIGk5MTVfZ2VtX3JldGlyZV9yZXF1ZXN0c19yaW5nKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpOwo+ICBpbnQgX19tdXN0X2NoZWNrIGk5MTVfZ2VtX2No ZWNrX3dlZGdlKHN0cnVjdCBpOTE1X2dwdV9lcnJvciAqZXJyb3IsCj4gIAkJCQkgICAgICBib29s IGludGVycnVwdGlibGUpOwo+ICAKPiArc3RhdGljIGlubGluZSB1MzIgaTkxNV9yZXNldF9jb3Vu dGVyKHN0cnVjdCBpOTE1X2dwdV9lcnJvciAqZXJyb3IpCj4gK3sKPiArCXJldHVybiBhdG9taWNf cmVhZCgmZXJyb3ItPnJlc2V0X2NvdW50ZXIpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW5saW5lIGJv b2wgX19pOTE1X3Jlc2V0X2luX3Byb2dyZXNzKHUzMiByZXNldCkKPiArewo+ICsJcmV0dXJuIHVu bGlrZWx5KHJlc2V0ICYgSTkxNV9SRVNFVF9JTl9QUk9HUkVTU19GTEFHKTsKPiArfQo+ICsKPiAr c3RhdGljIGlubGluZSBib29sIF9faTkxNV9yZXNldF9pbl9wcm9ncmVzc19vcl93ZWRnZWQodTMy IHJlc2V0KQo+ICt7Cj4gKwlyZXR1cm4gdW5saWtlbHkocmVzZXQgJiAoSTkxNV9SRVNFVF9JTl9Q Uk9HUkVTU19GTEFHIHwgSTkxNV9XRURHRUQpKTsKPiArfQo+ICsKPiArc3RhdGljIGlubGluZSBi b29sIF9faTkxNV90ZXJtaW5hbGx5X3dlZGdlZCh1MzIgcmVzZXQpCj4gK3sKPiArCXJldHVybiB1 bmxpa2VseShyZXNldCAmIEk5MTVfV0VER0VEKTsKPiArfQo+ICsKPiAgc3RhdGljIGlubGluZSBi b29sIGk5MTVfcmVzZXRfaW5fcHJvZ3Jlc3Moc3RydWN0IGk5MTVfZ3B1X2Vycm9yICplcnJvcikK PiAgewo+IC0JcmV0dXJuIHVubGlrZWx5KGF0b21pY19yZWFkKCZlcnJvci0+cmVzZXRfY291bnRl cikKPiAtCQkJJiAoSTkxNV9SRVNFVF9JTl9QUk9HUkVTU19GTEFHIHwgSTkxNV9XRURHRUQpKTsK PiArCXJldHVybiBfX2k5MTVfcmVzZXRfaW5fcHJvZ3Jlc3MoaTkxNV9yZXNldF9jb3VudGVyKGVy cm9yKSk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X3Jlc2V0X2luX3Byb2dy ZXNzX29yX3dlZGdlZChzdHJ1Y3QgaTkxNV9ncHVfZXJyb3IgKmVycm9yKQo+ICt7Cj4gKwlyZXR1 cm4gX19pOTE1X3Jlc2V0X2luX3Byb2dyZXNzX29yX3dlZGdlZChpOTE1X3Jlc2V0X2NvdW50ZXIo ZXJyb3IpKTsKPiAgfQo+ICAKPiAgc3RhdGljIGlubGluZSBib29sIGk5MTVfdGVybWluYWxseV93 ZWRnZWQoc3RydWN0IGk5MTVfZ3B1X2Vycm9yICplcnJvcikKPiAgewo+IC0JcmV0dXJuIGF0b21p Y19yZWFkKCZlcnJvci0+cmVzZXRfY291bnRlcikgJiBJOTE1X1dFREdFRDsKPiArCXJldHVybiBf X2k5MTVfdGVybWluYWxseV93ZWRnZWQoaTkxNV9yZXNldF9jb3VudGVyKGVycm9yKSk7Cj4gIH0K PiAgCj4gIHN0YXRpYyBpbmxpbmUgdTMyIGk5MTVfcmVzZXRfY291bnQoc3RydWN0IGk5MTVfZ3B1 X2Vycm9yICplcnJvcikKPiAgewo+IC0JcmV0dXJuICgoYXRvbWljX3JlYWQoJmVycm9yLT5yZXNl dF9jb3VudGVyKSAmIH5JOTE1X1dFREdFRCkgKyAxKSAvIDI7Cj4gKwlyZXR1cm4gKChpOTE1X3Jl c2V0X2NvdW50ZXIoZXJyb3IpICYgfkk5MTVfV0VER0VEKSArIDEpIC8gMjsKPiAgfQo+ICAKPiAg c3RhdGljIGlubGluZSBib29sIGk5MTVfc3RvcF9yaW5nX2FsbG93X2JhbihzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gaW5kZXggY2Nj ZmU1YmZlNWJmLi5iZmYyNDVkZThhZGUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBA QCAtMTI5Nyw3ICsxMjk3LDcgQEAgaW50IF9faTkxNV93YWl0X3JlcXVlc3Qoc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gIAo+ICAJCS8qIFdlIG5lZWQgdG8gY2hlY2sgd2hldGhl ciBhbnkgZ3B1IHJlc2V0IGhhcHBlbmVkIGluIGJldHdlZW4KPiAgCQkgKiB0aGUgY2FsbGVyIGdy YWJiaW5nIHRoZSBzZXFubyBhbmQgbm93IC4uLiAqLwo+IC0JCWlmIChyZXNldF9jb3VudGVyICE9 IGF0b21pY19yZWFkKCZkZXZfcHJpdi0+Z3B1X2Vycm9yLnJlc2V0X2NvdW50ZXIpKSB7Cj4gKwkJ aWYgKHJlc2V0X2NvdW50ZXIgIT0gaTkxNV9yZXNldF9jb3VudGVyKCZkZXZfcHJpdi0+Z3B1X2Vy cm9yKSkgewo+ICAJCQkvKiAuLi4gYnV0IHVwZ3JhZGUgdGhlIC1FQUdBSU4gdG8gYW4gLUVJTyBp ZiB0aGUgZ3B1Cj4gIAkJCSAqIGlzIHRydWVseSBnb25lLiAqLwo+ICAJCQlyZXQgPSBpOTE1X2dl bV9jaGVja193ZWRnZSgmZGV2X3ByaXYtPmdwdV9lcnJvciwgaW50ZXJydXB0aWJsZSk7Cj4gQEAg LTE0NzUsNyArMTQ3NSw3IEBAIGk5MTVfd2FpdF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcmVxKQo+ICAJCXJldHVybiByZXQ7Cj4gIAo+ICAJcmV0ID0gX19pOTE1X3dhaXRf cmVxdWVzdChyZXEsCj4gLQkJCQkgIGF0b21pY19yZWFkKCZkZXZfcHJpdi0+Z3B1X2Vycm9yLnJl c2V0X2NvdW50ZXIpLAo+ICsJCQkJICBpOTE1X3Jlc2V0X2NvdW50ZXIoJmRldl9wcml2LT5ncHVf ZXJyb3IpLAo+ICAJCQkJICBpbnRlcnJ1cHRpYmxlLCBOVUxMLCBOVUxMKTsKPiAgCWlmIChyZXQp Cj4gIAkJcmV0dXJuIHJldDsKPiBAQCAtMTU2NCw3ICsxNTY0LDcgQEAgaTkxNV9nZW1fb2JqZWN0 X3dhaXRfcmVuZGVyaW5nX19ub25ibG9ja2luZyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqLAo+ICAJaWYgKHJldCkKPiAgCQlyZXR1cm4gcmV0Owo+ICAKPiAtCXJlc2V0X2NvdW50ZXIg PSBhdG9taWNfcmVhZCgmZGV2X3ByaXYtPmdwdV9lcnJvci5yZXNldF9jb3VudGVyKTsKPiArCXJl c2V0X2NvdW50ZXIgPSBpOTE1X3Jlc2V0X2NvdW50ZXIoJmRldl9wcml2LT5ncHVfZXJyb3IpOwo+ ICAKPiAgCWlmIChyZWFkb25seSkgewo+ICAJCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxOwo+IEBAIC0zMTEwLDcgKzMxMTAsNyBAQCBpOTE1X2dlbV93YWl0X2lvY3RsKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKPiAgCX0K PiAgCj4gIAlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgmb2JqLT5iYXNlKTsKPiAtCXJlc2V0 X2NvdW50ZXIgPSBhdG9taWNfcmVhZCgmZGV2X3ByaXYtPmdwdV9lcnJvci5yZXNldF9jb3VudGVy KTsKPiArCXJlc2V0X2NvdW50ZXIgPSBpOTE1X3Jlc2V0X2NvdW50ZXIoJmRldl9wcml2LT5ncHVf ZXJyb3IpOwo+ICAKPiAgCWZvciAoaSA9IDA7IGkgPCBJOTE1X05VTV9SSU5HUzsgaSsrKSB7Cj4g IAkJaWYgKG9iai0+bGFzdF9yZWFkX3JlcVtpXSA9PSBOVUxMKQo+IEBAIC0zMTU1LDcgKzMxNTUs NyBAQCBfX2k5MTVfZ2VtX29iamVjdF9zeW5jKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmosCj4gIAlpZiAoIWk5MTVfc2VtYXBob3JlX2lzX2VuYWJsZWQob2JqLT5iYXNlLmRldikpIHsK PiAgCQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUob2JqLT5iYXNlLmRl dik7Cj4gIAkJcmV0ID0gX19pOTE1X3dhaXRfcmVxdWVzdChmcm9tX3JlcSwKPiAtCQkJCQkgIGF0 b21pY19yZWFkKCZpOTE1LT5ncHVfZXJyb3IucmVzZXRfY291bnRlciksCj4gKwkJCQkJICBpOTE1 X3Jlc2V0X2NvdW50ZXIoJmk5MTUtPmdwdV9lcnJvciksCj4gIAkJCQkJICBpOTE1LT5tbS5pbnRl cnJ1cHRpYmxlLAo+ICAJCQkJCSAgTlVMTCwKPiAgCQkJCQkgICZpOTE1LT5ycHMuc2VtYXBob3Jl cyk7Cj4gQEAgLTQxMDksNyArNDEwOSw3IEBAIGk5MTVfZ2VtX3JpbmdfdGhyb3R0bGUoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlKQo+ICAKPiAgCQl0YXJnZXQg PSByZXF1ZXN0Owo+ICAJfQo+IC0JcmVzZXRfY291bnRlciA9IGF0b21pY19yZWFkKCZkZXZfcHJp di0+Z3B1X2Vycm9yLnJlc2V0X2NvdW50ZXIpOwo+ICsJcmVzZXRfY291bnRlciA9IGk5MTVfcmVz ZXRfY291bnRlcigmZGV2X3ByaXYtPmdwdV9lcnJvcik7Cj4gIAlpZiAodGFyZ2V0KQo+ICAJCWk5 MTVfZ2VtX3JlcXVlc3RfcmVmZXJlbmNlKHRhcmdldCk7Cj4gIAlzcGluX3VubG9jaygmZmlsZV9w cml2LT5tbS5sb2NrKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXgg NGFlNDkwZGZlMmM0Li41MTFlYWQwOGNjZDggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jCj4gQEAgLTMyODcsMTAgKzMyODcsMTIgQEAgc3RhdGljIGJvb2wgaW50ZWxfY3J0 Y19oYXNfcGVuZGluZ19mbGlwKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2Ny dGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ICsJdW5zaWduZWQgcmVzZXRfY291bnRlcjsKPiAg CWJvb2wgcGVuZGluZzsKPiAgCj4gLQlpZiAoaTkxNV9yZXNldF9pbl9wcm9ncmVzcygmZGV2X3By aXYtPmdwdV9lcnJvcikgfHwKPiAtCSAgICBpbnRlbF9jcnRjLT5yZXNldF9jb3VudGVyICE9IGF0 b21pY19yZWFkKCZkZXZfcHJpdi0+Z3B1X2Vycm9yLnJlc2V0X2NvdW50ZXIpKQo+ICsJcmVzZXRf Y291bnRlciA9IGk5MTVfcmVzZXRfY291bnRlcigmZGV2X3ByaXYtPmdwdV9lcnJvcik7Cj4gKwlp ZiAoaW50ZWxfY3J0Yy0+cmVzZXRfY291bnRlciAhPSByZXNldF9jb3VudGVyIHx8Cj4gKwkgICAg X19pOTE1X3Jlc2V0X2luX3Byb2dyZXNzKHJlc2V0X2NvdW50ZXIpKQo+ICAJCXJldHVybiBmYWxz ZTsKPiAgCj4gIAlzcGluX2xvY2tfaXJxKCZkZXYtPmV2ZW50X2xvY2spOwo+IEBAIC0xMDg2NSw5 ICsxMDg2NywxMSBAQCBzdGF0aWMgYm9vbCBwYWdlX2ZsaXBfZmluaXNoZWQoc3RydWN0IGludGVs X2NydGMgKmNydGMpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNl LmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3By aXZhdGU7Cj4gKwl1bnNpZ25lZCByZXNldF9jb3VudGVyOwo+ICAKPiAtCWlmIChpOTE1X3Jlc2V0 X2luX3Byb2dyZXNzKCZkZXZfcHJpdi0+Z3B1X2Vycm9yKSB8fAo+IC0JICAgIGNydGMtPnJlc2V0 X2NvdW50ZXIgIT0gYXRvbWljX3JlYWQoJmRldl9wcml2LT5ncHVfZXJyb3IucmVzZXRfY291bnRl cikpCj4gKwlyZXNldF9jb3VudGVyID0gaTkxNV9yZXNldF9jb3VudGVyKCZkZXZfcHJpdi0+Z3B1 X2Vycm9yKTsKPiArCWlmIChjcnRjLT5yZXNldF9jb3VudGVyICE9IHJlc2V0X2NvdW50ZXIgfHwK PiArCSAgICBfX2k5MTVfcmVzZXRfaW5fcHJvZ3Jlc3MocmVzZXRfY291bnRlcikpCj4gIAkJcmV0 dXJuIHRydWU7Cj4gIAo+ICAJLyoKPiBAQCAtMTE1MTEsNyArMTE1MTUsNyBAQCBzdGF0aWMgaW50 IGludGVsX2NydGNfcGFnZV9mbGlwKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCQlnb3RvIGNs ZWFudXA7Cj4gIAo+ICAJYXRvbWljX2luYygmaW50ZWxfY3J0Yy0+dW5waW5fd29ya19jb3VudCk7 Cj4gLQlpbnRlbF9jcnRjLT5yZXNldF9jb3VudGVyID0gYXRvbWljX3JlYWQoJmRldl9wcml2LT5n cHVfZXJyb3IucmVzZXRfY291bnRlcik7Cj4gKwlpbnRlbF9jcnRjLT5yZXNldF9jb3VudGVyID0g aTkxNV9yZXNldF9jb3VudGVyKCZkZXZfcHJpdi0+Z3B1X2Vycm9yKTsKPiAgCj4gIAlpZiAoSU5U RUxfSU5GTyhkZXYpLT5nZW4gPj0gNSB8fCBJU19HNFgoZGV2KSkKPiAgCQl3b3JrLT5mbGlwX2Nv dW50ID0gSTkxNV9SRUFEKFBJUEVfRkxJUENPVU5UX0c0WChwaXBlKSkgKyAxOwo+IEBAIC0xMzMw Myw3ICsxMzMwNyw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfYXRvbWljX3ByZXBhcmVfY29tbWl0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAlpZiAoIXJldCAmJiAhYXN5bmMgJiYgIWk5MTVfcmVz ZXRfaW5fcHJvZ3Jlc3MoJmRldl9wcml2LT5ncHVfZXJyb3IpKSB7Cj4gIAkJdTMyIHJlc2V0X2Nv dW50ZXI7Cj4gIAo+IC0JCXJlc2V0X2NvdW50ZXIgPSBhdG9taWNfcmVhZCgmZGV2X3ByaXYtPmdw dV9lcnJvci5yZXNldF9jb3VudGVyKTsKPiArCQlyZXNldF9jb3VudGVyID0gaTkxNV9yZXNldF9j b3VudGVyKCZkZXZfcHJpdi0+Z3B1X2Vycm9yKTsKPiAgCQltdXRleF91bmxvY2soJmRldi0+c3Ry dWN0X211dGV4KTsKPiAgCj4gIAkJZm9yX2VhY2hfcGxhbmVfaW5fc3RhdGUoc3RhdGUsIHBsYW5l LCBwbGFuZV9zdGF0ZSwgaSkgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9yaW5nYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVy LmMKPiBpbmRleCA1N2Q3OGYyNjRiNTMuLjg5NzAyNjdkMjdiYiAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiBAQCAtMjI4Niw3ICsyMjg2LDcgQEAgaW50IGlu dGVsX3JpbmdfaWRsZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQo+ICAKPiAgCS8qIE1h a2Ugc3VyZSB3ZSBkbyBub3QgdHJpZ2dlciBhbnkgcmV0aXJlcyAqLwo+ICAJcmV0dXJuIF9faTkx NV93YWl0X3JlcXVlc3QocmVxLAo+IC0JCQkJICAgYXRvbWljX3JlYWQoJnRvX2k5MTUocmluZy0+ ZGV2KS0+Z3B1X2Vycm9yLnJlc2V0X2NvdW50ZXIpLAo+ICsJCQkJICAgaTkxNV9yZXNldF9jb3Vu dGVyKCZ0b19pOTE1KHJpbmctPmRldiktPmdwdV9lcnJvciksCj4gIAkJCQkgICB0b19pOTE1KHJp bmctPmRldiktPm1tLmludGVycnVwdGlibGUsCj4gIAkJCQkgICBOVUxMLCBOVUxMKTsKPiAgfQo+ IC0tIAo+IDIuNi4yCj4gCgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50 ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK