From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Noralf_Tr=c3=b8nnes?= Subject: Re: [RFC v2 3/8] drm: Add helper for simple kms drivers Date: Mon, 2 May 2016 17:55:15 +0200 Message-ID: <57277863.5020100@tronnes.org> References: <1460135110-24121-1-git-send-email-noralf@tronnes.org> <1460135110-24121-4-git-send-email-noralf@tronnes.org> <20160413110553.GY2510@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from smtp.domeneshop.no (smtp.domeneshop.no [IPv6:2a01:5b40:0:3005::1]) by gabe.freedesktop.org (Postfix) with ESMTPS id E4E936E608 for ; Mon, 2 May 2016 15:55:21 +0000 (UTC) In-Reply-To: <20160413110553.GY2510@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: thomas.petazzoni@free-electrons.com, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org CkRlbiAxMy4wNC4yMDE2IDEzOjA1LCBza3JldiBEYW5pZWwgVmV0dGVyOgo+IE9uIEZyaSwgQXBy IDA4LCAyMDE2IGF0IDA3OjA1OjA1UE0gKzAyMDAsIE5vcmFsZiBUcsO4bm5lcyB3cm90ZToKPj4g UHJvdmlkZXMgaGVscGVyIGZ1bmN0aW9ucyBmb3IgZHJpdmVycyB0aGF0IGhhdmUgYSBzaW1wbGUg ZGlzcGxheQo+PiBwaXBlbGluZS4gUGxhbmUsIGNydGMgYW5kIGVuY29kZXIgYXJlIGNvbGxhcHNl ZCBpbnRvIG9uZSBlbnRpdHkuCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IE5vcmFsZiBUcsO4bm5lcyA8 bm9yYWxmQHRyb25uZXMub3JnPgoKWy4uLl0KCj4+ICtzdGF0aWMgdm9pZCBkcm1fc2ltcGxlX2tt c19lbmNvZGVyX2Rpc2FibGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQo+PiArewo+PiAr fQo+PiArCj4+ICtzdGF0aWMgdm9pZCBkcm1fc2ltcGxlX2ttc19lbmNvZGVyX2VuYWJsZShzdHJ1 Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4+ICt7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpbnQg ZHJtX3NpbXBsZV9rbXNfZW5jb2Rlcl9hdG9taWNfY2hlY2soc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyLAo+PiArCQkJCQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4+ICsJ CQkJCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+PiArewo+PiArCXJl dHVybiAwOwo+PiArfQo+IEFib3ZlIGR1bW15IGZ1bmN0aW9ucyBzaG91bGRuJ3QgYmUgbmVjZXNz YXJ5LgoKSSBjb3VsZCByZW1vdmUgLmF0b21pY19jaGVjaywgYnV0IG5vdCAuZGlzYWJsZSBhbmQg LmVuYWJsZSB3aGljaCBnYXZlIG1lCk5VTEwgcG9pbnRlciBlcnJvcnMuIEkgbmVlZCAuZW5hYmxl IG9yIC5jb21taXQsIGFuZCAuZGlzYWJsZSBvciAuZHBtcy4KCkdpc3Q6Cgp2b2lkIGRybV9hdG9t aWNfaGVscGVyX2NvbW1pdF9tb2Rlc2V0X2VuYWJsZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZSAKKm9sZF9zdGF0ZSkKewogICAgICAgICBmb3JfZWFjaF9jb25uZWN0b3Jf aW5fc3RhdGUob2xkX3N0YXRlLCBjb25uZWN0b3IsIApvbGRfY29ubl9zdGF0ZSwgaSkgewogICAg ICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fZW5jb2Rlcl9oZWxwZXJfZnVuY3MgKmZ1bmNz OwoKICAgICAgICAgICAgICAgICBmdW5jcyA9IGVuY29kZXItPmhlbHBlcl9wcml2YXRlOwoKICAg ICAgICAgICAgICAgICBpZiAoZnVuY3MtPmVuYWJsZSkKICAgICAgICAgICAgICAgICAgICAgICAg IGZ1bmNzLT5lbmFibGUoZW5jb2Rlcik7CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAg ICAgICAgICAgICAgICAgZnVuY3MtPmNvbW1pdChlbmNvZGVyKTsKCnN0YXRpYyB2b2lkCmRpc2Fi bGVfb3V0cHV0cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqb2xkX3N0YXRlKQp7CiAgICAgICAgIGZvcl9lYWNoX2Nvbm5lY3Rvcl9pbl9zdGF0ZShvbGRf c3RhdGUsIGNvbm5lY3RvciwgCm9sZF9jb25uX3N0YXRlLCBpKSB7CiAgICAgICAgICAgICAgICAg Y29uc3Qgc3RydWN0IGRybV9lbmNvZGVyX2hlbHBlcl9mdW5jcyAqZnVuY3M7CgogICAgICAgICAg ICAgICAgIGZ1bmNzID0gZW5jb2Rlci0+aGVscGVyX3ByaXZhdGU7CgogICAgICAgICAgICAgICAg IGlmIChjb25uZWN0b3ItPnN0YXRlLT5jcnRjICYmIGZ1bmNzLT5wcmVwYXJlKQogICAgICAgICAg ICAgICAgICAgICAgICAgZnVuY3MtPnByZXBhcmUoZW5jb2Rlcik7CiAgICAgICAgICAgICAgICAg ZWxzZSBpZiAoZnVuY3MtPmRpc2FibGUpCiAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jcy0+ ZGlzYWJsZShlbmNvZGVyKTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAg ICAgICAgICBmdW5jcy0+ZHBtcyhlbmNvZGVyLCBEUk1fTU9ERV9EUE1TX09GRik7Cgo+Cj4+ICsK Pj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2VuY29kZXJfaGVscGVyX2Z1bmNzIGRybV9zaW1w bGVfa21zX2VuY29kZXJfaGVscGVyX2Z1bmNzID0gewo+PiArCS5kaXNhYmxlID0gZHJtX3NpbXBs ZV9rbXNfZW5jb2Rlcl9kaXNhYmxlLAo+PiArCS5lbmFibGUgPSBkcm1fc2ltcGxlX2ttc19lbmNv ZGVyX2VuYWJsZSwKPj4gKwkuYXRvbWljX2NoZWNrID0gZHJtX3NpbXBsZV9rbXNfZW5jb2Rlcl9h dG9taWNfY2hlY2ssCj4+ICt9Owo+PiArCj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9lbmNv ZGVyX2Z1bmNzIGRybV9zaW1wbGVfa21zX2VuY29kZXJfZnVuY3MgPSB7Cj4+ICsJLmRlc3Ryb3kg PSBkcm1fZW5jb2Rlcl9jbGVhbnVwLAo+PiArfTsKPj4gKwo+PiArc3RhdGljIHZvaWQgZHJtX3Np bXBsZV9rbXNfY3J0Y19lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+PiArewo+PiArCXN0 cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZTsKPj4gKwo+PiArCXBpcGUgPSBjb250 YWluZXJfb2YoY3J0Yywgc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlLCBjcnRjKTsKPj4g KwlpZiAoIXBpcGUtPmZ1bmNzIHx8ICFwaXBlLT5mdW5jcy0+ZW5hYmxlKQo+PiArCQlyZXR1cm47 Cj4+ICsKPj4gKwlwaXBlLT5mdW5jcy0+ZW5hYmxlKHBpcGUsIGNydGMtPnN0YXRlKTsKPj4gK30K Pj4gKwo+PiArc3RhdGljIHZvaWQgZHJtX3NpbXBsZV9rbXNfY3J0Y19kaXNhYmxlKHN0cnVjdCBk cm1fY3J0YyAqY3J0YykKPj4gK3sKPj4gKwlzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUg KnBpcGU7Cj4+ICsKPj4gKwlwaXBlID0gY29udGFpbmVyX29mKGNydGMsIHN0cnVjdCBkcm1fc2lt cGxlX2Rpc3BsYXlfcGlwZSwgY3J0Yyk7Cj4+ICsJaWYgKCFwaXBlLT5mdW5jcyB8fCAhcGlwZS0+ ZnVuY3MtPmRpc2FibGUpCj4+ICsJCXJldHVybjsKPj4gKwo+PiArCXBpcGUtPmZ1bmNzLT5kaXNh YmxlKHBpcGUpOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jcnRjX2hl bHBlcl9mdW5jcyBkcm1fc2ltcGxlX2ttc19jcnRjX2hlbHBlcl9mdW5jcyA9IHsKPj4gKwkuZGlz YWJsZSA9IGRybV9zaW1wbGVfa21zX2NydGNfZGlzYWJsZSwKPj4gKwkuZW5hYmxlID0gZHJtX3Np bXBsZV9rbXNfY3J0Y19lbmFibGUsCj4+ICt9Owo+PiArCj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0 IGRybV9jcnRjX2Z1bmNzIGRybV9zaW1wbGVfa21zX2NydGNfZnVuY3MgPSB7Cj4+ICsJLnJlc2V0 ID0gZHJtX2F0b21pY19oZWxwZXJfY3J0Y19yZXNldCwKPj4gKwkuZGVzdHJveSA9IGRybV9jcnRj X2NsZWFudXAsCj4+ICsJLnNldF9jb25maWcgPSBkcm1fYXRvbWljX2hlbHBlcl9zZXRfY29uZmln LAo+PiArCS5wYWdlX2ZsaXAgPSBkcm1fYXRvbWljX2hlbHBlcl9wYWdlX2ZsaXAsCj4+ICsJLmF0 b21pY19kdXBsaWNhdGVfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9jcnRjX2R1cGxpY2F0ZV9z dGF0ZSwKPj4gKwkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9jcnRj X2Rlc3Ryb3lfc3RhdGUsCj4+ICt9Owo+PiArCj4+ICtzdGF0aWMgdm9pZCBkcm1fc2ltcGxlX2tt c19wbGFuZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+PiArCQkJCQlz dHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfc3RhdGUpCj4+ICt7Cj4+ICsJc3RydWN0IGRybV9z aW1wbGVfZGlzcGxheV9waXBlICpwaXBlOwo+PiArCj4+ICsJcGlwZSA9IGNvbnRhaW5lcl9vZihw bGFuZSwgc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlLCBwbGFuZSk7Cj4+ICsJaWYgKCFw aXBlLT5mdW5jcyB8fCAhcGlwZS0+ZnVuY3MtPnBsYW5lX3VwZGF0ZSkKPj4gKwkJcmV0dXJuOwo+ PiArCj4+ICsJcGlwZS0+ZnVuY3MtPnBsYW5lX3VwZGF0ZShwaXBlLCBvbGRfc3RhdGUpOwo+PiAr fQo+PiArCj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9oZWxwZXJfZnVuY3MgZHJt X3NpbXBsZV9rbXNfcGxhbmVfaGVscGVyX2Z1bmNzID0gewo+PiArCS5hdG9taWNfdXBkYXRlID0g ZHJtX3NpbXBsZV9rbXNfcGxhbmVfYXRvbWljX3VwZGF0ZSwKPj4gK307Cj4+ICsKPj4gK3N0YXRp YyBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2Z1bmNzIGRybV9zaW1wbGVfa21zX3BsYW5lX2Z1bmNz ID0gewo+PiArCS51cGRhdGVfcGxhbmUJCT0gZHJtX2F0b21pY19oZWxwZXJfdXBkYXRlX3BsYW5l LAo+PiArCS5kaXNhYmxlX3BsYW5lCQk9IGRybV9hdG9taWNfaGVscGVyX2Rpc2FibGVfcGxhbmUs Cj4+ICsJLmRlc3Ryb3kJCT0gZHJtX3BsYW5lX2NsZWFudXAsCj4+ICsJLnJlc2V0CQkJPSBkcm1f YXRvbWljX2hlbHBlcl9wbGFuZV9yZXNldCwKPj4gKwkuYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZQk9 IGRybV9hdG9taWNfaGVscGVyX3BsYW5lX2R1cGxpY2F0ZV9zdGF0ZSwKPj4gKwkuYXRvbWljX2Rl c3Ryb3lfc3RhdGUJPSBkcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kZXN0cm95X3N0YXRlLAo+PiAr fTsKPj4gKwo+PiArLyoqCj4+ICsgKiBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZV9pbml0IC0gSW5p dGlhbGl6ZSBhIHNpbXBsZSBkaXNwbGF5IHBpcGUKPj4gKyAqIEBkZXY6IERSTSBkZXZpY2UKPj4g KyAqIEBwaXBlOiBzaW1wbGUgZGlzcGxheSBwaXBlIG9iamVjdCB0byBpbml0aWFsaXplCj4+ICsg KiBAZnVuY3M6IGNhbGxiYWNrcyBmb3IgdGhlIGRpc3BsYXkgcGlwZQo+PiArICogQGZvcm1hdHM6 IGFycmF5IG9mIHN1cHBvcnRlZCBmb3JtYXRzICglRFJNX0ZPUk1BVF8qKQo+PiArICogQGZvcm1h dF9jb3VudDogbnVtYmVyIG9mIGVsZW1lbnRzIGluIEBmb3JtYXRzCj4+ICsgKiBAY29ubmVjdG9y OiBjb25uZWN0b3IgdG8gYXR0YWNoIGFuZCByZWdpc3Rlcgo+PiArICoKPj4gKyAqIFNldHMgdXAg YSBkaXNwbGF5IHBpcGUgd2hpY2ggY29uc2lzdCBvZiBhIHJlYWxseSBzaW1wbGUgcGxhbmUtY3J0 Yy1lbmNvZGVyCj4+ICsgKiBwaXBlIGNvdXBsZWQgd2l0aCB0aGUgcHJvdmlkZWQgY29ubmVjdG9y Lgo+PiArICoKPj4gKyAqIFJldHVybnM6Cj4+ICsgKiBaZXJvIG9uIHN1Y2Nlc3MsIGVycm9yIGNv ZGUgb24gZmFpbHVyZS4KPj4gKyAqLwo+PiAraW50IGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2lu aXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4gKwkJCQkgc3RydWN0IGRybV9zaW1wbGVfZGlz cGxheV9waXBlICpwaXBlLAo+PiArCQkJCSBzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGVf ZnVuY3MgKmZ1bmNzLAo+PiArCQkJCSBjb25zdCB1aW50MzJfdCAqZm9ybWF0cywgdW5zaWduZWQg aW50IGZvcm1hdF9jb3VudCwKPj4gKwkJCQkgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rv cikKPj4gK3sKPj4gKwlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSAmcGlwZS0+ZW5jb2Rl cjsKPj4gKwlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSA9ICZwaXBlLT5wbGFuZTsKPj4gKwlzdHJ1 Y3QgZHJtX2NydGMgKmNydGMgPSAmcGlwZS0+Y3J0YzsKPj4gKwlpbnQgcmV0Owo+PiArCj4+ICsJ cGlwZS0+ZnVuY3MgPSBmdW5jczsKPj4gKwo+PiArCWRybV9wbGFuZV9oZWxwZXJfYWRkKHBsYW5l LCAmZHJtX3NpbXBsZV9rbXNfcGxhbmVfaGVscGVyX2Z1bmNzKTsKPj4gKwlyZXQgPSBkcm1fdW5p dmVyc2FsX3BsYW5lX2luaXQoZGV2LCBwbGFuZSwgMCwgJmRybV9zaW1wbGVfa21zX3BsYW5lX2Z1 bmNzLAo+PiArCQkJCSAgICAgICBmb3JtYXRzLCBmb3JtYXRfY291bnQsCj4+ICsJCQkJICAgICAg IERSTV9QTEFORV9UWVBFX1BSSU1BUlksIE5VTEwpOwo+PiArCWlmIChyZXQpCj4+ICsJCXJldHVy biByZXQ7Cj4+ICsKPj4gKwlkcm1fY3J0Y19oZWxwZXJfYWRkKGNydGMsICZkcm1fc2ltcGxlX2tt c19jcnRjX2hlbHBlcl9mdW5jcyk7Cj4+ICsJcmV0ID0gZHJtX2NydGNfaW5pdF93aXRoX3BsYW5l cyhkZXYsIGNydGMsIHBsYW5lLCBOVUxMLAo+PiArCQkJCQkmZHJtX3NpbXBsZV9rbXNfY3J0Y19m dW5jcywgTlVMTCk7Cj4+ICsJaWYgKHJldCkKPj4gKwkJcmV0dXJuIHJldDsKPj4gKwo+PiArCWVu Y29kZXItPnBvc3NpYmxlX2NydGNzID0gMSA8PCBkcm1fY3J0Y19pbmRleChjcnRjKTsKPj4gKwlk cm1fZW5jb2Rlcl9oZWxwZXJfYWRkKGVuY29kZXIsICZkcm1fc2ltcGxlX2ttc19lbmNvZGVyX2hl bHBlcl9mdW5jcyk7Cj4+ICsJcmV0ID0gZHJtX2VuY29kZXJfaW5pdChkZXYsIGVuY29kZXIsICZk cm1fc2ltcGxlX2ttc19lbmNvZGVyX2Z1bmNzLAo+PiArCQkJICAgICAgIERSTV9NT0RFX0VOQ09E RVJfTk9ORSwgTlVMTCk7Cj4+ICsJaWYgKHJldCkKPj4gKwkJcmV0dXJuIHJldDsKPj4gKwo+PiAr CXJldCA9IGRybV9tb2RlX2Nvbm5lY3Rvcl9hdHRhY2hfZW5jb2Rlcihjb25uZWN0b3IsIGVuY29k ZXIpOwo+PiArCWlmIChyZXQpCj4+ICsJCXJldHVybiByZXQ7Cj4+ICsKPj4gKwlyZXR1cm4gZHJt X2Nvbm5lY3Rvcl9yZWdpc3Rlcihjb25uZWN0b3IpOwo+PiArfQo+PiArRVhQT1JUX1NZTUJPTChk cm1fc2ltcGxlX2Rpc3BsYXlfcGlwZV9pbml0KTsKPj4gKwo+PiArTU9EVUxFX0xJQ0VOU0UoIkdQ TCIpOwo+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX3NpbXBsZV9rbXNfaGVscGVyLmgg Yi9pbmNsdWRlL2RybS9kcm1fc2ltcGxlX2ttc19oZWxwZXIuaAo+PiBuZXcgZmlsZSBtb2RlIDEw MDY0NAo+PiBpbmRleCAwMDAwMDAwLi4wZjc0NjFiCj4+IC0tLSAvZGV2L251bGwKPj4gKysrIGIv aW5jbHVkZS9kcm0vZHJtX3NpbXBsZV9rbXNfaGVscGVyLmgKPj4gQEAgLTAsMCArMSw0NCBAQAo+ PiArLyoKPj4gKyAqIENvcHlyaWdodCAoQykgMjAxNiBOb3JhbGYgVHLDuG5uZXMKPj4gKyAqCj4+ ICsgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQo+PiArICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKPj4gKyAqIHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCj4+ICsg KiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgo+PiArICovCj4+ICsKPj4gKyNp Zm5kZWYgX19MSU5VWF9EUk1fU0lNUExFX0tNU19IRUxQRVJfSAo+PiArI2RlZmluZSBfX0xJTlVY X0RSTV9TSU1QTEVfS01TX0hFTFBFUl9ICj4+ICsKPj4gK3N0cnVjdCBkcm1fc2ltcGxlX2Rpc3Bs YXlfcGlwZTsKPj4gKwo+PiArc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2Z1bmNzIHsK Pj4gKwl2b2lkICgqZW5hYmxlKShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUs Cj4+ICsJCSAgICAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOwo+PiArCXZv aWQgKCpkaXNhYmxlKShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUpOwo+PiAr CXZvaWQgKCpwbGFuZV91cGRhdGUpKHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlw ZSwKPj4gKwkJCSAgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpOwo+IE9u IDJuZCB0aG91Z2h0IG1heWJlIHdlIHdhbnQgYW4gYXRvbWljX2NoZWNrIGluIGhlcmUgdG9vLCB3 aXRoIHNhbWUKPiBwYXJhbWV0ZXJzICpwaXBlLCAqY3J0Y19zdGF0ZSBhbmQgKnBsYW5lX3N0YXRl IChzbyB0aGF0IGl0J3MgdXNlZnVsIGZvcgo+IGJvdGggcGxhbmUtb25seSB1cGRhdGVzIGFuZCBt b2Rlc2V0IGNoYW5nZXMpLgoKSSBjb3VsZCBkbyB0aGlzIGZvciB0aGUgcGxhbmU6CgpzdHJ1Y3Qg ZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGVfZnVuY3MgewogICAgICB2b2lkICgqcGxhbmVfY2hlY2sp KHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSwKICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSk7Cn0KCnN0YXRpYyB2 b2lkIGRybV9zaW1wbGVfa21zX3BsYW5lX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJt X3BsYW5lX3N0YXRlICpzdGF0ZSkKewogICAgICAgICBzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5 X3BpcGUgKnBpcGU7CgogICAgICAgICBwaXBlID0gY29udGFpbmVyX29mKHBsYW5lLCBzdHJ1Y3Qg ZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUsIHBsYW5lKTsKICAgICAgICAgaWYgKCFwaXBlLT5mdW5j cyB8fCAhcGlwZS0+ZnVuY3MtPnBsYW5lX2NoZWNrKQogICAgICAgICAgICAgICAgIHJldHVybjsK CiAgICAgICAgIHBpcGUtPmZ1bmNzLT5wbGFuZV9jaGVjayhwaXBlLCBzdGF0ZSk7Cn0KCnN0YXRp YyBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2hlbHBlcl9mdW5jcyAKZHJtX3NpbXBsZV9rbXNfcGxh bmVfaGVscGVyX2Z1bmNzID0gewogICAgICAgICAuYXRvbWljX2NoZWNrID0gZHJtX3NpbXBsZV9r bXNfcGxhbmVfYXRvbWljX2NoZWNrLAp9OwoKQnV0IGhvdyBzaG91bGQgSSBkbyBjcnRjX3N0YXRl ID8KCk5vcmFsZi4KCj4+ICt9Owo+PiArCj4+ICtzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3Bp cGUgewo+PiArCXN0cnVjdCBkcm1fY3J0YyBjcnRjOwo+PiArCXN0cnVjdCBkcm1fcGxhbmUgcGxh bmU7Cj4+ICsJc3RydWN0IGRybV9lbmNvZGVyIGVuY29kZXI7Cj4+ICsJc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvcjsKPj4gKwo+PiArCXN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlw ZV9mdW5jcyAqZnVuY3M7Cj4+ICt9Owo+PiArCj4+ICtpbnQgZHJtX3NpbXBsZV9kaXNwbGF5X3Bp cGVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+PiArCQkJCSBzdHJ1Y3QgZHJtX3NpbXBs ZV9kaXNwbGF5X3BpcGUgKnBpcGUsCj4+ICsJCQkJIHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlf cGlwZV9mdW5jcyAqZnVuY3MsCj4+ICsJCQkJIGNvbnN0IHVpbnQzMl90ICpmb3JtYXRzLCB1bnNp Z25lZCBpbnQgZm9ybWF0X2NvdW50LAo+PiArCQkJCSBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bmVjdG9yKTsKPj4gK3N0cnVjdCBkcm1fY29ubmVjdG9yICoKPj4gK2RybV9zaW1wbGVfa21zX3Bh bmVsX2Nvbm5lY3Rvcl9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4gKwkJCQkgICAg ICBzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKPj4gKwkJCQkgICAgICBpbnQgY29ubmVjdG9yX3R5 cGUpOwo+PiArCj4+ICsKPj4gKwo+PiArI2VuZGlmIC8qIF9fTElOVVhfRFJNX1NJTVBMRV9LTVNf SEVMUEVSX0ggKi8KPj4gLS0gCj4+IDIuMi4yCj4+Cj4+IF9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCj4+IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPj4gZHJp LWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vZHJpLWRldmVsCg==