From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [PATCH v3 09/19] drm/i915: clean up atomic plane check functions, v2. Date: Wed, 17 Jun 2015 18:48:44 -0700 Message-ID: <20150618014844.GE3607@intel.com> References: <1434364436-6366-1-git-send-email-maarten.lankhorst@linux.intel.com> <1434364436-6366-10-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id DA5306E26F for ; Wed, 17 Jun 2015 18:48:46 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1434364436-6366-10-git-send-email-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBKdW4gMTUsIDIwMTUgYXQgMTI6MzM6NDZQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gQnkgcGFzc2luZyBjcnRjX3N0YXRlIHRvIHRoZSBjaGVja19wbGFuZSBmdW5j dGlvbnMgYSBsb3Qgb2YgZHVwbGljYXRlZAo+IGNvZGUgY2FuIGJlIHJlbW92ZWQuIFRoZXJlIGFy ZSBzdGlsbCBzb21lIHRyYW5zaXRpb25hbCBoZWxwZXIgY2FsbHMsCj4gdGhleSB3aWxsIGJlIHJl bW92ZWQgbGF0ZXIuCj4gCj4gQ2hhbmdlcyBzaW5jZSB2MToKPiAtIFJldmVydCBzdGF0ZS0+dmlz aWJsZSBjaGFuZ2VzLgo+IC0gVXNlIHBsYW5lLT5zdGF0ZS0+Y3J0YyBpbnN0ZWFkIG9mIHBsYW5l LT5jcnRjLgo+IC0gVXNlIGRybV9hdG9taWNfZ2V0X2V4aXN0aW5nX2NydGNfc3RhdGUuCj4gCj4g U2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4 LmludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3Bs YW5lLmMgfCAxNiArKysrKysrLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMgICAgICB8IDQ4ICsrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgICAgICAgfCAgMSArCj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jICAgICAgIHwgIDkgKystLS0tCj4gIDQgZmlsZXMgY2hh bmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgNDUgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pY19wbGFuZS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMKPiBpbmRleCBhYTIxMjgzNjlhMGEuLjkxZDUz NzY4ZGY5ZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWNf cGxhbmUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pY19wbGFuZS5j Cj4gQEAgLTExNiw3ICsxMTYsNyBAQCBzdGF0aWMgaW50IGludGVsX3BsYW5lX2F0b21pY19jaGVj ayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAq aW50ZWxfc3RhdGUgPSB0b19pbnRlbF9wbGFuZV9zdGF0ZShzdGF0ZSk7Cj4gIAlpbnQgcmV0Owo+ ICAKPiAtCWNydGMgPSBjcnRjID8gY3J0YyA6IHBsYW5lLT5jcnRjOwo+ICsJY3J0YyA9IGNydGMg PyBjcnRjIDogcGxhbmUtPnN0YXRlLT5jcnRjOwo+ICAJaW50ZWxfY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Yyk7Cj4gIAo+ICAJLyoKPiBAQCAtMTMxLDEwICsxMzEsMTMgQEAgc3RhdGljIGludCBp bnRlbF9wbGFuZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAkvKiBG SVhNRTogdGVtcG9yYXJ5IGhhY2sgbmVjZXNzYXJ5IHdoaWxlIHdlIHN0aWxsIHVzZSB0aGUgcGxh bmUgdXBkYXRlCj4gIAkgKiBoZWxwZXIuICovCj4gIAlpZiAoc3RhdGUtPnN0YXRlKSB7Cj4gLQkJ Y3J0Y19zdGF0ZSA9Cj4gLQkJCWludGVsX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZS0+c3Rh dGUsIGludGVsX2NydGMpOwo+IC0JCWlmIChJU19FUlIoY3J0Y19zdGF0ZSkpCj4gLQkJCXJldHVy biBQVFJfRVJSKGNydGNfc3RhdGUpOwo+ICsJCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqZHJtX2Ny dGNfc3RhdGUgPQo+ICsJCQlkcm1fYXRvbWljX2dldF9leGlzdGluZ19jcnRjX3N0YXRlKHN0YXRl LT5zdGF0ZSwgY3J0Yyk7CgpJcyB0aGlzIGNoYW5nZSBpbXBvcnRhbnQ/ICBXZSBjYW4ndCBnZXQg dG8gdGhpcyBwb2ludCB3aXRob3V0IHRoZSBjcnRjCnN0YXRlIGJlaW5nIGluIHRoZSBhdG9taWMg dHJhbnNhY3Rpb24gY2FuIHdlPyAgVGhlIG9ubHkgY2FzZSB3aGVyZSB0aGF0CnVzZWQgdG8gaGFw cGVuIHdhcyBpZiBjcnRjIHdhcyBhY3R1YWxseSBOVUxMIGR1ZSB0byBhIHByb3BlcnR5IHVwZGF0 ZSBvZgphIGRpc2FibGVkIHBsYW5lLCBidXQgd2UgYmFpbCBvdXQgb24gIWNydGMganVzdCBhYm92 ZSB0aGlzLgoKTm90IHRoYXQgdGhpcyBjaGFuZ2Ugd291bGQgY2F1c2UgYW55IHByb2JsZW1zIHRo YXQgSSBzZWUsIEkganVzdCBkb24ndAp1bmRlcnN0YW5kIHRoZSBtb3RpdmF0aW9uLgoKPiArCj4g KwkJaWYgKFdBUk5fT04oIWRybV9jcnRjX3N0YXRlKSkKPiArCQkJcmV0dXJuIC1FSU5WQUw7Cj4g Kwo+ICsJCWNydGNfc3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGRybV9jcnRjX3N0YXRlKTsK PiAgCX0gZWxzZSB7Cj4gIAkJY3J0Y19zdGF0ZSA9IGludGVsX2NydGMtPmNvbmZpZzsKPiAgCX0K PiBAQCAtMTg1LDcgKzE4OCw4IEBAIHN0YXRpYyBpbnQgaW50ZWxfcGxhbmVfYXRvbWljX2NoZWNr KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJCX0KPiAgCX0KPiAgCj4gLQlyZXQgPSBpbnRl bF9wbGFuZS0+Y2hlY2tfcGxhbmUocGxhbmUsIGludGVsX3N0YXRlKTsKPiArCWludGVsX3N0YXRl LT52aXNpYmxlID0gZmFsc2U7Cj4gKwlyZXQgPSBpbnRlbF9wbGFuZS0+Y2hlY2tfcGxhbmUocGxh bmUsIGNydGNfc3RhdGUsIGludGVsX3N0YXRlKTsKPiAgCWlmIChyZXQgfHwgIXN0YXRlLT5zdGF0 ZSkKPiAgCQlyZXR1cm4gcmV0Owo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j Cj4gaW5kZXggZWM0OTI0ZWVjZDY4Li42MTY5NzMzNWJmZjIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTEzNzAzLDM2ICsxMzcwMywyNSBAQCBza2xfbWF4X3Nj YWxlKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZQo+ICAKPiAgc3RhdGljIGludAo+ICBpbnRlbF9jaGVja19wcmltYXJ5X3Bs YW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICsJCQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlLAo+ICAJCQkgIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGUp Cj4gIHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBwbGFuZS0+ZGV2Owo+ICAJc3RydWN0 IGRybV9jcnRjICpjcnRjID0gc3RhdGUtPmJhc2UuY3J0YzsKPiAtCXN0cnVjdCBpbnRlbF9jcnRj ICppbnRlbF9jcnRjOwo+IC0Jc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4g IAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHN0YXRlLT5iYXNlLmZiOwo+IC0Jc3RydWN0 IGRybV9yZWN0ICpkZXN0ID0gJnN0YXRlLT5kc3Q7Cj4gLQlzdHJ1Y3QgZHJtX3JlY3QgKnNyYyA9 ICZzdGF0ZS0+c3JjOwo+IC0JY29uc3Qgc3RydWN0IGRybV9yZWN0ICpjbGlwID0gJnN0YXRlLT5j bGlwOwo+IC0JYm9vbCBjYW5fcG9zaXRpb24gPSBmYWxzZTsKPiAtCWludCBtYXhfc2NhbGUgPSBE Uk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkc7Cj4gIAlpbnQgbWluX3NjYWxlID0gRFJNX1BMQU5F X0hFTFBFUl9OT19TQ0FMSU5HOwo+ICsJaW50IG1heF9zY2FsZSA9IERSTV9QTEFORV9IRUxQRVJf Tk9fU0NBTElORzsKPiArCWJvb2wgY2FuX3Bvc2l0aW9uID0gZmFsc2U7Cj4gIAo+IC0JY3J0YyA9 IGNydGMgPyBjcnRjIDogcGxhbmUtPmNydGM7Cj4gLQlpbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjKTsKPiAtCWNydGNfc3RhdGUgPSBzdGF0ZS0+YmFzZS5zdGF0ZSA/Cj4gLQkJaW50ZWxf YXRvbWljX2dldF9jcnRjX3N0YXRlKHN0YXRlLT5iYXNlLnN0YXRlLCBpbnRlbF9jcnRjKSA6IE5V TEw7Cj4gLQo+IC0JaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDkpIHsKPiAtCQkvKiB1c2Ug c2NhbGVyIHdoZW4gY29sb3JrZXkgaXMgbm90IHJlcXVpcmVkICovCj4gLQkJaWYgKHRvX2ludGVs X3BsYW5lKHBsYW5lKS0+Y2tleS5mbGFncyA9PSBJOTE1X1NFVF9DT0xPUktFWV9OT05FKSB7Cj4g LQkJCW1pbl9zY2FsZSA9IDE7Cj4gLQkJCW1heF9zY2FsZSA9IHNrbF9tYXhfc2NhbGUoaW50ZWxf Y3J0YywgY3J0Y19zdGF0ZSk7Cj4gLQkJfQo+ICsJLyogdXNlIHNjYWxlciB3aGVuIGNvbG9ya2V5 IGlzIG5vdCByZXF1aXJlZCAqLwo+ICsJaWYgKElOVEVMX0lORk8ocGxhbmUtPmRldiktPmdlbiA+ PSA5ICYmCj4gKwkgICAgdG9faW50ZWxfcGxhbmUocGxhbmUpLT5ja2V5LmZsYWdzID09IEk5MTVf U0VUX0NPTE9SS0VZX05PTkUpIHsKPiArCQltaW5fc2NhbGUgPSAxOwo+ICsJCW1heF9zY2FsZSA9 IHNrbF9tYXhfc2NhbGUodG9faW50ZWxfY3J0YyhjcnRjKSwgY3J0Y19zdGF0ZSk7Cj4gIAkJY2Fu X3Bvc2l0aW9uID0gdHJ1ZTsKPiAgCX0KPiAgCj4gLQlyZXR1cm4gZHJtX3BsYW5lX2hlbHBlcl9j aGVja191cGRhdGUocGxhbmUsIGNydGMsIGZiLAo+IC0JCQkJCSAgICAgc3JjLCBkZXN0LCBjbGlw LAo+ICsJcmV0dXJuIGRybV9wbGFuZV9oZWxwZXJfY2hlY2tfdXBkYXRlKHBsYW5lLCBjcnRjLCBm YiwgJnN0YXRlLT5zcmMsCj4gKwkJCQkJICAgICAmc3RhdGUtPmRzdCwgJnN0YXRlLT5jbGlwLAo+ ICAJCQkJCSAgICAgbWluX3NjYWxlLCBtYXhfc2NhbGUsCj4gIAkJCQkJICAgICBjYW5fcG9zaXRp b24sIHRydWUsCj4gIAkJCQkJICAgICAmc3RhdGUtPnZpc2libGUpOwo+IEBAIC0xMzk3MywyNCAr MTM5NjIsMTcgQEAgdm9pZCBpbnRlbF9jcmVhdGVfcm90YXRpb25fcHJvcGVydHkoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgc3RydWN0IGludGVsX3BsYW5lICoKPiAgCj4gIHN0YXRpYyBpbnQKPiAg aW50ZWxfY2hlY2tfY3Vyc29yX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICsJCQkg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAkJCSBzdHJ1Y3QgaW50ZWxf cGxhbmVfc3RhdGUgKnN0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBzdGF0 ZS0+YmFzZS5jcnRjOwo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHBsYW5lLT5kZXY7Cj4g KwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBjcnRjX3N0YXRlLT5iYXNlLmNydGM7Cj4gIAlzdHJ1 Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHN0YXRlLT5iYXNlLmZiOwo+IC0Jc3RydWN0IGRybV9y ZWN0ICpkZXN0ID0gJnN0YXRlLT5kc3Q7Cj4gLQlzdHJ1Y3QgZHJtX3JlY3QgKnNyYyA9ICZzdGF0 ZS0+c3JjOwo+IC0JY29uc3Qgc3RydWN0IGRybV9yZWN0ICpjbGlwID0gJnN0YXRlLT5jbGlwOwo+ ICAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGludGVsX2ZiX29iaihmYik7Cj4g LQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YzsKPiAgCXVuc2lnbmVkIHN0cmlkZTsKPiAg CWludCByZXQ7Cj4gIAo+IC0JY3J0YyA9IGNydGMgPyBjcnRjIDogcGxhbmUtPmNydGM7Cj4gLQlp bnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiAtCj4gLQlyZXQgPSBkcm1fcGxhbmVf aGVscGVyX2NoZWNrX3VwZGF0ZShwbGFuZSwgY3J0YywgZmIsCj4gLQkJCQkJICAgIHNyYywgZGVz dCwgY2xpcCwKPiArCXJldCA9IGRybV9wbGFuZV9oZWxwZXJfY2hlY2tfdXBkYXRlKHBsYW5lLCBj cnRjLCBmYiwgJnN0YXRlLT5zcmMsCj4gKwkJCQkJICAgICZzdGF0ZS0+ZHN0LCAmc3RhdGUtPmNs aXAsCj4gIAkJCQkJICAgIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywKPiAgCQkJCQkgICAg RFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HLAo+ICAJCQkJCSAgICB0cnVlLCB0cnVlLCAmc3Rh dGUtPnZpc2libGUpOwo+IEBAIC0xNDAwMiw3ICsxMzk4NCw3IEBAIGludGVsX2NoZWNrX2N1cnNv cl9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgCQlyZXR1cm4gMDsKPiAgCj4gIAkv KiBDaGVjayBmb3Igd2hpY2ggY3Vyc29yIHR5cGVzIHdlIHN1cHBvcnQgKi8KPiAtCWlmICghY3Vy c29yX3NpemVfb2soZGV2LCBzdGF0ZS0+YmFzZS5jcnRjX3csIHN0YXRlLT5iYXNlLmNydGNfaCkp IHsKPiArCWlmICghY3Vyc29yX3NpemVfb2socGxhbmUtPmRldiwgc3RhdGUtPmJhc2UuY3J0Y193 LCBzdGF0ZS0+YmFzZS5jcnRjX2gpKSB7Cj4gIAkJRFJNX0RFQlVHKCJDdXJzb3IgZGltZW5zaW9u ICVkeCVkIG5vdCBzdXBwb3J0ZWRcbiIsCj4gIAkJCSAgc3RhdGUtPmJhc2UuY3J0Y193LCBzdGF0 ZS0+YmFzZS5jcnRjX2gpOwo+ICAJCXJldHVybiAtRUlOVkFMOwo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oCj4gaW5kZXggOWY1ODY3YmY3NDVlLi44YzBmMTdlODRlZWUgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaAo+IEBAIC02MTMsNiArNjEzLDcgQEAgc3RydWN0IGludGVsX3BsYW5l IHsKPiAgCXZvaWQgKCpkaXNhYmxlX3BsYW5lKShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAg CQkJICAgICAgc3RydWN0IGRybV9jcnRjICpjcnRjLCBib29sIGZvcmNlKTsKPiAgCWludCAoKmNo ZWNrX3BsYW5lKShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiArCQkJICAgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAkJCSAgIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0 ZSAqc3RhdGUpOwo+ICAJdm9pZCAoKmNvbW1pdF9wbGFuZSkoc3RydWN0IGRybV9wbGFuZSAqcGxh bmUsCj4gIAkJCSAgICAgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSk7Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiBpbmRleCBjOTA5YjhiOGNlODUuLjk5OWE1NzUzZGRl MyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4gQEAgLTczOSwxMSArNzM5 LDEyIEBAIGlsa19kaXNhYmxlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMsIGJvb2wgZm9yY2UpCj4gIAo+ICBzdGF0aWMgaW50Cj4gIGludGVsX2No ZWNrX3Nwcml0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiArCQkJIHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJCQkgc3RydWN0IGludGVsX3BsYW5lX3N0 YXRlICpzdGF0ZSkKPiAgewo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHBsYW5lLT5kZXY7 Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoc3RhdGUt PmJhc2UuY3J0Yyk7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKPiAr CXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHN0YXRlLT5iYXNlLmNydGM7Cj4gKwlzdHJ1Y3QgaW50 ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CgpXZSBkb24ndCBhY3R1 YWxseSB1c2UgY3J0YyBhbnl3aGVyZSBhZnRlciB0aGlzLCBzbyBJJ20gbm90IHN1cmUgaWYgdGhl cmUKd2FzIGEgbmVlZCB0byBjaGFuZ2UgdGhlIGFzc2lnbm1lbnQgb2YgaW50ZWxfY3J0Yz8gIE5v dCBhIGJpZyBkZWFsCmVpdGhlciB3YXkuCgoKTWF0dAoKPiAgCXN0cnVjdCBpbnRlbF9wbGFuZSAq aW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZSk7Cj4gIAlzdHJ1Y3QgZHJtX2ZyYW1l YnVmZmVyICpmYiA9IHN0YXRlLT5iYXNlLmZiOwo+ICAJaW50IGNydGNfeCwgY3J0Y195Owo+IEBA IC03NTcsMTAgKzc1OCw2IEBAIGludGVsX2NoZWNrX3Nwcml0ZV9wbGFuZShzdHJ1Y3QgZHJtX3Bs YW5lICpwbGFuZSwKPiAgCWJvb2wgY2FuX3NjYWxlOwo+ICAJaW50IHBpeGVsX3NpemU7Cj4gIAo+ IC0JaW50ZWxfY3J0YyA9IGludGVsX2NydGMgPyBpbnRlbF9jcnRjIDogdG9faW50ZWxfY3J0Yyhw bGFuZS0+Y3J0Yyk7Cj4gLQljcnRjX3N0YXRlID0gc3RhdGUtPmJhc2Uuc3RhdGUgPwo+IC0JCWlu dGVsX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZS0+YmFzZS5zdGF0ZSwgaW50ZWxfY3J0Yykg OiBOVUxMOwo+IC0KPiAgCWlmICghZmIpIHsKPiAgCQlzdGF0ZS0+dmlzaWJsZSA9IGZhbHNlOwo+ ICAJCXJldHVybiAwOwo+IC0tIAo+IDIuMS4wCj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApNYXR0IFJvcGVyCkdyYXBoaWNzIFNvZnR3 YXJlIEVuZ2luZWVyCklvVEcgUGxhdGZvcm0gRW5hYmxpbmcgJiBEZXZlbG9wbWVudApJbnRlbCBD b3Jwb3JhdGlvbgooOTE2KSAzNTYtMjc5NQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=