From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v6 1/4] drm: add generic zpos property Date: Tue, 26 Jul 2016 19:25:10 +0300 Message-ID: <20160726162510.GI4329@intel.com> References: <1469091123-4909-1-git-send-email-benjamin.gaignard@linaro.org> <1469091123-4909-2-git-send-email-benjamin.gaignard@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1469091123-4909-2-git-send-email-benjamin.gaignard@linaro.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Benjamin Gaignard Cc: Krzysztof Kozlowski , linux-samsung-soc@vger.kernel.org, Laurent Pinchart , Bartlomiej Zolnierkiewicz , Seung-Woo Kim , fabien.dessenne@st.com, linaro-mm-sig@lists.linaro.org, Andrzej Hajda , Tobias Jakobi , dri-devel@lists.freedesktop.org, vincent.abriou@st.com, Marek Szyprowski List-Id: linux-samsung-soc@vger.kernel.org T24gVGh1LCBKdWwgMjEsIDIwMTYgYXQgMTA6NTI6MDBBTSArMDIwMCwgQmVuamFtaW4gR2FpZ25h cmQgd3JvdGU6Cj4gRnJvbTogTWFyZWsgU3p5cHJvd3NraSA8bS5zenlwcm93c2tpQHNhbXN1bmcu Y29tPgo+IAo+IHZlcnNpb24gNjoKPiAtIGFkZCB6cG9zIGluIGdwdSBkb2N1bWVudGF0aW9uIGZp bGUKPiAtIG1lcmdlIFZpbGxlIHBhdGNoIGFib3V0IHpwb3MgaW5pdGlhbCB2YWx1ZSBhbmQgQVBJ IGltcHJvdmVtZW50Lgo+ICAgSSBoYXZlIHNwbGl0IFZpbGxlIHBhdGNoIGJldHdlZW4genBvcyBj b3JlIGFuZCBkcml2ZXJzCj4gCj4gdmVyc2lvbiA1Ogo+IC0gcmVtb3ZlIHpwb3MgcmFuZ2UgY2hl Y2sgYW5kIGNvbWViYWNrIHRvIDAgdG8gTi0xCj4gICBub3JtYWxpemF0aW9uIGFsZ29yaXRobQo+ IAo+IHZlcnNpb24gNDoKPiAtIG1ha2Ugc3VyZSB0aGF0IG5vcm1hbGl6ZWQgenBvcyB2YWx1ZSBp cyBzdGF5Cj4gICBpbiB0aGUgZGVmaW5lZCBwcm9wZXJ0eSByYW5nZSBhbmQgd2FybiB1c2VyIGlm IG5vdAo+IAo+IFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBnZW5lcmljIHBsYW5lJ3MgenBv cyBwcm9wZXJ0eSBwcm9wZXJ0eSB3aXRoCj4gd2VsbC1kZWZpbmVkIHNlbWFudGljczoKPiAtIGFk ZGVkIHpwb3MgcHJvcGVydGllcyB0byBwbGFuZSBhbmQgcGxhbmUgc3RhdGUgc3RydWN0dXJlcwo+ IC0gYWRkZWQgaGVscGVycyBmb3Igbm9ybWFsaXppbmcgenBvcyBwcm9wZXJ0aWVzIG9mIGdpdmVu IHNldCBvZiBwbGFuZXMKPiAtIHdlbGwgZGVmaW5lZCBzZW1hbnRpY3M6IHBsYW5lcyBhcmUgc29y dGVkIGJ5IHpwb3MgdmFsdWVzIGFuZCB0aGVuIHBsYW5lCj4gICBpZCB2YWx1ZSBpZiB6cG9zIGVx dWFscwo+IAo+IE5vcm1hbGl6ZWQgenBvcyB2YWx1ZXMgYXJlIGNhbGN1bGF0ZWQgYXV0b21hdGlj YWxseSB3aGVuIGdlbmVyaWMKPiBtdXR0YWJsZSB6cG9zIHByb3BlcnR5IGhhcyBiZWVuIGluaXRp YWxpemVkLiBEcml2ZXJzIGNhbiBzaW1wbHkgdXNlCj4gcGxhbmVfc3RhdGUtPm5vcm1hbGl6ZWRf enBvcyBpbiB0aGVpciBhdG9taWNfY2hlY2sgYW5kL29yIHBsYW5lX3VwZGF0ZQo+IGNhbGxiYWNr cyB3aXRob3V0IGFueSBhZGRpdGlvbmFsIGNhbGxzIHRvIERSTSBjb3JlLgo+IAo+IFNpZ25lZC1v ZmYtYnk6IE1hcmVrIFN6eXByb3dza2kgPG0uc3p5cHJvd3NraUBzYW1zdW5nLmNvbT4KPiAKPiBD b21wYXJlIHRvIE1hcmVrJ3Mgb3JpZ2luYWwgcGF0Y2ggenBvcyBwcm9wZXJ0eSBpcyBub3cgc3Bl Y2lmaWMgdG8gZWFjaAo+IHBsYW5lIGFuZCBubyBtb3JlIHRvIHRoZSBjb3JlLgo+IE5vcm1hbGl6 ZSBmdW5jdGlvbiB0YWtlIGNhcmUgb2YgdGhlIHJhbmdlIG9mIHBlciBwbGFuZSBkZWZpbmVkIHJh bmdlCj4gYmVmb3JlIHNldCBub3JtYWxpemVkX3pwb3MuCj4gCj4gU2lnbmVkLW9mZi1ieTogQmVu amFtaW4gR2FpZ25hcmQgPGJlbmphbWluLmdhaWduYXJkQGxpbmFyby5vcmc+Cj4gCj4gQ2M6IElu a2kgRGFlIDxpbmtpLmRhZUBzYW1zdW5nLmNvbT4KPiBDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVs QGZmd2xsLmNoPgo+IENjOiBWaWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVs LmNvbT4KPiBDYzogSm9vbnlvdW5nIFNoaW0gPGp5MDkyMi5zaGltQHNhbXN1bmcuY29tPgo+IENj OiBTZXVuZy1Xb28gS2ltIDxzdzAzMTIua2ltQHNhbXN1bmcuY29tPgo+IENjOiBBbmRyemVqIEhh amRhIDxhLmhhamRhQHNhbXN1bmcuY29tPgo+IENjOiBLcnp5c3p0b2YgS296bG93c2tpIDxrLmtv emxvd3NraUBzYW1zdW5nLmNvbT4KPiBDYzogQmFydGxvbWllaiBab2xuaWVya2lld2ljeiA8Yi56 b2xuaWVya2llQHNhbXN1bmcuY29tPgo+IENjOiBUb2JpYXMgSmFrb2JpIDx0amFrb2JpQG1hdGgu dW5pLWJpZWxlZmVsZC5kZT4KPiBDYzogR3VzdGF2byBQYWRvdmFuIDxndXN0YXZvQHBhZG92YW4u b3JnPgo+IENjOiB2aW5jZW50LmFicmlvdUBzdC5jb20KPiBDYzogZmFiaWVuLmRlc3Nlbm5lQHN0 LmNvbQo+IENjOiBMYXVyZW50IFBpbmNoYXJ0IDxsYXVyZW50LnBpbmNoYXJ0QGlkZWFzb25ib2Fy ZC5jb20+Cj4gLS0tCj4gIERvY3VtZW50YXRpb24vZ3B1L2ttcy1wcm9wZXJ0aWVzLmNzdiB8ICAg MSArCj4gIGRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZSAgICAgICAgICAgICB8ICAgMiArLQo+ICBk cml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jICAgICAgICAgfCAgIDQgKwo+ICBkcml2ZXJzL2dw dS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyAgfCAgIDcgKwo+ICBkcml2ZXJzL2dwdS9kcm0vZHJt X2JsZW5kLmMgICAgICAgICAgfCAyNDAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysKPiAgZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2ludGVybmFsLmggIHwgICA0ICsKPiAgaW5j bHVkZS9kcm0vZHJtX2NydGMuaCAgICAgICAgICAgICAgIHwgIDMwICsrKysrCj4gIDcgZmlsZXMg Y2hhbmdlZCwgMjg3IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPiAgY3JlYXRlIG1vZGUg MTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9kcm1fYmxlbmQuYwo+IAo+IGRpZmYgLS1naXQgYS9Eb2N1 bWVudGF0aW9uL2dwdS9rbXMtcHJvcGVydGllcy5jc3YgYi9Eb2N1bWVudGF0aW9uL2dwdS9rbXMt cHJvcGVydGllcy5jc3YKPiBpbmRleCBiNmZjYWY2Li4zNTg3ZWEyIDEwMDY0NAo+IC0tLSBhL0Rv Y3VtZW50YXRpb24vZ3B1L2ttcy1wcm9wZXJ0aWVzLmNzdgo+ICsrKyBiL0RvY3VtZW50YXRpb24v Z3B1L2ttcy1wcm9wZXJ0aWVzLmNzdgo+IEBAIC0xNyw2ICsxNyw3IEBAIERSTSxHZW5lcmljLOKA nHJvdGF0aW9u4oCdLEJJVE1BU0ssInsgMCwgIiJyb3RhdGUtMCIiIH0sIHsgMSwgIiJyb3RhdGUt OTAiIiB9LCB7Cj4gICws4oCcQ1JUQ19I4oCdLFJBTkdFLCJNaW49MCwgTWF4PVVJTlRfTUFYIixQ bGFuZSxTY2Fub3V0IENSVEMgKGRlc3RpbmF0aW9uKSBoZWlnaHQgKGF0b21pYykKPiAgLCzigJxG Ql9JROKAnSxPQkpFQ1QsRFJNX01PREVfT0JKRUNUX0ZCLFBsYW5lLFNjYW5vdXQgZnJhbWVidWZm ZXIgKGF0b21pYykKPiAgLCzigJxDUlRDX0lE4oCdLE9CSkVDVCxEUk1fTU9ERV9PQkpFQ1RfQ1JU QyxQbGFuZSxDUlRDIHRoYXQgcGxhbmUgaXMgYXR0YWNoZWQgdG8gKGF0b21pYykKPiArLCzigJx6 cG9z4oCdLFJBTkdFLCJNaW49MCwgTWF4PVVJTlRfTUFYIixQbGFuZSxab3JkZXIgb2YgdGhlIHBs YW5lCj4gICxEVkktSSzigJxzdWJjb25uZWN0b3LigJ0sRU5VTSwieyDigJxVbmtub3du4oCdLCDi gJxEVkktROKAnSwg4oCcRFZJLUHigJ0gfSIsQ29ubmVjdG9yLFRCRAo+ICAsLOKAnHNlbGVjdCBz dWJjb25uZWN0b3LigJ0sRU5VTSwieyDigJxBdXRvbWF0aWPigJ0sIOKAnERWSS1E4oCdLCDigJxE VkktQeKAnSB9IixDb25uZWN0b3IsVEJECj4gICxUVizigJxzdWJjb25uZWN0b3LigJ0sRU5VTSwi eyAiIlVua25vd24iIiwgIiJDb21wb3NpdGUiIiwgIiJTVklERU8iIiwgIiJDb21wb25lbnQiIiwg IiJTQ0FSVCIiIH0iLENvbm5lY3RvcixUQkQKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlCj4gaW5kZXggZTNkYmE2Zi4uN2Zi Y2YzZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vTWFrZWZpbGUKPiBAQCAtMiw3ICsyLDcgQEAKPiAgIyBNYWtlZmlsZSBmb3Ig dGhlIGRybSBkZXZpY2UgZHJpdmVyLiAgVGhpcyBkcml2ZXIgcHJvdmlkZXMgc3VwcG9ydCBmb3Ig dGhlCj4gICMgRGlyZWN0IFJlbmRlcmluZyBJbmZyYXN0cnVjdHVyZSAoRFJJKSBpbiBYRnJlZTg2 IDQuMS4wIGFuZCBoaWdoZXIuCj4gIAo+IC1kcm0teSAgICAgICA6PQlkcm1fYXV0aC5vIGRybV9i dWZzLm8gZHJtX2NhY2hlLm8gXAo+ICtkcm0teSAgICAgICA6PQlkcm1fYXV0aC5vIGRybV9idWZz Lm8gZHJtX2JsZW5kLm8gZHJtX2NhY2hlLm8gXAo+ICAJCWRybV9jb250ZXh0Lm8gZHJtX2RtYS5v IFwKPiAgCQlkcm1fZm9wcy5vIGRybV9nZW0ubyBkcm1faW9jdGwubyBkcm1faXJxLm8gXAo+ICAJ CWRybV9sb2NrLm8gZHJtX21lbW9yeS5vIGRybV9kcnYubyBkcm1fdm0ubyBcCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0 b21pYy5jCj4gaW5kZXggOTM1OWJlNC4uOGRkZDhiYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2F0b21pYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+ IEBAIC03MTIsNiArNzEyLDggQEAgaW50IGRybV9hdG9taWNfcGxhbmVfc2V0X3Byb3BlcnR5KHN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJCXN0YXRlLT5zcmNfaCA9IHZhbDsKPiAgCX0gZWxz ZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT5yb3RhdGlvbl9wcm9wZXJ0eSkgewo+ICAJCXN0YXRl LT5yb3RhdGlvbiA9IHZhbDsKPiArCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gcGxhbmUtPnpwb3Nf cHJvcGVydHkpIHsKPiArCQlzdGF0ZS0+enBvcyA9IHZhbDsKPiAgCX0gZWxzZSBpZiAocGxhbmUt PmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5KSB7Cj4gIAkJcmV0dXJuIHBsYW5lLT5mdW5jcy0+ YXRvbWljX3NldF9wcm9wZXJ0eShwbGFuZSwgc3RhdGUsCj4gIAkJCQlwcm9wZXJ0eSwgdmFsKTsK PiBAQCAtNzY4LDYgKzc3MCw4IEBAIGRybV9hdG9taWNfcGxhbmVfZ2V0X3Byb3BlcnR5KHN0cnVj dCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJCSp2YWwgPSBzdGF0ZS0+c3JjX2g7Cj4gIAl9IGVsc2Ug aWYgKHByb3BlcnR5ID09IGNvbmZpZy0+cm90YXRpb25fcHJvcGVydHkpIHsKPiAgCQkqdmFsID0g c3RhdGUtPnJvdGF0aW9uOwo+ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBwbGFuZS0+enBvc19w cm9wZXJ0eSkgewo+ICsJCSp2YWwgPSBzdGF0ZS0+enBvczsKPiAgCX0gZWxzZSBpZiAocGxhbmUt PmZ1bmNzLT5hdG9taWNfZ2V0X3Byb3BlcnR5KSB7Cj4gIAkJcmV0dXJuIHBsYW5lLT5mdW5jcy0+ YXRvbWljX2dldF9wcm9wZXJ0eShwbGFuZSwgc3RhdGUsIHByb3BlcnR5LCB2YWwpOwo+ICAJfSBl bHNlIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+IGluZGV4IGRlN2ZkZGMuLjIw YmU4NmQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+IEBAIC0zMiw2ICsz Miw4IEBACj4gICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KPiAgI2luY2x1ZGUg PGxpbnV4L2ZlbmNlLmg+Cj4gIAo+ICsjaW5jbHVkZSAiZHJtX2NydGNfaW50ZXJuYWwuaCIKPiAr Cj4gIC8qKgo+ICAgKiBET0M6IG92ZXJ2aWV3Cj4gICAqCj4gQEAgLTU5Miw2ICs1OTQsMTAgQEAg ZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4g IAlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZTsKPiAgCWludCBpLCByZXQgPSAw Owo+ICAKPiArCXJldCA9IGRybV9hdG9taWNfaGVscGVyX25vcm1hbGl6ZV96cG9zKGRldiwgc3Rh dGUpOwo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiAgCWZvcl9lYWNoX3BsYW5l X2luX3N0YXRlKHN0YXRlLCBwbGFuZSwgcGxhbmVfc3RhdGUsIGkpIHsKPiAgCQljb25zdCBzdHJ1 Y3QgZHJtX3BsYW5lX2hlbHBlcl9mdW5jcyAqZnVuY3M7Cj4gIAo+IEBAIC0yOTU1LDYgKzI5NjEs NyBAQCB2b2lkIF9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kdXBsaWNhdGVfc3RhdGUoc3RydWN0 IGRybV9jcnRjICpjcnRjLAo+ICAJc3RhdGUtPnBsYW5lc19jaGFuZ2VkID0gZmFsc2U7Cj4gIAlz dGF0ZS0+Y29ubmVjdG9yc19jaGFuZ2VkID0gZmFsc2U7Cj4gIAlzdGF0ZS0+Y29sb3JfbWdtdF9j aGFuZ2VkID0gZmFsc2U7Cj4gKwlzdGF0ZS0+enBvc19jaGFuZ2VkID0gZmFsc2U7Cj4gIAlzdGF0 ZS0+ZXZlbnQgPSBOVUxMOwo+ICB9Cj4gIEVYUE9SVF9TWU1CT0woX19kcm1fYXRvbWljX2hlbHBl cl9jcnRjX2R1cGxpY2F0ZV9zdGF0ZSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9k cm1fYmxlbmQuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYmxlbmQuYwo+IG5ldyBmaWxlIG1vZGUg MTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4uOTU2NzIzMwo+IC0tLSAvZGV2L251bGwKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX2JsZW5kLmMKPiBAQCAtMCwwICsxLDI0MCBAQAo+ICsvKgo+ICsg KiBDb3B5cmlnaHQgKEMpIDIwMTYgU2Ftc3VuZyBFbGVjdHJvbmljcyBDby5MdGQKPiArICogQXV0 aG9yczoKPiArICoJTWFyZWsgU3p5cHJvd3NraSA8bS5zenlwcm93c2tpQHNhbXN1bmcuY29tPgo+ ICsgKgo+ICsgKiBEUk0gY29yZSBwbGFuZSBibGVuZGluZyByZWxhdGVkIGZ1bmN0aW9ucwo+ICsg Kgo+ICsgKiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBkaXN0cmlidXRlLCBhbmQg c2VsbCB0aGlzIHNvZnR3YXJlIGFuZCBpdHMKPiArICogZG9jdW1lbnRhdGlvbiBmb3IgYW55IHB1 cnBvc2UgaXMgaGVyZWJ5IGdyYW50ZWQgd2l0aG91dCBmZWUsIHByb3ZpZGVkIHRoYXQKPiArICog dGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMgYW5kIHRoYXQg Ym90aCB0aGF0IGNvcHlyaWdodAo+ICsgKiBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3Rp Y2UgYXBwZWFyIGluIHN1cHBvcnRpbmcgZG9jdW1lbnRhdGlvbiwgYW5kCj4gKyAqIHRoYXQgdGhl IG5hbWUgb2YgdGhlIGNvcHlyaWdodCBob2xkZXJzIG5vdCBiZSB1c2VkIGluIGFkdmVydGlzaW5n IG9yCj4gKyAqIHB1YmxpY2l0eSBwZXJ0YWluaW5nIHRvIGRpc3RyaWJ1dGlvbiBvZiB0aGUgc29m dHdhcmUgd2l0aG91dCBzcGVjaWZpYywKPiArICogd3JpdHRlbiBwcmlvciBwZXJtaXNzaW9uLiAg VGhlIGNvcHlyaWdodCBob2xkZXJzIG1ha2Ugbm8gcmVwcmVzZW50YXRpb25zCj4gKyAqIGFib3V0 IHRoZSBzdWl0YWJpbGl0eSBvZiB0aGlzIHNvZnR3YXJlIGZvciBhbnkgcHVycG9zZS4gIEl0IGlz IHByb3ZpZGVkICJhcwo+ICsgKiBpcyIgd2l0aG91dCBleHByZXNzIG9yIGltcGxpZWQgd2FycmFu dHkuCj4gKyAqCj4gKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSUyBESVNDTEFJTSBBTEwgV0FSUkFO VElFUyBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFLAo+ICsgKiBJTkNMVURJTkcgQUxMIElN UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MsIElOIE5PCj4g KyAqIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBT UEVDSUFMLCBJTkRJUkVDVCBPUgo+ICsgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERB TUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwKPiArICogREFUQSBP UiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBP UiBPVEhFUgo+ICsgKiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5F Q1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFCj4gKyAqIE9GIFRISVMgU09GVFdBUkUu Cj4gKyAqLwo+ICsjaW5jbHVkZSA8ZHJtL2RybVAuaD4KPiArI2luY2x1ZGUgPGRybS9kcm1fYXRv bWljLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX2NydGMuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2V4 cG9ydC5oPgo+ICsjaW5jbHVkZSA8bGludXgvc2xhYi5oPgo+ICsjaW5jbHVkZSA8bGludXgvc29y dC5oPgo+ICsKPiArI2luY2x1ZGUgImRybV9pbnRlcm5hbC5oIgo+ICsKPiArLyoqCj4gKyAqIGRy bV9wbGFuZV9jcmVhdGVfenBvc19wcm9wZXJ0eSAtIGNyZWF0ZSBtdXRhYmxlIHpwb3MgcHJvcGVy dHkKPiArICogQHBsYW5lOiBkcm0gcGxhbmUKPiArICogQHpwb3M6IGluaXRpYWwgdmFsdWUgb2Yg enBvcyBwcm9wZXJ0eQo+ICsgKiBAbWluOiBtaW5pbWFsIHBvc3NpYmxlIHZhbHVlIG9mIHpwb3Mg cHJvcGVydHkKPiArICogQG1heDogbWF4aW1hbCBwb3NzaWJsZSB2YWx1ZSBvZiB6cG9zIHByb3Bl cnR5Cj4gKyAqCj4gKyAqIFRoaXMgZnVuY3Rpb24gaW5pdGlhbGl6ZXMgZ2VuZXJpYyBtdXRhYmxl IHpwb3MgcHJvcGVydHkgYW5kIGVuYWJsZXMgc3VwcG9ydAo+ICsgKiBmb3IgaXQgaW4gZHJtIGNv cmUuIERyaXZlcnMgY2FuIHRoZW4gYXR0YWNoIHRoaXMgcHJvcGVydHkgdG8gcGxhbmVzIHRvIGVu YWJsZQo+ICsgKiBzdXBwb3J0IGZvciBjb25maWd1cmFibGUgcGxhbmVzIGFycmFuZ2VtZW50IGR1 cmluZyBibGVuZGluZyBvcGVyYXRpb24uCj4gKyAqIE9uY2UgbXV0YWJsZSB6cG9zIHByb3BlcnR5 IGhhcyBiZWVuIGVuYWJsZWQsIHRoZSBEUk0gY29yZSB3aWxsIGF1dG9tYXRpY2FsbHkKPiArICog Y2FsY3VsYXRlIGRybV9wbGFuZV9zdGF0ZS0+bm9ybWFsaXplZF96cG9zIHZhbHVlcy4gVXN1YWxs eSBtaW4gc2hvdWxkIGJlIHNldAo+ICsgKiB0byAwIGFuZCBtYXggdG8gbWF4aW1hbCBudW1iZXIg b2YgcGxhbmVzIGZvciBnaXZlbiBjcnRjIC0gMS4KPiArICoKPiArICogSWYgenBvcyBvZiBzb21l IHBsYW5lcyBjYW5ub3QgYmUgY2hhbmdlZCAobGlrZSBmaXhlZCBiYWNrZ3JvdW5kIG9yCj4gKyAq IGN1cnNvci90b3Btb3N0IHBsYW5lcyksIGRyaXZlciBzaG91bGQgYWRqdXN0IG1pbi9tYXggdmFs dWVzIGFuZCBhc3NpZ24gdGhvc2UKPiArICogcGxhbmVzIGltbXV0YWJsZSB6cG9zIHByb3BlcnR5 IHdpdGggbG93ZXIgb3IgaGlnaGVyIHZhbHVlcyAoZm9yIG1vcmUKPiArICogaW5mb3JtYXRpb24s IHNlZSBkcm1fbW9kZV9jcmVhdGVfenBvc19pbW11dGFibGVfcHJvcGVydHkoKSBmdW5jdGlvbiku IEluIHN1Y2gKPiArICogY2FzZSBkcml2ZXIgc2hvdWxkIGFsc28gYXNzaWduIHByb3BlciBpbml0 aWFsIHpwb3MgdmFsdWVzIGZvciBhbGwgcGxhbmVzIGluCj4gKyAqIGl0cyBwbGFuZV9yZXNldCgp IGNhbGxiYWNrLCBzbyB0aGUgcGxhbmVzIHdpbGwgYmUgYWx3YXlzIHNvcnRlZCBwcm9wZXJseS4K PiArICoKPiArICogUmV0dXJuczoKPiArICogWmVybyBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJu byBvbiBmYWlsdXJlLgo+ICsgKi8KPiAraW50IGRybV9wbGFuZV9jcmVhdGVfenBvc19wcm9wZXJ0 eShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiArCQkJCSAgIHVuc2lnbmVkIGludCB6cG9zLAo+ ICsJCQkJICAgdW5zaWduZWQgaW50IG1pbiwgdW5zaWduZWQgaW50IG1heCkKPiArewo+ICsJc3Ry dWN0IGRybV9wcm9wZXJ0eSAqcHJvcDsKPiArCj4gKwlwcm9wID0gZHJtX3Byb3BlcnR5X2NyZWF0 ZV9yYW5nZShwbGFuZS0+ZGV2LCAwLCAienBvcyIsIG1pbiwgbWF4KTsKPiArCWlmICghcHJvcCkK PiArCQlyZXR1cm4gLUVOT01FTTsKPiArCj4gKwlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgm cGxhbmUtPmJhc2UsIHByb3AsIHpwb3MpOwo+ICsKPiArCXBsYW5lLT56cG9zX3Byb3BlcnR5ID0g cHJvcDsKPiArCj4gKwlpZiAocGxhbmUtPnN0YXRlKSB7Cj4gKwkJcGxhbmUtPnN0YXRlLT56cG9z ID0genBvczsKPiArCQlwbGFuZS0+c3RhdGUtPm5vcm1hbGl6ZWRfenBvcyA9IHpwb3M7Cj4gKwl9 Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArRVhQT1JUX1NZTUJPTChkcm1fcGxhbmVfY3JlYXRl X3pwb3NfcHJvcGVydHkpOwo+ICsKPiArLyoqCj4gKyAqIGRybV9wbGFuZV9jcmVhdGVfenBvc19p bW11dGFibGVfcHJvcGVydHkgLSBjcmVhdGUgaW1tdXR0YWJsZSB6cG9zIHByb3BlcnR5Cj4gKyAq IEBwbGFuZTogZHJtIHBsYW5lCj4gKyAqIEB6cG9zOiB2YWx1ZSBvZiB6cG9zIHByb3BlcnR5Cj4g KyAqCj4gKyAqIFRoaXMgZnVuY3Rpb24gaW5pdGlhbGl6ZXMgZ2VuZXJpYyBpbW11dGFibGUgenBv cyBwcm9wZXJ0eSBhbmQgZW5hYmxlcwo+ICsgKiBzdXBwb3J0IGZvciBpdCBpbiBkcm0gY29yZS4g VXNpbmcgdGhpcyBwcm9wZXJ0eSBkcml2ZXIgbGV0cyB1c2Vyc3BhY2UKPiArICogdG8gZ2V0IHRo ZSBhcnJhbmdlbWVudCBvZiB0aGUgcGxhbmVzIGZvciBibGVuZGluZyBvcGVyYXRpb24gYW5kIG5v dGlmaWVzCj4gKyAqIGl0IHRoYXQgdGhlIGhhcmR3YXJlIChvciBkcml2ZXIpIGRvZXNuJ3Qgc3Vw cG9ydCBjaGFuZ2luZyBvZiB0aGUgcGxhbmVzJwo+ICsgKiBvcmRlci4KPiArICoKPiArICogUmV0 dXJuczoKPiArICogWmVybyBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJubyBvbiBmYWlsdXJlLgo+ ICsgKi8KPiAraW50IGRybV9wbGFuZV9jcmVhdGVfenBvc19pbW11dGFibGVfcHJvcGVydHkoc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gKwkJCQkJICAgICB1bnNpZ25lZCBpbnQgenBvcykKPiAr ewo+ICsJc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcDsKPiArCj4gKwlwcm9wID0gZHJtX3Byb3Bl cnR5X2NyZWF0ZV9yYW5nZShwbGFuZS0+ZGV2LCBEUk1fTU9ERV9QUk9QX0lNTVVUQUJMRSwKPiAr CQkJCQkgInpwb3MiLCB6cG9zLCB6cG9zKTsKPiArCWlmICghcHJvcCkKPiArCQlyZXR1cm4gLUVO T01FTTsKPiArCj4gKwlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmcGxhbmUtPmJhc2UsIHBy b3AsIHpwb3MpOwo+ICsKPiArCXBsYW5lLT56cG9zX3Byb3BlcnR5ID0gcHJvcDsKPiArCj4gKwlp ZiAocGxhbmUtPnN0YXRlKSB7Cj4gKwkJcGxhbmUtPnN0YXRlLT56cG9zID0genBvczsKPiArCQlw bGFuZS0+c3RhdGUtPm5vcm1hbGl6ZWRfenBvcyA9IHpwb3M7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJu IDA7Cj4gK30KPiArRVhQT1JUX1NZTUJPTChkcm1fcGxhbmVfY3JlYXRlX3pwb3NfaW1tdXRhYmxl X3Byb3BlcnR5KTsKPiArCj4gK3N0YXRpYyBpbnQgZHJtX2F0b21pY19zdGF0ZV96cG9zX2NtcChj b25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiKQo+ICt7Cj4gKwljb25zdCBzdHJ1Y3QgZHJtX3Bs YW5lX3N0YXRlICpzYSA9ICooc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqKilhOwo+ICsJY29uc3Qg c3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc2IgPSAqKHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKiop YjsKCiooY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqIGNvbnN0ICopCgppZiB5b3Ugd2Fu dCB0byBiZSBtb3JlIGFuYWwgYWJvdXQgdGhlIGNhc3QsIEkgc3VwcG9zZS4KCj4gKwo+ICsJaWYg KHNhLT56cG9zICE9IHNiLT56cG9zKQo+ICsJCXJldHVybiBzYS0+enBvcyAtIHNiLT56cG9zOwo+ ICsJZWxzZQo+ICsJCXJldHVybiBzYS0+cGxhbmUtPmJhc2UuaWQgLSBzYi0+cGxhbmUtPmJhc2Uu aWQ7Cj4gK30KCkkgbWlnaHQgaGF2ZSB3aXNoZWQgdGhhdCB3ZSdkIGJlIGEgYml0IG1vcmUgc3Ry aWN0IGhlcmUgKGF0IGxlYXN0IGZvcgp0aGUgYXRvbWljIEFQSSksIGJ1dCBpZiBwZW9wbGUgd2Fu dCB0aGlzIEkgY2FuIGxpdmUgd2l0aCBpdC4KCj4gKwo+ICsvKioKPiArICogZHJtX2F0b21pY19o ZWxwZXJfY3J0Y19ub3JtYWxpemVfenBvcyAtIGNhbGN1bGF0ZSBub3JtYWxpemVkIHpwb3MgdmFs dWVzCj4gKyAqIEBjcnRjOiBjcnRjIHdpdGggcGxhbmVzLCB3aGljaCBoYXZlIHRvIGJlIGNvbnNp ZGVyZWQgZm9yIG5vcm1hbGl6YXRpb24KPiArICogQGNydGNfc3RhdGU6IG5ldyBhdG9taWMgc3Rh dGUgdG8gYXBwbHkKPiArICoKPiArICogVGhpcyBmdW5jdGlvbiBjaGVja3MgbmV3IHN0YXRlcyBv ZiBhbGwgcGxhbmVzIGFzc2lnbmVkIHRvIGdpdmVuIGNydGMgYW5kCj4gKyAqIGNhbGN1bGF0ZXMg bm9ybWFsaXplZCB6cG9zIHZhbHVlIGZvciB0aGVtLiBQbGFuZXMgYXJlIGNvbXBhcmVkIGZpcnN0 IGJ5IHRoZWlyCj4gKyAqIHpwb3MgdmFsdWVzLCB0aGVuIGJ5IHBsYW5lIGlkIChpZiB6cG9zIGVx dWFscykuIFBsYW5lIHdpdGggbG93ZXN0IHpwb3MgdmFsdWUKPiArICogaXMgYXQgdGhlIGJvdHRv bS4gVGhlIHBsYW5lX3N0YXRlLT5ub3JtYWxpemVkX3pwb3MgaXMgdGhlbiBmaWxsZWQgd2l0aCB1 bmlxdWUKPiArICogdmFsdWVzIGZyb20gMCB0byBudW1iZXIgb2YgYWN0aXZlIHBsYW5lcyBpbiBj cnRjIG1pbnVzIG9uZS4KPiArICoKPiArICogUkVUVVJOUwo+ICsgKiBaZXJvIGZvciBzdWNjZXNz IG9yIC1lcnJubwo+ICsgKi8KPiAraW50IGRybV9hdG9taWNfaGVscGVyX2NydGNfbm9ybWFsaXpl X3pwb3Moc3RydWN0IGRybV9jcnRjICpjcnRjLAoKc3RhdGljICsga2lsbCBFWFBPUlQgPwoKQW55 d2F5cywgdGhpcyBzZWVtZWQgc3VmZmljaWVudCBmb3IgaTkxNSwgc28gSSB0b3NzIGluIG15ClJl dmlld2VkLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29t PgoKPiArCQkJCQkgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiArewo+ICsJ c3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gY3J0Y19zdGF0ZS0+c3RhdGU7Cj4gKwlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+ICsJaW50IHRvdGFsX3BsYW5lcyA9 IGRldi0+bW9kZV9jb25maWcubnVtX3RvdGFsX3BsYW5lOwo+ICsJc3RydWN0IGRybV9wbGFuZV9z dGF0ZSAqKnN0YXRlczsKPiArCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwo+ICsJaW50IGksIG4g PSAwOwo+ICsJaW50IHJldCA9IDA7Cj4gKwo+ICsJRFJNX0RFQlVHX0FUT01JQygiW0NSVEM6JWQ6 JXNdIGNhbGN1bGF0aW5nIG5vcm1hbGl6ZWQgenBvcyB2YWx1ZXNcbiIsCj4gKwkJCSBjcnRjLT5i YXNlLmlkLCBjcnRjLT5uYW1lKTsKPiArCj4gKwlzdGF0ZXMgPSBrbWFsbG9jX2FycmF5KHRvdGFs X3BsYW5lcywgc2l6ZW9mKCpzdGF0ZXMpLCBHRlBfVEVNUE9SQVJZKTsKPiArCWlmICghc3RhdGVz KQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ICsKPiArCS8qCj4gKwkgKiBOb3JtYWxpemF0aW9uIHBy b2Nlc3MgbWlnaHQgY3JlYXRlIG5ldyBzdGF0ZXMgZm9yIHBsYW5lcyB3aGljaAo+ICsJICogbm9y bWFsaXplZF96cG9zIGhhcyB0byBiZSByZWNhbGN1bGF0ZWQuCj4gKwkgKi8KPiArCWRybV9mb3Jf ZWFjaF9wbGFuZV9tYXNrKHBsYW5lLCBkZXYsIGNydGNfc3RhdGUtPnBsYW5lX21hc2spIHsKPiAr CQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSA9Cj4gKwkJCWRybV9hdG9taWNf Z2V0X3BsYW5lX3N0YXRlKHN0YXRlLCBwbGFuZSk7Cj4gKwkJaWYgKElTX0VSUihwbGFuZV9zdGF0 ZSkpIHsKPiArCQkJcmV0ID0gUFRSX0VSUihwbGFuZV9zdGF0ZSk7Cj4gKwkJCWdvdG8gZG9uZTsK PiArCQl9Cj4gKwkJc3RhdGVzW24rK10gPSBwbGFuZV9zdGF0ZTsKPiArCQlEUk1fREVCVUdfQVRP TUlDKCJbUExBTkU6JWQ6JXNdIHByb2Nlc3NpbmcgenBvcyB2YWx1ZSAlZFxuIiwKPiArCQkJCSBw bGFuZS0+YmFzZS5pZCwgcGxhbmUtPm5hbWUsCj4gKwkJCQkgcGxhbmVfc3RhdGUtPnpwb3MpOwo+ ICsJfQo+ICsKPiArCXNvcnQoc3RhdGVzLCBuLCBzaXplb2YoKnN0YXRlcyksIGRybV9hdG9taWNf c3RhdGVfenBvc19jbXAsIE5VTEwpOwo+ICsKPiArCWZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsK PiArCQlwbGFuZSA9IHN0YXRlc1tpXS0+cGxhbmU7Cj4gKwo+ICsJCXN0YXRlc1tpXS0+bm9ybWFs aXplZF96cG9zID0gaTsKPiArCQlEUk1fREVCVUdfQVRPTUlDKCJbUExBTkU6JWQ6JXNdIG5vcm1h bGl6ZWQgenBvcyB2YWx1ZSAlZFxuIiwKPiArCQkJCSBwbGFuZS0+YmFzZS5pZCwgcGxhbmUtPm5h bWUsIGkpOwo+ICsJfQo+ICsJY3J0Y19zdGF0ZS0+enBvc19jaGFuZ2VkID0gdHJ1ZTsKPiArCj4g K2RvbmU6Cj4gKwlrZnJlZShzdGF0ZXMpOwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICtFWFBPUlRf U1lNQk9MKGRybV9hdG9taWNfaGVscGVyX2NydGNfbm9ybWFsaXplX3pwb3MpOwo+ICsKPiArLyoq Cj4gKyAqIGRybV9hdG9taWNfaGVscGVyX25vcm1hbGl6ZV96cG9zIC0gY2FsY3VsYXRlIG5vcm1h bGl6ZWQgenBvcyB2YWx1ZXMgZm9yIGFsbAo+ICsgKgkJCQkgICAgICBjcnRjcwo+ICsgKiBAZGV2 OiBEUk0gZGV2aWNlCj4gKyAqIEBzdGF0ZTogYXRvbWljIHN0YXRlIG9mIERSTSBkZXZpY2UKPiAr ICoKPiArICogVGhpcyBmdW5jdGlvbiBjYWxjdWxhdGVzIG5vcm1hbGl6ZWQgenBvcyB2YWx1ZSBm b3IgYWxsIG1vZGlmaWVkIHBsYW5lcyBpbgo+ICsgKiB0aGUgcHJvdmlkZWQgYXRvbWljIHN0YXRl IG9mIERSTSBkZXZpY2UuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUKPiArICogZHJtX2F0b21p Y19oZWxwZXJfY3J0Y19ub3JtYWxpemVfenBvcygpIGZ1bmN0aW9uLgo+ICsgKgo+ICsgKiBSRVRV Uk5TCj4gKyAqIFplcm8gZm9yIHN1Y2Nlc3Mgb3IgLWVycm5vCj4gKyAqLwo+ICtpbnQgZHJtX2F0 b21pY19oZWxwZXJfbm9ybWFsaXplX3pwb3Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiArCQkJ CSAgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJt X2NydGMgKmNydGM7Cj4gKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4gKwlz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKPiArCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5l X3N0YXRlOwo+ICsJaW50IGksIHJldCA9IDA7Cj4gKwo+ICsJZm9yX2VhY2hfcGxhbmVfaW5fc3Rh dGUoc3RhdGUsIHBsYW5lLCBwbGFuZV9zdGF0ZSwgaSkgewo+ICsJCWNydGMgPSBwbGFuZV9zdGF0 ZS0+Y3J0YzsKPiArCQlpZiAoIWNydGMpCj4gKwkJCWNvbnRpbnVlOwo+ICsJCWlmIChwbGFuZS0+ c3RhdGUtPnpwb3MgIT0gcGxhbmVfc3RhdGUtPnpwb3MpIHsKPiArCQkJY3J0Y19zdGF0ZSA9Cj4g KwkJCQlkcm1fYXRvbWljX2dldF9leGlzdGluZ19jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKPiAr CQkJY3J0Y19zdGF0ZS0+enBvc19jaGFuZ2VkID0gdHJ1ZTsKPiArCQl9Cj4gKwl9Cj4gKwo+ICsJ Zm9yX2VhY2hfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewo+ICsJ CWlmIChjcnRjX3N0YXRlLT5wbGFuZV9tYXNrICE9IGNydGMtPnN0YXRlLT5wbGFuZV9tYXNrIHx8 Cj4gKwkJICAgIGNydGNfc3RhdGUtPnpwb3NfY2hhbmdlZCkgewo+ICsJCQlyZXQgPSBkcm1fYXRv bWljX2hlbHBlcl9jcnRjX25vcm1hbGl6ZV96cG9zKGNydGMsCj4gKwkJCQkJCQkJICAgIGNydGNf c3RhdGUpOwo+ICsJCQlpZiAocmV0KQo+ICsJCQkJcmV0dXJuIHJldDsKPiArCQl9Cj4gKwl9Cj4g KwlyZXR1cm4gMDsKPiArfQo+ICtFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVyX25vcm1h bGl6ZV96cG9zKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2ludGVy bmFsLmggYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaW50ZXJuYWwuaAo+IGluZGV4IGIyNDhl MjIuLjNlYTcyZTEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2ludGVy bmFsLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaW50ZXJuYWwuaAo+IEBAIC0x MjksMyArMTI5LDcgQEAgaW50IGRybV9hdG9taWNfcmVtb3ZlX2ZiKHN0cnVjdCBkcm1fZnJhbWVi dWZmZXIgKmZiKTsKPiAgCj4gIGludCBkcm1fbW9kZXNldF9yZWdpc3Rlcl9hbGwoc3RydWN0IGRy bV9kZXZpY2UgKmRldik7Cj4gIHZvaWQgZHJtX21vZGVzZXRfdW5yZWdpc3Rlcl9hbGwoc3RydWN0 IGRybV9kZXZpY2UgKmRldik7Cj4gKwo+ICsvKiBkcm1fYmxlbmQuYyAqLwo+ICtpbnQgZHJtX2F0 b21pY19oZWxwZXJfbm9ybWFsaXplX3pwb3Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiArCQkJ CSAgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKPiBkaWZmIC0tZ2l0IGEvaW5j bHVkZS9kcm0vZHJtX2NydGMuaCBiL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKPiBpbmRleCA5ZTZh YjRhLi42OWMyMDkyIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKPiArKysg Yi9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCj4gQEAgLTMwOCw2ICszMDgsNyBAQCBzdHJ1Y3QgZHJt X3BsYW5lX2hlbHBlcl9mdW5jczsKPiAgICogQG1vZGVfY2hhbmdlZDogY3J0Y19zdGF0ZS0+bW9k ZSBvciBjcnRjX3N0YXRlLT5lbmFibGUgaGFzIGJlZW4gY2hhbmdlZAo+ICAgKiBAYWN0aXZlX2No YW5nZWQ6IGNydGNfc3RhdGUtPmFjdGl2ZSBoYXMgYmVlbiB0b2dnbGVkLgo+ICAgKiBAY29ubmVj dG9yc19jaGFuZ2VkOiBjb25uZWN0b3JzIHRvIHRoaXMgY3J0YyBoYXZlIGJlZW4gdXBkYXRlZAo+ ICsgKiBAenBvc19jaGFuZ2VkOiB6cG9zIHZhbHVlcyBvZiBwbGFuZXMgb24gdGhpcyBjcnRjIGhh dmUgYmVlbiB1cGRhdGVkCj4gICAqIEBjb2xvcl9tZ210X2NoYW5nZWQ6IGNvbG9yIG1hbmFnZW1l bnQgcHJvcGVydGllcyBoYXZlIGNoYW5nZWQgKGRlZ2FtbWEgb3IKPiAgICoJZ2FtbWEgTFVUIG9y IENTQyBtYXRyaXgpCj4gICAqIEBwbGFuZV9tYXNrOiBiaXRtYXNrIG9mICgxIDw8IGRybV9wbGFu ZV9pbmRleChwbGFuZSkpIG9mIGF0dGFjaGVkIHBsYW5lcwo+IEBAIC0zNDQsNiArMzQ1LDcgQEAg c3RydWN0IGRybV9jcnRjX3N0YXRlIHsKPiAgCWJvb2wgbW9kZV9jaGFuZ2VkIDogMTsKPiAgCWJv b2wgYWN0aXZlX2NoYW5nZWQgOiAxOwo+ICAJYm9vbCBjb25uZWN0b3JzX2NoYW5nZWQgOiAxOwo+ ICsJYm9vbCB6cG9zX2NoYW5nZWQgOiAxOwo+ICAJYm9vbCBjb2xvcl9tZ210X2NoYW5nZWQgOiAx Owo+ICAKPiAgCS8qIGF0dGFjaGVkIHBsYW5lcyBiaXRtYXNrOgo+IEBAIC0xMzk2LDYgKzEzOTgs OSBAQCBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciB7Cj4gICAqIEBzcmNfdzogd2lkdGggb2YgdmlzaWJs ZSBwb3J0aW9uIG9mIHBsYW5lIChpbiAxNi4xNikKPiAgICogQHNyY19oOiBoZWlnaHQgb2Ygdmlz aWJsZSBwb3J0aW9uIG9mIHBsYW5lIChpbiAxNi4xNikKPiAgICogQHJvdGF0aW9uOiByb3RhdGlv biBvZiB0aGUgcGxhbmUKPiArICogQHpwb3M6IHByaW9yaXR5IG9mIHRoZSBnaXZlbiBwbGFuZSBv biBjcnRjIChvcHRpb25hbCkKPiArICogQG5vcm1hbGl6ZWRfenBvczogbm9ybWFsaXplZCB2YWx1 ZSBvZiB6cG9zOiB1bmlxdWUsIHJhbmdlIGZyb20gMCB0byBOLTEKPiArICoJIGZvciBnaXZlbiBj cnRjCj4gICAqIEBzdGF0ZTogYmFja3BvaW50ZXIgdG8gZ2xvYmFsIGRybV9hdG9taWNfc3RhdGUK PiAgICovCj4gIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgewo+IEBAIC0xNDE2LDYgKzE0MjEsMTAg QEAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSB7Cj4gIAkvKiBQbGFuZSByb3RhdGlvbiAqLwo+ICAJ dW5zaWduZWQgaW50IHJvdGF0aW9uOwo+ICAKPiArCS8qIFBsYW5lIHpwb3MgKi8KPiArCXVuc2ln bmVkIGludCB6cG9zOwo+ICsJdW5zaWduZWQgaW50IG5vcm1hbGl6ZWRfenBvczsKPiArCj4gIAlz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7Cj4gIH07Cj4gIAo+IEBAIC0xNjc1LDYgKzE2 ODQsNyBAQCBlbnVtIGRybV9wbGFuZV90eXBlIHsKPiAgICogQHByb3BlcnRpZXM6IHByb3BlcnR5 IHRyYWNraW5nIGZvciB0aGlzIHBsYW5lCj4gICAqIEB0eXBlOiB0eXBlIG9mIHBsYW5lIChvdmVy bGF5LCBwcmltYXJ5LCBjdXJzb3IpCj4gICAqIEBzdGF0ZTogY3VycmVudCBhdG9taWMgc3RhdGUg Zm9yIHRoaXMgcGxhbmUKPiArICogQHpwb3NfcHJvcGVydHk6IHpwb3MgcHJvcGVydHkgZm9yIHRo aXMgcGxhbmUKPiAgICogQGhlbHBlcl9wcml2YXRlOiBtaWQtbGF5ZXIgcHJpdmF0ZSBkYXRhCj4g ICAqLwo+ICBzdHJ1Y3QgZHJtX3BsYW5lIHsKPiBAQCAtMTcxNiw2ICsxNzI2LDggQEAgc3RydWN0 IGRybV9wbGFuZSB7Cj4gIAljb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2hlbHBlcl9mdW5jcyAqaGVs cGVyX3ByaXZhdGU7Cj4gIAo+ICAJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGU7Cj4gKwo+ ICsJc3RydWN0IGRybV9wcm9wZXJ0eSAqenBvc19wcm9wZXJ0eTsKPiAgfTsKPiAgCj4gIC8qKgo+ IEBAIC0yNzc0LDYgKzI3ODYsMjQgQEAgZXh0ZXJuIHZvaWQgZHJtX2NydGNfZW5hYmxlX2NvbG9y X21nbXQoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJCQkJICAgICAgIHVpbnQgZGVnYW1tYV9s dXRfc2l6ZSwKPiAgCQkJCSAgICAgICBib29sIGhhc19jdG0sCj4gIAkJCQkgICAgICAgdWludCBn YW1tYV9sdXRfc2l6ZSk7Cj4gKwo+ICtpbnQgZHJtX3BsYW5lX2F0b21pY19zZXRfenBvc19wcm9w ZXJ0eShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiArCQkJCSAgICAgICBzdHJ1Y3QgZHJtX3Bs YW5lX3N0YXRlICpzdGF0ZSwKPiArCQkJCSAgICAgICBzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9w ZXJ0eSwKPiArCQkJCSAgICAgICB1aW50NjRfdCB2YWwpOwo+ICsKPiAraW50IGRybV9wbGFuZV9h dG9taWNfZ2V0X3pwb3NfcHJvcGVydHkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gKwkJCQkg ICAgICAgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUsCj4gKwkJCQkgICAgICAg c3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHksCj4gKwkJCQkgICAgICAgdWludDY0X3QgKnZh bCk7Cj4gKwo+ICtpbnQgZHJtX3BsYW5lX2NyZWF0ZV96cG9zX3Byb3BlcnR5KHN0cnVjdCBkcm1f cGxhbmUgKnBsYW5lLAo+ICsJCQkJICAgdW5zaWduZWQgaW50IHpwb3MsCj4gKwkJCQkgICB1bnNp Z25lZCBpbnQgbWluLCB1bnNpZ25lZCBpbnQgbWF4KTsKPiArCj4gK2ludCBkcm1fcGxhbmVfY3Jl YXRlX3pwb3NfaW1tdXRhYmxlX3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICsJ CQkJCSAgICAgdW5zaWduZWQgaW50IHpwb3MpOwo+ICsKPiAgLyogSGVscGVycyAqLwo+ICBzdHJ1 Y3QgZHJtX21vZGVfb2JqZWN0ICpkcm1fbW9kZV9vYmplY3RfZmluZChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAo+ICAJCQkJCSAgICAgdWludDMyX3QgaWQsIHVpbnQzMl90IHR5cGUpOwo+IC0tIAo+ IDEuOS4xCgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1k ZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK