From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Hellstrom Subject: Re: [PATCH v3 01/18] drm: Add a new plane property to send damage during plane update Date: Mon, 15 Oct 2018 15:15:28 +0200 Message-ID: <0e1f10db-c9f3-5e6d-09cb-1d60f02fdd52@vmware.com> References: <20181011001657.1715-1-drawat@vmware.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from pio-pvt-msa1.bahnhof.se (pio-pvt-msa1.bahnhof.se [79.136.2.40]) by gabe.freedesktop.org (Postfix) with ESMTPS id C8C0489CB3 for ; Mon, 15 Oct 2018 13:15:39 +0000 (UTC) In-Reply-To: <20181011001657.1715-1-drawat@vmware.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Deepak Rawat , dri-devel@lists.freedesktop.org, linux-graphics-maintainer@vmware.com, syeh@vmware.com Cc: Daniel Vetter , Lukasz Spintzyk List-Id: dri-devel@lists.freedesktop.org V2l0aCBzb21lIG5pdHBpY2tzIHNlbnQgb3V0IHByZXZpb3VzbHkKClJldmlld2VkLWJ5OiBUaG9t YXMgSGVsbHN0cm9tIDx0aGVsbHN0cm9tQHZtd2FyZS5jb20+CgoKT24gMTAvMTEvMjAxOCAwMjox NiBBTSwgRGVlcGFrIFJhd2F0IHdyb3RlOgo+IEZyb206IEx1a2FzeiBTcGludHp5ayA8bHVrYXN6 LnNwaW50enlrQGRpc3BsYXlsaW5rLmNvbT4KPgo+IEZCX0RBTUFHRV9DTElQUyBpcyBhbiBvcHRp b25hbCBwbGFuZSBwcm9wZXJ0eSB0byBtYXJrIGRhbWFnZWQgcmVnaW9ucwo+IG9uIHRoZSBwbGFu ZSBpbiBmcmFtZWJ1ZmZlciBjb29yZGluYXRlcyBvZiB0aGUgZnJhbWVidWZmZXIgYXR0YWNoZWQg dG8KPiB0aGUgcGxhbmUuCj4KPiBUaGUgbGF5b3V0IG9mIGJsb2IgZGF0YSBpcyBzaW1wbHkgYW4g YXJyYXkgb2YgInN0cnVjdCBkcm1fbW9kZV9yZWN0Ii4KPiBVbmxpa2UgcGxhbmUgc3JjIGNvb3Jk aW5hdGVzLCBkYW1hZ2UgY2xpcHMgYXJlIG5vdCBpbiAxNi4xNiBmaXhlZCBwb2ludC4KPiBBcyBw bGFuZSBzcmMgaW4gZnJhbWVidWZmZXIgY2Fubm90IGJlIG5lZ2F0aXZlIHNvIGFyZSBkYW1hZ2Ug Y2xpcHMuIEluCj4gZGFtYWdlIGNsaXAsIHgxL3kxIGFyZSBpbmNsdXNpdmUgYW5kIHgyL3kyIGFy ZSBleGNsdXNpdmUuCj4KPiBUaGlzIHBhdGNoIGFsc28gZXhwb3J0cyB0aGUga2VybmVsIGludGVy bmFsIGRybV9yZWN0IHRvIHVzZXJzcGFjZSBhcwo+IGRybV9tb2RlX3JlY3QuIFRoaXMgaXMgYmVj YXVzZSAic3RydWN0IGRybV9jbGlwX3JlY3QiIGlzIG5vdCBzdWZmaWNpZW50Cj4gdG8gcmVwcmVz ZW50IGRhbWFnZSBmb3IgY3VycmVudCBwbGFuZSBzaXplLgo+Cj4gRHJpdmVyIHdoaWNoIGFyZSBp bnRlcmVzdGVkIGluIGVuYWJsaW5nIEZCX0RBTUFHRV9DTElQUyBwcm9wZXJ0eSBmb3IgYQo+IHBs YW5lIHNob3VsZCBlbmFibGUgdGhpcyBwcm9wZXJ0eSB1c2luZyBkcm1fcGxhbmVfZW5hYmxlX2Rh bWFnZV9jbGlwcy4KPgo+IHYyOgo+IC0gSW5wdXQgdmFsaWRhdGlvbiBvbiBkYW1hZ2UgY2xpcHMg YWdhaW5zdCBmcmFtZWJ1ZmZlciBzaXplLgo+IC0gRG9jIHVwZGF0ZSwgb3RoZXIgbWlub3IgY2hh bmdlcy4KPgo+IENjOiB2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbQo+IENjOiBEYW5pZWwg VmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgo+IENjOiBQZWtrYSBQYWFsYW5lbiA8cHBh YWxhbmVuQGdtYWlsLmNvbT4KPiBDYzogRGFuaWVsIFN0b25lIDxkYW5pZWxAZm9vaXNoYmFyLm9y Zz4KPiBTaWduZWQtb2ZmLWJ5OiBMdWthc3ogU3BpbnR6eWsgPGx1a2Fzei5zcGludHp5a0BkaXNw bGF5bGluay5jb20+Cj4gU2lnbmVkLW9mZi1ieTogRGVlcGFrIFJhd2F0IDxkcmF3YXRAdm13YXJl LmNvbT4KPiAtLS0KPiAgIERvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMucnN0ICAgICAgIHwgMTIg KysrKysKPiAgIGRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZSAgICAgICAgICAgIHwgIDMgKy0KPiAg IGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgICAgICAgIHwgMjIgKysrKysrKysKPiAgIGRy aXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIHwgIDMgKysKPiAgIGRyaXZlcnMvZ3B1 L2RybS9kcm1fYXRvbWljX3VhcGkuYyAgIHwgMTMgKysrKysKPiAgIGRyaXZlcnMvZ3B1L2RybS9k cm1fZGFtYWdlX2hlbHBlci5jIHwgODMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAg IGRyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZV9jb25maWcuYyAgIHwgIDYgKysrCj4gICBpbmNsdWRl L2RybS9kcm1fZGFtYWdlX2hlbHBlci5oICAgICB8IDM5ICsrKysrKysrKysrKysrCj4gICBpbmNs dWRlL2RybS9kcm1fbW9kZV9jb25maWcuaCAgICAgICB8ICA5ICsrKysKPiAgIGluY2x1ZGUvZHJt L2RybV9wbGFuZS5oICAgICAgICAgICAgIHwgNDAgKysrKysrKysrKysrKysKPiAgIGluY2x1ZGUv dWFwaS9kcm0vZHJtX21vZGUuaCAgICAgICAgIHwgMTkgKysrKysrKwo+ICAgMTEgZmlsZXMgY2hh bmdlZCwgMjQ4IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPiAgIGNyZWF0ZSBtb2RlIDEw MDY0NCBkcml2ZXJzL2dwdS9kcm0vZHJtX2RhbWFnZV9oZWxwZXIuYwo+ICAgY3JlYXRlIG1vZGUg MTAwNjQ0IGluY2x1ZGUvZHJtL2RybV9kYW1hZ2VfaGVscGVyLmgKPgo+IGRpZmYgLS1naXQgYS9E b2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLnJzdCBiL0RvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMu cnN0Cj4gaW5kZXggNGIxNTAxYjQ4MzViLi42YzNlODllMzI0ZjggMTAwNjQ0Cj4gLS0tIGEvRG9j dW1lbnRhdGlvbi9ncHUvZHJtLWttcy5yc3QKPiArKysgYi9Eb2N1bWVudGF0aW9uL2dwdS9kcm0t a21zLnJzdAo+IEBAIC01NTQsNiArNTU0LDE4IEBAIFBsYW5lIENvbXBvc2l0aW9uIFByb3BlcnRp ZXMKPiAgIC4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL2dwdS9kcm0vZHJtX2JsZW5kLmMKPiAgICAg IDpleHBvcnQ6Cj4gICAKPiArRkJfREFNQUdFX0NMSVBTCj4gK35+fn5+fn5+fn5+fn5+fgo+ICsK PiArLi4ga2VybmVsLWRvYzo6IGRyaXZlcnMvZ3B1L2RybS9kcm1fZGFtYWdlX2hlbHBlci5jCj4g KyAgIDpkb2M6IG92ZXJ2aWV3Cj4gKwo+ICsuLiBrZXJuZWwtZG9jOjogZHJpdmVycy9ncHUvZHJt L2RybV9kYW1hZ2VfaGVscGVyLmMKPiArICAgOmV4cG9ydDoKPiArCj4gKy4uIGtlcm5lbC1kb2M6 OiBpbmNsdWRlL2RybS9kcm1fZGFtYWdlX2hlbHBlci5oCj4gKyAgIDppbnRlcm5hbDoKPiArCj4g ICBDb2xvciBNYW5hZ2VtZW50IFByb3BlcnRpZXMKPiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQo+ICAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZSBiL2RyaXZl cnMvZ3B1L2RybS9NYWtlZmlsZQo+IGluZGV4IGJjNmExNmEzYzM2ZS4uMmVkNGM2NmNhODQ5IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9NYWtlZmlsZQo+IEBAIC0zNiw3ICszNiw4IEBAIGRybV9rbXNfaGVscGVyLXkgOj0gZHJt X2NydGNfaGVscGVyLm8gZHJtX2RwX2hlbHBlci5vIGRybV9wcm9iZV9oZWxwZXIubyBcCj4gICAJ CWRybV9wbGFuZV9oZWxwZXIubyBkcm1fZHBfbXN0X3RvcG9sb2d5Lm8gZHJtX2F0b21pY19oZWxw ZXIubyBcCj4gICAJCWRybV9rbXNfaGVscGVyX2NvbW1vbi5vIGRybV9kcF9kdWFsX21vZGVfaGVs cGVyLm8gXAo+ICAgCQlkcm1fc2ltcGxlX2ttc19oZWxwZXIubyBkcm1fbW9kZXNldF9oZWxwZXIu byBcCj4gLQkJZHJtX3NjZGNfaGVscGVyLm8gZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIubwo+ ICsJCWRybV9zY2RjX2hlbHBlci5vIGRybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLm8gXAo+ICsJ CWRybV9kYW1hZ2VfaGVscGVyLm8KPiAgIAo+ICAgZHJtX2ttc19oZWxwZXItJChDT05GSUdfRFJN X1BBTkVMX0JSSURHRSkgKz0gYnJpZGdlL3BhbmVsLm8KPiAgIGRybV9rbXNfaGVscGVyLSQoQ09O RklHX0RSTV9GQkRFVl9FTVVMQVRJT04pICs9IGRybV9mYl9oZWxwZXIubwo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9t aWMuYwo+IGluZGV4IDI4NzBhZTIwNTIzNy4uZmY0ODhiNDdiNWJiIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0 b21pYy5jCj4gQEAgLTUxNiw2ICs1MTYsOCBAQCBzdGF0aWMgaW50IGRybV9hdG9taWNfcGxhbmVf Y2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gICAJCXN0cnVjdCBkcm1fcGxhbmVfc3Rh dGUgKnN0YXRlKQo+ICAgewo+ICAgCXVuc2lnbmVkIGludCBmYl93aWR0aCwgZmJfaGVpZ2h0Owo+ ICsJc3RydWN0IGRybV9tb2RlX3JlY3QgKmNsaXBzOwo+ICsJdWludDMyX3QgbnVtX2NsaXBzOwo+ ICAgCWludCByZXQ7Cj4gICAKPiAgIAkvKiBlaXRoZXIgKmJvdGgqIENSVEMgYW5kIEZCIG11c3Qg YmUgc2V0LCBvciBuZWl0aGVyICovCj4gQEAgLTU4NSw2ICs1ODcsMjYgQEAgc3RhdGljIGludCBk cm1fYXRvbWljX3BsYW5lX2NoZWNrKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAgCQlyZXR1 cm4gLUVOT1NQQzsKPiAgIAl9Cj4gICAKPiArCWNsaXBzID0gZHJtX3BsYW5lX2dldF9kYW1hZ2Vf Y2xpcHMoc3RhdGUpOwo+ICsJbnVtX2NsaXBzID0gZHJtX3BsYW5lX2dldF9kYW1hZ2VfY2xpcHNf Y291bnQoc3RhdGUpOwo+ICsKPiArCS8qIE1ha2Ugc3VyZSBkYW1hZ2UgY2xpcHMgYXJlIHZhbGlk IGFuZCBpbnNpZGUgdGhlIGZiLiAqLwo+ICsJd2hpbGUgKG51bV9jbGlwcyA+IDApIHsKPiArCQlp ZiAoY2xpcHMtPngxID49IGNsaXBzLT54MiB8fAo+ICsJCSAgICBjbGlwcy0+eTEgPj0gY2xpcHMt PnkyIHx8Cj4gKwkJICAgIGNsaXBzLT54MSA8IDAgfHwKPiArCQkgICAgY2xpcHMtPnkxIDwgMCB8 fAo+ICsJCSAgICBjbGlwcy0+eDIgPiBmYl93aWR0aCB8fAo+ICsJCSAgICBjbGlwcy0+eTIgPiBm Yl9oZWlnaHQpIHsKPiArCQkJRFJNX0RFQlVHX0FUT01JQygiW1BMQU5FOiVkOiVzXSBpbnZhbGlk IGRhbWFnZSBjbGlwICVkICVkICVkICVkXG4iLAo+ICsJCQkJCSBwbGFuZS0+YmFzZS5pZCwgcGxh bmUtPm5hbWUsIGNsaXBzLT54MSwKPiArCQkJCQkgY2xpcHMtPnkxLCBjbGlwcy0+eDIsIGNsaXBz LT55Mik7Cj4gKwkJCXJldHVybiAtRUlOVkFMOwo+ICsJCX0KPiArCQljbGlwcysrOwo+ICsJCW51 bV9jbGlwcy0tOwo+ICsJfQo+ICsKPiAgIAlpZiAocGxhbmVfc3dpdGNoaW5nX2NydGMoc3RhdGUt PnN0YXRlLCBwbGFuZSwgc3RhdGUpKSB7Cj4gICAJCURSTV9ERUJVR19BVE9NSUMoIltQTEFORTol ZDolc10gc3dpdGNoaW5nIENSVEMgZGlyZWN0bHlcbiIsCj4gICAJCQkJIHBsYW5lLT5iYXNlLmlk LCBwbGFuZS0+bmFtZSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWlj X2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPiBpbmRleCBl NDliMjIzODEwNDguLjM1Mzk1NTc3Y2E4NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX2F0b21pY19oZWxwZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hl bHBlci5jCj4gQEAgLTM2MTMsNiArMzYxMyw3IEBAIHZvaWQgX19kcm1fYXRvbWljX2hlbHBlcl9w bGFuZV9kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gICAKPiAgIAlz dGF0ZS0+ZmVuY2UgPSBOVUxMOwo+ICAgCXN0YXRlLT5jb21taXQgPSBOVUxMOwo+ICsJc3RhdGUt PmZiX2RhbWFnZV9jbGlwcyA9IE5VTEw7Cj4gICB9Cj4gICBFWFBPUlRfU1lNQk9MKF9fZHJtX2F0 b21pY19oZWxwZXJfcGxhbmVfZHVwbGljYXRlX3N0YXRlKTsKPiAgIAo+IEBAIC0zNjU3LDYgKzM2 NTgsOCBAQCB2b2lkIF9fZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfZGVzdHJveV9zdGF0ZShzdHJ1 Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSkKPiAgIAo+ICAgCWlmIChzdGF0ZS0+Y29tbWl0KQo+ ICAgCQlkcm1fY3J0Y19jb21taXRfcHV0KHN0YXRlLT5jb21taXQpOwo+ICsKPiArCWRybV9wcm9w ZXJ0eV9ibG9iX3B1dChzdGF0ZS0+ZmJfZGFtYWdlX2NsaXBzKTsKPiAgIH0KPiAgIEVYUE9SVF9T WU1CT0woX19kcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kZXN0cm95X3N0YXRlKTsKPiAgIAo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmMgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX2F0b21pY191YXBpLmMKPiBpbmRleCBkNWI3ZjMxNTA5OGMuLmI4M2I5NmZlODg3 ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmMKPiBAQCAtNTEzLDYgKzUxMyw4IEBA IHN0YXRpYyBpbnQgZHJtX2F0b21pY19wbGFuZV9zZXRfcHJvcGVydHkoc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUsCj4gICB7Cj4gICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHBsYW5lLT5kZXY7 Cj4gICAJc3RydWN0IGRybV9tb2RlX2NvbmZpZyAqY29uZmlnID0gJmRldi0+bW9kZV9jb25maWc7 Cj4gKwlib29sIHJlcGxhY2VkID0gZmFsc2U7Cj4gKwlpbnQgcmV0Owo+ICAgCj4gICAJaWYgKHBy b3BlcnR5ID09IGNvbmZpZy0+cHJvcF9mYl9pZCkgewo+ICAgCQlzdHJ1Y3QgZHJtX2ZyYW1lYnVm ZmVyICpmYiA9IGRybV9mcmFtZWJ1ZmZlcl9sb29rdXAoZGV2LCBOVUxMLCB2YWwpOwo+IEBAIC01 NjYsNiArNTY4LDE0IEBAIHN0YXRpYyBpbnQgZHJtX2F0b21pY19wbGFuZV9zZXRfcHJvcGVydHko c3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gICAJCXN0YXRlLT5jb2xvcl9lbmNvZGluZyA9IHZh bDsKPiAgIAl9IGVsc2UgaWYgKHByb3BlcnR5ID09IHBsYW5lLT5jb2xvcl9yYW5nZV9wcm9wZXJ0 eSkgewo+ICAgCQlzdGF0ZS0+Y29sb3JfcmFuZ2UgPSB2YWw7Cj4gKwl9IGVsc2UgaWYgKHByb3Bl cnR5ID09IGNvbmZpZy0+cHJvcF9mYl9kYW1hZ2VfY2xpcHMpIHsKPiArCQlyZXQgPSBkcm1fYXRv bWljX3JlcGxhY2VfcHJvcGVydHlfYmxvYl9mcm9tX2lkKGRldiwKPiArCQkJCQkmc3RhdGUtPmZi X2RhbWFnZV9jbGlwcywKPiArCQkJCQl2YWwsCj4gKwkJCQkJLTEsCj4gKwkJCQkJc2l6ZW9mKHN0 cnVjdCBkcm1fcmVjdCksCj4gKwkJCQkJJnJlcGxhY2VkKTsKPiArCQlyZXR1cm4gcmV0Owo+ICAg CX0gZWxzZSBpZiAocGxhbmUtPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5KSB7Cj4gICAJCXJl dHVybiBwbGFuZS0+ZnVuY3MtPmF0b21pY19zZXRfcHJvcGVydHkocGxhbmUsIHN0YXRlLAo+ICAg CQkJCXByb3BlcnR5LCB2YWwpOwo+IEBAIC02MjEsNiArNjMxLDkgQEAgZHJtX2F0b21pY19wbGFu ZV9nZXRfcHJvcGVydHkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gICAJCSp2YWwgPSBzdGF0 ZS0+Y29sb3JfZW5jb2Rpbmc7Cj4gICAJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBwbGFuZS0+Y29s b3JfcmFuZ2VfcHJvcGVydHkpIHsKPiAgIAkJKnZhbCA9IHN0YXRlLT5jb2xvcl9yYW5nZTsKPiAr CX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT5wcm9wX2ZiX2RhbWFnZV9jbGlwcykgewo+ ICsJCSp2YWwgPSAoc3RhdGUtPmZiX2RhbWFnZV9jbGlwcykgPwo+ICsJCQlzdGF0ZS0+ZmJfZGFt YWdlX2NsaXBzLT5iYXNlLmlkIDogMDsKPiAgIAl9IGVsc2UgaWYgKHBsYW5lLT5mdW5jcy0+YXRv bWljX2dldF9wcm9wZXJ0eSkgewo+ICAgCQlyZXR1cm4gcGxhbmUtPmZ1bmNzLT5hdG9taWNfZ2V0 X3Byb3BlcnR5KHBsYW5lLCBzdGF0ZSwgcHJvcGVydHksIHZhbCk7Cj4gICAJfSBlbHNlIHsKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9kYW1hZ2VfaGVscGVyLmMgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2RhbWFnZV9oZWxwZXIuYwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5k ZXggMDAwMDAwMDAwMDAwLi44ZGM5MDZhNDg5YTkKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2RybV9kYW1hZ2VfaGVscGVyLmMKPiBAQCAtMCwwICsxLDgzIEBACj4gKy8v IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIE1JVAo+ICsvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKPiArICoKPiArICogQ29weXJpZ2h0IChjKSAyMDE4IFZNd2FyZSwgSW5jLiwgUGFsbyBB bHRvLCBDQS4sIFVTQQo+ICsgKiBBbGwgUmlnaHRzIFJlc2VydmVkLgo+ICsgKgo+ICsgKiBQZXJt aXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBv YnRhaW5pbmcgYQo+ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9j dW1lbnRhdGlvbiBmaWxlcyAodGhlCj4gKyAqICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBT b2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKPiArICogd2l0aG91dCBsaW1p dGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAo+ ICsgKiBkaXN0cmlidXRlLCBzdWIgbGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBT b2Z0d2FyZSwgYW5kIHRvCj4gKyAqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJl IGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwo+ICsgKiB0aGUgZm9sbG93aW5nIGNv bmRpdGlvbnM6Cj4gKyAqCj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlz IHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlCj4gKyAqIG5leHQgcGFyYWdyYXBoKSBz aGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zCj4g KyAqIG9mIHRoZSBTb2Z0d2FyZS4KPiArICoKPiArICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVE ICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKPiArICog SU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBN RVJDSEFOVEFCSUxJVFksCj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFO RCBOT04tSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTAo+ICsgKiBUSEUgQ09QWVJJR0hU IEhPTERFUlMsIEFVVEhPUlMgQU5EL09SIElUUyBTVVBQTElFUlMgQkUgTElBQkxFIEZPUiBBTlkg Q0xBSU0sCj4gKyAqIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFD VElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUgo+ICsgKiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwg T1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFCj4gKyAqIFVT RSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4gKyAqCj4gKyAqIEF1dGhvcnM6 Cj4gKyAqIERlZXBhayBSYXdhdCA8ZHJhd2F0QHZtd2FyZS5jb20+Cj4gKyAqCj4gKyAqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKi8KPiArCj4gKyNpbmNsdWRlIDxkcm0vZHJtX2RhbWFnZV9oZWxwZXIuaD4KPiAr Cj4gKy8qKgo+ICsgKiBET0M6IG92ZXJ2aWV3Cj4gKyAqCj4gKyAqIEZCX0RBTUFHRV9DTElQUyBp cyBhbiBvcHRpb25hbCBwbGFuZSBwcm9wZXJ0eSB3aGljaCBwcm92aWRlcyBhIG1lYW5zIHRvCj4g KyAqIHNwZWNpZnkgYSBsaXN0IG9mIGRhbWFnZSByZWN0YW5nbGVzIG9uIGEgcGxhbmUgaW4gZnJh bWVidWZmZXIgY29vcmRpbmF0ZXMgb2YKPiArICogdGhlIGZyYW1lYnVmZmVyIGF0dGFjaGVkIHRv IHRoZSBwbGFuZS4gSW4gY3VycmVudCBjb250ZXh0IGRhbWFnZSBpcyB0aGUgYXJlYQo+ICsgKiBv ZiBwbGFuZSBmcmFtZWJ1ZmZlciB0aGF0IGhhcyBjaGFuZ2VkIHNpbmNlIGxhc3QgcGxhbmUgdXBk YXRlIChhbHNvIGNhbGxlZAo+ICsgKiBwYWdlLWZsaXApLCBpcnJlc3BlY3RpdmUgb2Ygd2hldGhl ciBjdXJyZW50bHkgYXR0YWNoZWQgZnJhbWVidWZmZXIgaXMgc2FtZSBhcwo+ICsgKiBmcmFtZWJ1 ZmZlciBhdHRhY2hlZCBkdXJpbmcgbGFzdCBwbGFuZSB1cGRhdGUgb3Igbm90Lgo+ICsgKgo+ICsg KiBGQl9EQU1BR0VfQ0xJUFMgaXMgYSBoaW50IHRvIGtlcm5lbCB3aGljaCBjb3VsZCBiZSBoZWxw ZnVsIGZvciBzb21lIGRyaXZlcnMKPiArICogdG8gb3B0aW1pemUgaW50ZXJuYWxseSBlc3BlY2lh bGx5IGZvciB2aXJ0dWFsIGRldmljZXMgd2hlcmUgZWFjaCBmcmFtZWJ1ZmZlcgo+ICsgKiBjaGFu Z2UgbmVlZHMgdG8gYmUgdHJhbnNtaXR0ZWQgb3ZlciBuZXR3b3JrLCB1c2IsIGV0Yy4KPiArICoK PiArICogU2luY2UgRkJfREFNQUdFX0NMSVBTIGlzIGEgaGludCBzbyBpdCBpcyBhbiBvcHRpb25h bCBwcm9wZXJ0eS4gVXNlci1zcGFjZSBjYW4KPiArICogaWdub3JlIGRhbWFnZSBjbGlwcyBwcm9w ZXJ0eSBhbmQgaW4gdGhhdCBjYXNlIGRyaXZlciB3aWxsIGRvIGEgZnVsbCBwbGFuZQo+ICsgKiB1 cGRhdGUuIEluIGNhc2UgZGFtYWdlIGNsaXBzIGFyZSBwcm92aWRlZCB0aGVuIGl0IGlzIGd1YXJh bnRlZWQgdGhhdCB0aGUgYXJlYQo+ICsgKiBpbnNpZGUgZGFtYWdlIGNsaXBzIHdpbGwgYmUgdXBk YXRlZCB0byBwbGFuZS4gRm9yIGVmZmljaWVuY3kgZHJpdmVyIGNhbiBkbwo+ICsgKiBmdWxsIHVw ZGF0ZSBvciBjYW4gdXBkYXRlIG1vcmUgdGhhbiBzcGVjaWZpZWQgaW4gZGFtYWdlIGNsaXBzLiBT aW5jZSBkcml2ZXIKPiArICogaXMgZnJlZSB0byByZWFkIG1vcmUsIHVzZXItc3BhY2UgbXVzdCBh bHdheXMgcmVuZGVyIHRoZSBlbnRpcmUgdmlzaWJsZQo+ICsgKiBmcmFtZWJ1ZmZlci4gT3RoZXJ3 aXNlIHRoZXJlIGNhbiBiZSBjb3JydXB0aW9ucy4gQWxzbywgaWYgYSB1c2VyLXNwYWNlCj4gKyAq IHByb3ZpZGVzIGRhbWFnZSBjbGlwcyB3aGljaCBkb2Vzbid0IGVuY29tcGFzcyB0aGUgYWN0dWFs IGRhbWFnZSB0bwo+ICsgKiBmcmFtZWJ1ZmZlciAoc2luY2UgbGFzdCBwbGFuZSB1cGRhdGUpIGNh biByZXN1bHQgaW4gaW5jb3JyZWN0IHJlbmRlcmluZy4KPiArICoKPiArICogRkJfREFNQUdFX0NM SVBTIGlzIGEgYmxvYiBwcm9wZXJ0eSB3aXRoIHRoZSBsYXlvdXQgb2YgYmxvYiBkYXRhIGlzIHNp bXBseSBhbgo+ICsgKiBhcnJheSBvZiAmZHJtX21vZGVfcmVjdC4gVW5saWtlIHBsYW5lICZkcm1f cGxhbmVfc3RhdGUuc3JjIGNvb3JkaW5hdGVzLAo+ICsgKiBkYW1hZ2UgY2xpcHMgYXJlIG5vdCBp biAxNi4xNiBmaXhlZCBwb2ludC4gU2ltaWxhciB0byBwbGFuZSBzcmMgaW4KPiArICogZnJhbWVi dWZmZXIsIGRhbWFnZSBjbGlwcyBjYW5ub3QgYmUgbmVnYXRpdmUuIEluIGRhbWFnZSBjbGlwLCB4 MS95MSBhcmUKPiArICogaW5jbHVzaXZlIGFuZCB4Mi95MiBhcmUgZXhjbHVzaXZlLiBXaGlsZSBr ZXJuZWwgZG9lcyBub3QgZXJyb3IgZm9yIG92ZXJsYXBwZWQKPiArICogZGFtYWdlIGNsaXBzLCBp dCBpcyBzdHJvbmdseSBkaXNjb3VyYWdlZC4KPiArICoKPiArICogRHJpdmVycyB0aGF0IGFyZSBp bnRlcmVzdGVkIGluIGRhbWFnZSBpbnRlcmZhY2UgZm9yIHBsYW5lIHNob3VsZCBlbmFibGUKPiAr ICogRkJfREFNQUdFX0NMSVBTIHByb3BlcnR5IGJ5IGNhbGxpbmcgZHJtX3BsYW5lX2VuYWJsZV9m Yl9kYW1hZ2VfY2xpcHMoKS4KPiArICovCj4gKwo+ICsvKioKPiArICogZHJtX3BsYW5lX2VuYWJs ZV9mYl9kYW1hZ2VfY2xpcHMgLSBFbmFibGVzIHBsYW5lIGZiIGRhbWFnZSBjbGlwcyBwcm9wZXJ0 eS4KPiArICogQHBsYW5lOiBQbGFuZSBvbiB3aGljaCB0byBlbmFibGUgZGFtYWdlIGNsaXBzIHBy b3BlcnR5Lgo+ICsgKgo+ICsgKiBUaGlzIGZ1bmN0aW9uIGxldHMgZHJpdmVyIHRvIGVuYWJsZSB0 aGUgZGFtYWdlIGNsaXBzIHByb3BlcnR5IG9uIGEgcGxhbmUuCj4gKyAqLwo+ICt2b2lkIGRybV9w bGFuZV9lbmFibGVfZmJfZGFtYWdlX2NsaXBzKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQo+ICt7 Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGxhbmUtPmRldjsKPiArCXN0cnVjdCBkcm1f bW9kZV9jb25maWcgKmNvbmZpZyA9ICZkZXYtPm1vZGVfY29uZmlnOwo+ICsKPiArCWRybV9vYmpl Y3RfYXR0YWNoX3Byb3BlcnR5KCZwbGFuZS0+YmFzZSwgY29uZmlnLT5wcm9wX2ZiX2RhbWFnZV9j bGlwcywKPiArCQkJCSAgIDApOwo+ICt9Cj4gK0VYUE9SVF9TWU1CT0woZHJtX3BsYW5lX2VuYWJs ZV9mYl9kYW1hZ2VfY2xpcHMpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX21v ZGVfY29uZmlnLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVfY29uZmlnLmMKPiBpbmRleCBl ZTgwNzg4ZjJjNDAuLjA1Y2Q1ZTk4NTdlNCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX21vZGVfY29uZmlnLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVfY29uZmln LmMKPiBAQCAtMjk3LDYgKzI5NywxMiBAQCBzdGF0aWMgaW50IGRybV9tb2RlX2NyZWF0ZV9zdGFu ZGFyZF9wcm9wZXJ0aWVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gICAJCXJldHVybiAtRU5P TUVNOwo+ICAgCWRldi0+bW9kZV9jb25maWcucHJvcF9jcnRjX2lkID0gcHJvcDsKPiAgIAo+ICsJ cHJvcCA9IGRybV9wcm9wZXJ0eV9jcmVhdGUoZGV2LCBEUk1fTU9ERV9QUk9QX0JMT0IsICJGQl9E QU1BR0VfQ0xJUFMiLAo+ICsJCQkJICAgMCk7Cj4gKwlpZiAoIXByb3ApCj4gKwkJcmV0dXJuIC1F Tk9NRU07Cj4gKwlkZXYtPm1vZGVfY29uZmlnLnByb3BfZmJfZGFtYWdlX2NsaXBzID0gcHJvcDsK PiArCj4gICAJcHJvcCA9IGRybV9wcm9wZXJ0eV9jcmVhdGVfYm9vbChkZXYsIERSTV9NT0RFX1BS T1BfQVRPTUlDLAo+ICAgCQkJIkFDVElWRSIpOwo+ICAgCWlmICghcHJvcCkKPiBkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9kcm0vZHJtX2RhbWFnZV9oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9kYW1h Z2VfaGVscGVyLmgKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4u NDk0N2M2MTRmZmY5Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9kYW1h Z2VfaGVscGVyLmgKPiBAQCAtMCwwICsxLDM5IEBACj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBHUEwtMi4wIE9SIE1JVCAqLwo+ICsvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPiArICoKPiArICog Q29weXJpZ2h0IChjKSAyMDE4IFZNd2FyZSwgSW5jLiwgUGFsbyBBbHRvLCBDQS4sIFVTQQo+ICsg KiBBbGwgUmlnaHRzIFJlc2VydmVkLgo+ICsgKgo+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBn cmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQo+ICsgKiBj b3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAo dGhlCj4gKyAqICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJl c3RyaWN0aW9uLCBpbmNsdWRpbmcKPiArICogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMg dG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAo+ICsgKiBkaXN0cmlidXRlLCBz dWIgbGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvCj4g KyAqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBk byBzbywgc3ViamVjdCB0bwo+ICsgKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cj4gKyAqCj4g KyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNl IChpbmNsdWRpbmcgdGhlCj4gKyAqIG5leHQgcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBp biBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zCj4gKyAqIG9mIHRoZSBTb2Z0d2Fy ZS4KPiArICoKPiArICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQg V0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKPiArICogSU1QTElFRCwgSU5DTFVESU5H IEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCj4g KyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT04tSU5GUklOR0VNRU5U LiBJTiBOTyBFVkVOVCBTSEFMTAo+ICsgKiBUSEUgQ09QWVJJR0hUIEhPTERFUlMsIEFVVEhPUlMg QU5EL09SIElUUyBTVVBQTElFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sCj4gKyAqIERBTUFH RVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwg VE9SVCBPUgo+ICsgKiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5F Q1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFCj4gKyAqIFVTRSBPUiBPVEhFUiBERUFMSU5H UyBJTiBUSEUgU09GVFdBUkUuCj4gKyAqCj4gKyAqIEF1dGhvcnM6Cj4gKyAqIERlZXBhayBSYXdh dCA8ZHJhd2F0QHZtd2FyZS5jb20+Cj4gKyAqCj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KPiArCj4g KyNpZm5kZWYgRFJNX0RBTUFHRV9IRUxQRVJfSF8KPiArI2RlZmluZSBEUk1fREFNQUdFX0hFTFBF Ul9IXwo+ICsKPiArI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgo+ICsKPiArdm9p ZCBkcm1fcGxhbmVfZW5hYmxlX2ZiX2RhbWFnZV9jbGlwcyhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSk7Cj4gKwo+ICsjZW5kaWYKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX21vZGVfY29u ZmlnLmggYi9pbmNsdWRlL2RybS9kcm1fbW9kZV9jb25maWcuaAo+IGluZGV4IDkyOGU0MTcyYTBi Yi4uMDczNjQ5YmE1MTZmIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZp Zy5oCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX21vZGVfY29uZmlnLmgKPiBAQCAtNjI3LDYgKzYy NywxNSBAQCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnIHsKPiAgIAkgKiAmZHJtX2NydGMuCj4gICAJ ICovCj4gICAJc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcF9jcnRjX2lkOwo+ICsJLyoqCj4gKwkg KiBAcHJvcF9mYl9kYW1hZ2VfY2xpcHM6IE9wdGlvbmFsIHBsYW5lIHByb3BlcnR5IHRvIG1hcmsg ZGFtYWdlZAo+ICsJICogcmVnaW9ucyBvbiB0aGUgcGxhbmUgaW4gZnJhbWVidWZmZXIgY29vcmRp bmF0ZXMgb2YgdGhlIGZyYW1lYnVmZmVyCj4gKwkgKiBhdHRhY2hlZCB0byB0aGUgcGxhbmUuCj4g KwkgKgo+ICsJICogVGhlIGxheW91dCBvZiBibG9iIGRhdGEgaXMgc2ltcGx5IGFuIGFycmF5IG9m ICZkcm1fbW9kZV9yZWN0LiBVbmxpa2UKPiArCSAqIHBsYW5lIHNyYyBjb29yZGluYXRlcywgZGFt YWdlIGNsaXBzIGFyZSBub3QgaW4gMTYuMTYgZml4ZWQgcG9pbnQuCj4gKwkgKi8KPiArCXN0cnVj dCBkcm1fcHJvcGVydHkgKnByb3BfZmJfZGFtYWdlX2NsaXBzOwo+ICAgCS8qKgo+ICAgCSAqIEBw cm9wX2FjdGl2ZTogRGVmYXVsdCBhdG9taWMgQ1JUQyBwcm9wZXJ0eSB0byBjb250cm9sIHRoZSBh Y3RpdmUKPiAgIAkgKiBzdGF0ZSwgd2hpY2ggaXMgdGhlIHNpbXBsaWZpZWQgaW1wbGVtZW50YXRp b24gZm9yIERQTVMgaW4gYXRvbWljCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9wbGFu ZS5oIGIvaW5jbHVkZS9kcm0vZHJtX3BsYW5lLmgKPiBpbmRleCAwYTA4MzRiZWY4YmQuLjY2ZjE4 N2U0ZWNmYyAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fcGxhbmUuaAo+ICsrKyBiL2lu Y2x1ZGUvZHJtL2RybV9wbGFuZS5oCj4gQEAgLTE3Myw2ICsxNzMsMTYgQEAgc3RydWN0IGRybV9w bGFuZV9zdGF0ZSB7Cj4gICAJICovCj4gICAJZW51bSBkcm1fY29sb3JfcmFuZ2UgY29sb3JfcmFu Z2U7Cj4gICAKPiArCS8qKgo+ICsJICogQGZiX2RhbWFnZV9jbGlwczoKPiArCSAqCj4gKwkgKiBC bG9iIHJlcHJlc2VudGluZyBkYW1hZ2UgKGFyZWEgaW4gcGxhbmUgZnJhbWVidWZmZXIgdGhhdCBj aGFuZ2VkCj4gKwkgKiBzaW5jZSBsYXN0IHBsYW5lIHVwZGF0ZSkgYXMgYW4gYXJyYXkgb2YgJmRy bV9tb2RlX3JlY3QgaW4gZnJhbWVidWZmZXIKPiArCSAqIGNvb2RpbmF0ZXMgb2YgdGhlIGF0dGFj aGVkIGZyYW1lYnVmZmVyLiBOb3RlIHRoYXQgdW5saWtlIHBsYW5lIHNyYywKPiArCSAqIGRhbWFn ZSBjbGlwcyBhcmUgbm90IGluIDE2LjE2IGZpeGVkIHBvaW50Lgo+ICsJICovCj4gKwlzdHJ1Y3Qg ZHJtX3Byb3BlcnR5X2Jsb2IgKmZiX2RhbWFnZV9jbGlwczsKPiArCj4gICAJLyoqIEBzcmM6IGNs aXBwZWQgc291cmNlIGNvb3JkaW5hdGVzIG9mIHRoZSBwbGFuZSAoaW4gMTYuMTYpICovCj4gICAJ LyoqIEBkc3Q6IGNsaXBwZWQgZGVzdGluYXRpb24gY29vcmRpbmF0ZXMgb2YgdGhlIHBsYW5lICov Cj4gICAJc3RydWN0IGRybV9yZWN0IHNyYywgZHN0Owo+IEBAIC03OTgsNSArODA4LDM1IEBAIHN0 YXRpYyBpbmxpbmUgc3RydWN0IGRybV9wbGFuZSAqZHJtX3BsYW5lX2ZpbmQoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKPiAgICNkZWZpbmUgZHJtX2Zvcl9lYWNoX3BsYW5lKHBsYW5lLCBkZXYpIFwK PiAgIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHBsYW5lLCAmKGRldiktPm1vZGVfY29uZmlnLnBsYW5l X2xpc3QsIGhlYWQpCj4gICAKPiArLyoqCj4gKyAqIGRybV9wbGFuZV9nZXRfZGFtYWdlX2NsaXBz X2NvdW50IC0gUmV0dXJucyBkYW1hZ2UgY2xpcHMgY291bnQuCj4gKyAqIEBzdGF0ZTogUGxhbmUg c3RhdGUuCj4gKyAqCj4gKyAqIFNpbXBsZSBoZWxwZXIgdG8gZ2V0IHRoZSBudW1iZXIgb2YgJmRy bV9tb2RlX3JlY3QgY2xpcHMgc2V0IGJ5IHVzZXItc3BhY2UKPiArICogZHVyaW5nIHBsYW5lIHVw ZGF0ZS4KPiArICoKPiArICogUmV0dXJuOiBOdW1iZXIgb2YgY2xpcHMgaW4gcGxhbmUgZmJfZGFt YWdlX2NsaXBzIGJsb2IgcHJvcGVydHkuCj4gKyAqLwo+ICtzdGF0aWMgaW5saW5lIHVuc2lnbmVk IGludAo+ICtkcm1fcGxhbmVfZ2V0X2RhbWFnZV9jbGlwc19jb3VudChjb25zdCBzdHJ1Y3QgZHJt X3BsYW5lX3N0YXRlICpzdGF0ZSkKPiArewo+ICsJcmV0dXJuIChzdGF0ZSAmJiBzdGF0ZS0+ZmJf ZGFtYWdlX2NsaXBzKSA/Cj4gKwkJc3RhdGUtPmZiX2RhbWFnZV9jbGlwcy0+bGVuZ3RoL3NpemVv ZihzdHJ1Y3QgZHJtX21vZGVfcmVjdCkgOiAwOwo+ICt9Cj4gKwo+ICsvKioKPiArICogZHJtX3Bs YW5lX2dldF9kYW1hZ2VfY2xpcHMgLSBSZXR1cm5zIGRhbWFnZSBjbGlwcy4KPiArICogQHN0YXRl OiBQbGFuZSBzdGF0ZS4KPiArICoKPiArICogTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gcmV0dXJu cyB1YXBpIHR5cGUgJmRybV9tb2RlX3JlY3QuCj4gKyAqCj4gKyAqIFJldHVybjogRGFtYWdlIGNs aXBzIGluIHBsYW5lIGZiX2RhbWFnZV9jbGlwcyBibG9iIHByb3BlcnR5Lgo+ICsgKi8KPiArc3Rh dGljIGlubGluZSBzdHJ1Y3QgZHJtX21vZGVfcmVjdCAqCj4gK2RybV9wbGFuZV9nZXRfZGFtYWdl X2NsaXBzKGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlKQo+ICt7Cj4gKwlyZXR1 cm4gKHN0cnVjdCBkcm1fbW9kZV9yZWN0ICopKChzdGF0ZSAmJiBzdGF0ZS0+ZmJfZGFtYWdlX2Ns aXBzKSA/Cj4gKwkJCQkJc3RhdGUtPmZiX2RhbWFnZV9jbGlwcy0+ZGF0YSA6IE5VTEwpOwo+ICt9 Cj4gICAKPiAgICNlbmRpZgo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2Rl LmggYi9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgKPiBpbmRleCBkM2UwZmUzMWVmYzUuLmE0 MzljMmU2Nzg5NiAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgKPiAr KysgYi9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgKPiBAQCAtODg4LDYgKzg4OCwyNSBAQCBz dHJ1Y3QgZHJtX21vZGVfcmV2b2tlX2xlYXNlIHsKPiAgIAlfX3UzMiBsZXNzZWVfaWQ7Cj4gICB9 Owo+ICAgCj4gKy8qKgo+ICsgKiBzdHJ1Y3QgZHJtX21vZGVfcmVjdCAtIFR3byBkaW1lbnNpb25h bCByZWN0YW5nbGUuCj4gKyAqIEB4MTogSG9yaXpvbnRhbCBzdGFydGluZyBjb29yZGluYXRlIChp bmNsdXNpdmUpLgo+ICsgKiBAeTE6IFZlcnRpY2FsIHN0YXJ0aW5nIGNvb3JkaW5hdGUgKGluY2x1 c2l2ZSkuCj4gKyAqIEB4MjogSG9yaXpvbnRhbCBlbmRpbmcgY29vcmRpbmF0ZSAoZXhjbHVzaXZl KS4KPiArICogQHkyOiBWZXJ0aWNhbCBlbmRpbmcgY29vcmRpbmF0ZSAoZXhjbHVzaXZlKS4KPiAr ICoKPiArICogV2l0aCBkcm0gc3Vic3lzdGVtIHVzaW5nIHN0cnVjdCBkcm1fcmVjdCB0byBtYW5h Z2UgcmVjdGFuZ3VsYXIgYXJlYSB0aGlzCj4gKyAqIGV4cG9ydCBpdCB0byB1c2VyLXNwYWNlLgo+ ICsgKgo+ICsgKiBDdXJyZW50bHkgdXNlZCBieSBkcm1fbW9kZV9hdG9taWMgYmxvYiBwcm9wZXJ0 eSBGQl9EQU1BR0VfQ0xJUFMuCj4gKyAqLwo+ICtzdHJ1Y3QgZHJtX21vZGVfcmVjdCB7Cj4gKwlf X3MzMiB4MTsKPiArCV9fczMyIHkxOwo+ICsJX19zMzIgeDI7Cj4gKwlfX3MzMiB5MjsKPiArfTsK PiArCj4gICAjaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKPiAgIH0KPiAgICNlbmRpZgoKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWls aW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=