From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 1/4] drm: add generic zpos property Date: Thu, 12 May 2016 15:36:07 +0200 Message-ID: <20160512133607.GW27098@phenom.ffwll.local> References: <1463048902-9388-1-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: <1463048902-9388-1-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 , dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, Andrzej Hajda , Tobias Jakobi , fabien.dessenne@st.com, vincent.abriou@st.com, Marek Szyprowski List-Id: linux-samsung-soc@vger.kernel.org T24gVGh1LCBNYXkgMTIsIDIwMTYgYXQgMTI6Mjg6MTlQTSArMDIwMCwgQmVuamFtaW4gR2FpZ25h cmQgd3JvdGU6Cj4gRnJvbTogTWFyZWsgU3p5cHJvd3NraSA8bS5zenlwcm93c2tpQHNhbXN1bmcu Y29tPgo+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+CgpXaGVuIHJlc2VuZGluZyB5b3UgbXVzdCBoYXZlIGEgY2hhbmdlbG9nIHNvbWV3aGVy ZS4gQXQgZWxhc3QgaW4gdGhlIGNvdmVyCmxldHRlciwgYmV0dGVyIGlzIHBlci1wYXRjaC4gT3Ro ZXJ3aXNlIHJldmlld2VycyBuZWVkIHRvIGRpZyBvdXQgdGhlIG9sZAp0aHJlYWRzIGFuZCBjb21w YXJlIHRoZW1zZWx2ZXMuCi1EYW5pZWwKCj4gLS0tCj4gIERvY3VtZW50YXRpb24vRG9jQm9vay9n cHUudG1wbCAgICAgIHwgIDEwICsrCj4gIGRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZSAgICAgICAg ICAgIHwgICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgICAgICAgIHwgICA0 ICsKPiAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgfCAgIDYgKwo+ICBkcml2 ZXJzL2dwdS9kcm0vZHJtX2JsZW5kLmMgICAgICAgICB8IDIyOSArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2ludGVybmFsLmgg fCAgIDMgKwo+ICBpbmNsdWRlL2RybS9kcm1fY3J0Yy5oICAgICAgICAgICAgICB8ICAyOCArKysr Kwo+ICA3IGZpbGVzIGNoYW5nZWQsIDI4MSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4g IGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vZHJtX2JsZW5kLmMKPiAKPiBkaWZm IC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9Eb2NCb29rL2dwdS50bXBsIGIvRG9jdW1lbnRhdGlvbi9E b2NCb29rL2dwdS50bXBsCj4gaW5kZXggOWRkNDhmNy4uMGRmNmFiYiAxMDA2NDQKPiAtLS0gYS9E b2N1bWVudGF0aW9uL0RvY0Jvb2svZ3B1LnRtcGwKPiArKysgYi9Eb2N1bWVudGF0aW9uL0RvY0Jv b2svZ3B1LnRtcGwKPiBAQCAtMjE1MSw2ICsyMTUxLDE2IEBAIHZvaWQgaW50ZWxfY3J0X2luaXQo c3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCQl0aGUgdW5kZXJseWluZyBoYXJkd2FyZSkuPC90 ZD4KPiAgCTwvdHI+Cj4gIAk8dHI+Cj4gKwk8dGQgdmFsaWduPSJ0b3AiID4gInpwb3MiIDwvdGQ+ Cj4gKwk8dGQgdmFsaWduPSJ0b3AiID5SQU5HRTwvdGQ+Cj4gKwk8dGQgdmFsaWduPSJ0b3AiID5N aW49IGRyaXZlciBkZXBlbmRlbnQsIE1heD0gZHJpdmVyIGRlcGVuZGVudDwvdGQ+Cj4gKwk8dGQg dmFsaWduPSJ0b3AiID5QbGFuZTwvdGQ+Cj4gKwk8dGQgdmFsaWduPSJ0b3AiID5QbGFuZSdzICd6 JyBwb3NpdGlvbiBkdXJpbmcgYmxlbmRpbmcgb3BlcmF0aW9uICgwIGZvciBiYWNrZ3JvdW5kLCBo aWdoZXN0IGZvciBmcm9udG1vc3QpLgo+ICsJCUlmIHR3byBwbGFuZXMgYXNzaWduZWQgdG8gc2Ft ZSBDUlRDIGhhdmUgZXF1YWwgenBvcyB2YWx1ZXMsIHRoZSBwbGFuZSB3aXRoIGhpZ2hlciBwbGFu ZQo+ICsJCWlkIGlzIHRyZWF0ZWQgYXMgY2xvc2VyIHRvIGZyb250LiBDYW4gYmUgSU1NVVRBQkxF IGlmIGRyaXZlciBkb2Vzbid0IHN1cHBvcnQgY2hhbmdpbmcKPiArCQlwbGFuZXMnIG9yZGVyLiBF eGFjdCB2YWx1ZSByYW5nZSBpcyBkcml2ZXIgZGVwZW5kZW50LjwvdGQ+Cj4gKwk8L3RyPgo+ICsJ PHRyPgo+ICAJPHRkIHJvd3NwYW49IjIwIiB2YWxpZ249InRvcCIgPmk5MTU8L3RkPgo+ICAJPHRk IHJvd3NwYW49IjIiIHZhbGlnbj0idG9wIiA+R2VuZXJpYzwvdGQ+Cj4gIAk8dGQgdmFsaWduPSJ0 b3AiID4iQnJvYWRjYXN0IFJHQiI8L3RkPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v TWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUKPiBpbmRleCAyYmQzZTVhLi5kZjg4 MjUzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9NYWtlZmlsZQo+IEBAIC0yLDcgKzIsNyBAQAo+ICAjIE1ha2VmaWxlIGZvciB0 aGUgZHJtIGRldmljZSBkcml2ZXIuICBUaGlzIGRyaXZlciBwcm92aWRlcyBzdXBwb3J0IGZvciB0 aGUKPiAgIyBEaXJlY3QgUmVuZGVyaW5nIEluZnJhc3RydWN0dXJlIChEUkkpIGluIFhGcmVlODYg NC4xLjAgYW5kIGhpZ2hlci4KPiAgCj4gLWRybS15ICAgICAgIDo9CWRybV9hdXRoLm8gZHJtX2J1 ZnMubyBkcm1fY2FjaGUubyBcCj4gK2RybS15ICAgICAgIDo9CWRybV9hdXRoLm8gZHJtX2J1ZnMu byBkcm1fYmxlbmQubyBkcm1fY2FjaGUubyBcCj4gIAkJZHJtX2NvbnRleHQubyBkcm1fZG1hLm8g XAo+ICAJCWRybV9mb3BzLm8gZHJtX2dlbS5vIGRybV9pb2N0bC5vIGRybV9pcnEubyBcCj4gIAkJ ZHJtX2xvY2subyBkcm1fbWVtb3J5Lm8gZHJtX2Rydi5vIGRybV92bS5vIFwKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRv bWljLmMKPiBpbmRleCA4NmU4OWRiLi5iZDQ1N2NhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1fYXRvbWljLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCj4g QEAgLTcwMCw2ICs3MDAsOCBAQCBpbnQgZHJtX2F0b21pY19wbGFuZV9zZXRfcHJvcGVydHkoc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAkJc3RhdGUtPnNyY19oID0gdmFsOwo+ICAJfSBlbHNl IGlmIChwcm9wZXJ0eSA9PSBjb25maWctPnJvdGF0aW9uX3Byb3BlcnR5KSB7Cj4gIAkJc3RhdGUt PnJvdGF0aW9uID0gdmFsOwo+ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBwbGFuZS0+enBvc19w cm9wZXJ0eSkgewo+ICsJCXN0YXRlLT56cG9zID0gdmFsOwo+ICAJfSBlbHNlIGlmIChwbGFuZS0+ ZnVuY3MtPmF0b21pY19zZXRfcHJvcGVydHkpIHsKPiAgCQlyZXR1cm4gcGxhbmUtPmZ1bmNzLT5h dG9taWNfc2V0X3Byb3BlcnR5KHBsYW5lLCBzdGF0ZSwKPiAgCQkJCXByb3BlcnR5LCB2YWwpOwo+ IEBAIC03NTYsNiArNzU4LDggQEAgZHJtX2F0b21pY19wbGFuZV9nZXRfcHJvcGVydHkoc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUsCj4gIAkJKnZhbCA9IHN0YXRlLT5zcmNfaDsKPiAgCX0gZWxzZSBp ZiAocHJvcGVydHkgPT0gY29uZmlnLT5yb3RhdGlvbl9wcm9wZXJ0eSkgewo+ICAJCSp2YWwgPSBz dGF0ZS0+cm90YXRpb247Cj4gKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IHBsYW5lLT56cG9zX3By b3BlcnR5KSB7Cj4gKwkJKnZhbCA9IHN0YXRlLT56cG9zOwo+ICAJfSBlbHNlIGlmIChwbGFuZS0+ ZnVuY3MtPmF0b21pY19nZXRfcHJvcGVydHkpIHsKPiAgCQlyZXR1cm4gcGxhbmUtPmZ1bmNzLT5h dG9taWNfZ2V0X3Byb3BlcnR5KHBsYW5lLCBzdGF0ZSwgcHJvcGVydHksIHZhbCk7Cj4gIAl9IGVs c2Ugewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyBi L2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4gaW5kZXggOTk3ZmQyMS4uZjEw NjUyZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4gQEAgLTMyLDYgKzMy LDggQEAKPiAgI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgo+ICAjaW5jbHVkZSA8 bGludXgvZmVuY2UuaD4KPiAgCj4gKyNpbmNsdWRlICJkcm1fY3J0Y19pbnRlcm5hbC5oIgo+ICsK PiAgLyoqCj4gICAqIERPQzogb3ZlcnZpZXcKPiAgICoKPiBAQCAtNTg3LDYgKzU4OSwxMCBAQCBk cm1fYXRvbWljX2hlbHBlcl9jaGVja19wbGFuZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAg CXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlOwo+ICAJaW50IGksIHJldCA9IDA7 Cj4gIAo+ICsJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfbm9ybWFsaXplX3pwb3MoZGV2LCBzdGF0 ZSk7Cj4gKwlpZiAocmV0KQo+ICsJCXJldHVybiByZXQ7Cj4gKwo+ICAJZm9yX2VhY2hfcGxhbmVf aW5fc3RhdGUoc3RhdGUsIHBsYW5lLCBwbGFuZV9zdGF0ZSwgaSkgewo+ICAJCWNvbnN0IHN0cnVj dCBkcm1fcGxhbmVfaGVscGVyX2Z1bmNzICpmdW5jczsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9kcm1fYmxlbmQuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYmxlbmQuYwo+IG5l dyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4uZWVmNTliYgo+IC0tLSAvZGV2L251 bGwKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2JsZW5kLmMKPiBAQCAtMCwwICsxLDIyOSBA QAo+ICsvKgo+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMTYgU2Ftc3VuZyBFbGVjdHJvbmljcyBDby5M dGQKPiArICogQXV0aG9yczoKPiArICoJTWFyZWsgU3p5cHJvd3NraSA8bS5zenlwcm93c2tpQHNh bXN1bmcuY29tPgo+ICsgKgo+ICsgKiBEUk0gY29yZSBwbGFuZSBibGVuZGluZyByZWxhdGVkIGZ1 bmN0aW9ucwo+ICsgKgo+ICsgKiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBkaXN0 cmlidXRlLCBhbmQgc2VsbCB0aGlzIHNvZnR3YXJlIGFuZCBpdHMKPiArICogZG9jdW1lbnRhdGlv biBmb3IgYW55IHB1cnBvc2UgaXMgaGVyZWJ5IGdyYW50ZWQgd2l0aG91dCBmZWUsIHByb3ZpZGVk IHRoYXQKPiArICogdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3Bp ZXMgYW5kIHRoYXQgYm90aCB0aGF0IGNvcHlyaWdodAo+ICsgKiBub3RpY2UgYW5kIHRoaXMgcGVy bWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIHN1cHBvcnRpbmcgZG9jdW1lbnRhdGlvbiwgYW5kCj4g KyAqIHRoYXQgdGhlIG5hbWUgb2YgdGhlIGNvcHlyaWdodCBob2xkZXJzIG5vdCBiZSB1c2VkIGlu IGFkdmVydGlzaW5nIG9yCj4gKyAqIHB1YmxpY2l0eSBwZXJ0YWluaW5nIHRvIGRpc3RyaWJ1dGlv biBvZiB0aGUgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYywKPiArICogd3JpdHRlbiBwcmlvciBw ZXJtaXNzaW9uLiAgVGhlIGNvcHlyaWdodCBob2xkZXJzIG1ha2Ugbm8gcmVwcmVzZW50YXRpb25z Cj4gKyAqIGFib3V0IHRoZSBzdWl0YWJpbGl0eSBvZiB0aGlzIHNvZnR3YXJlIGZvciBhbnkgcHVy cG9zZS4gIEl0IGlzIHByb3ZpZGVkICJhcwo+ICsgKiBpcyIgd2l0aG91dCBleHByZXNzIG9yIGlt cGxpZWQgd2FycmFudHkuCj4gKyAqCj4gKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSUyBESVNDTEFJ TSBBTEwgV0FSUkFOVElFUyBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFLAo+ICsgKiBJTkNM VURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F U1MsIElOIE5PCj4gKyAqIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFC TEUgRk9SIEFOWSBTUEVDSUFMLCBJTkRJUkVDVCBPUgo+ICsgKiBDT05TRVFVRU5USUFMIERBTUFH RVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwK PiArICogREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwg TkVHTElHRU5DRSBPUiBPVEhFUgo+ICsgKiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9G IE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFCj4gKyAqIE9GIFRI SVMgU09GVFdBUkUuCj4gKyAqLwo+ICsjaW5jbHVkZSA8ZHJtL2RybVAuaD4KPiArI2luY2x1ZGUg PGRybS9kcm1fYXRvbWljLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX2NydGMuaD4KPiArI2luY2x1 ZGUgPGxpbnV4L2V4cG9ydC5oPgo+ICsjaW5jbHVkZSA8bGludXgvc2xhYi5oPgo+ICsjaW5jbHVk ZSA8bGludXgvc29ydC5oPgo+ICsKPiArI2luY2x1ZGUgImRybV9pbnRlcm5hbC5oIgo+ICsKPiAr LyoqCj4gKyAqIGRybV9wbGFuZV9jcmVhdGVfenBvc19wcm9wZXJ0eSAtIGNyZWF0ZSBtdXRhYmxl IHpwb3MgcHJvcGVydHkKPiArICogQHBsYW5lOiBkcm0gcGxhbmUKPiArICogQG1pbjogbWluaW1h bCBwb3NzaWJsZSB2YWx1ZSBvZiB6cG9zIHByb3BlcnR5Cj4gKyAqIEBtYXg6IG1heGltYWwgcG9z c2libGUgdmFsdWUgb2YgenBvcyBwcm9wZXJ0eQo+ICsgKgo+ICsgKiBUaGlzIGZ1bmN0aW9uIGlu aXRpYWxpemVzIGdlbmVyaWMgbXV0YWJsZSB6cG9zIHByb3BlcnR5IGFuZCBlbmFibGVzIHN1cHBv cnQKPiArICogZm9yIGl0IGluIGRybSBjb3JlLiBEcml2ZXJzIGNhbiB0aGVuIGF0dGFjaCB0aGlz IHByb3BlcnR5IHRvIHBsYW5lcyB0byBlbmFibGUKPiArICogc3VwcG9ydCBmb3IgY29uZmlndXJh YmxlIHBsYW5lcyBhcnJhbmdlbWVudCBkdXJpbmcgYmxlbmRpbmcgb3BlcmF0aW9uLgo+ICsgKiBP bmNlIG11dGFibGUgenBvcyBwcm9wZXJ0eSBoYXMgYmVlbiBlbmFibGVkLCB0aGUgRFJNIGNvcmUg d2lsbCBhdXRvbWF0aWNhbGx5Cj4gKyAqIGNhbGN1bGF0ZSBkcm1fcGxhbmVfc3RhdGUtPm5vcm1h bGl6ZWRfenBvcyB2YWx1ZXMuIFVzdWFsbHkgbWluIHNob3VsZCBiZSBzZXQKPiArICogdG8gMCBh bmQgbWF4IHRvIG1heGltYWwgbnVtYmVyIG9mIHBsYW5lcyBmb3IgZ2l2ZW4gY3J0YyAtIDEuCj4g KyAqCj4gKyAqIElmIHpwb3Mgb2Ygc29tZSBwbGFuZXMgY2Fubm90IGJlIGNoYW5nZWQgKGxpa2Ug Zml4ZWQgYmFja2dyb3VuZCBvcgo+ICsgKiBjdXJzb3IvdG9wbW9zdCBwbGFuZXMpLCBkcml2ZXIg c2hvdWxkIGFkanVzdCBtaW4vbWF4IHZhbHVlcyBhbmQgYXNzaWduIHRob3NlCj4gKyAqIHBsYW5l cyBpbW11dGFibGUgenBvcyBwcm9wZXJ0eSB3aXRoIGxvd2VyIG9yIGhpZ2hlciB2YWx1ZXMgKGZv ciBtb3JlCj4gKyAqIGluZm9ybWF0aW9uLCBzZWUgZHJtX21vZGVfY3JlYXRlX3pwb3NfaW1tdXRh YmxlX3Byb3BlcnR5KCkgZnVuY3Rpb24pLiBJbiBzdWNoCj4gKyAqIGNhc2UgZHJpdmVyIHNob3Vs ZCBhbHNvIGFzc2lnbiBwcm9wZXIgaW5pdGlhbCB6cG9zIHZhbHVlcyBmb3IgYWxsIHBsYW5lcyBp bgo+ICsgKiBpdHMgcGxhbmVfcmVzZXQoKSBjYWxsYmFjaywgc28gdGhlIHBsYW5lcyB3aWxsIGJl IGFsd2F5cyBzb3J0ZWQgcHJvcGVybHkuCj4gKyAqCj4gKyAqIFJldHVybnM6Cj4gKyAqIFplcm8g b24gc3VjY2VzcywgbmVnYXRpdmUgZXJybm8gb24gZmFpbHVyZS4KPiArICovCj4gK2ludCBkcm1f cGxhbmVfY3JlYXRlX3pwb3NfcHJvcGVydHkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gKwkJ CQkgICB1bnNpZ25lZCBpbnQgbWluLCB1bnNpZ25lZCBpbnQgbWF4KQo+ICt7Cj4gKwlzdHJ1Y3Qg ZHJtX3Byb3BlcnR5ICpwcm9wOwo+ICsKPiArCXByb3AgPSBkcm1fcHJvcGVydHlfY3JlYXRlX3Jh bmdlKHBsYW5lLT5kZXYsIDAsICJ6cG9zIiwgbWluLCBtYXgpOwo+ICsJaWYgKCFwcm9wKQo+ICsJ CXJldHVybiAtRU5PTUVNOwo+ICsKPiArCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZwbGFu ZS0+YmFzZSwgcHJvcCwgbWluKTsKPiArCj4gKwlwbGFuZS0+enBvc19wcm9wZXJ0eSA9IHByb3A7 Cj4gKwlyZXR1cm4gMDsKPiArfQo+ICtFWFBPUlRfU1lNQk9MKGRybV9wbGFuZV9jcmVhdGVfenBv c19wcm9wZXJ0eSk7Cj4gKwo+ICsvKioKPiArICogZHJtX3BsYW5lX2NyZWF0ZV96cG9zX2ltbXV0 YWJsZV9wcm9wZXJ0eSAtIGNyZWF0ZSBpbW11dHRhYmxlIHpwb3MgcHJvcGVydHkKPiArICogQHBs YW5lOiBkcm0gcGxhbmUKPiArICogQG1pbjogbWluaW1hbCBwb3NzaWJsZSB2YWx1ZSBvZiB6cG9z IHByb3BlcnR5Cj4gKyAqIEBtYXg6IG1heGltYWwgcG9zc2libGUgdmFsdWUgb2YgenBvcyBwcm9w ZXJ0eQo+ICsgKgo+ICsgKiBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIGdlbmVyaWMgaW1tdXRh YmxlIHpwb3MgcHJvcGVydHkgYW5kIGVuYWJsZXMKPiArICogc3VwcG9ydCBmb3IgaXQgaW4gZHJt IGNvcmUuIFVzaW5nIHRoaXMgcHJvcGVydHkgZHJpdmVyIGxldHMgdXNlcnNwYWNlCj4gKyAqIHRv IGdldCB0aGUgYXJyYW5nZW1lbnQgb2YgdGhlIHBsYW5lcyBmb3IgYmxlbmRpbmcgb3BlcmF0aW9u IGFuZCBub3RpZmllcwo+ICsgKiBpdCB0aGF0IHRoZSBoYXJkd2FyZSAob3IgZHJpdmVyKSBkb2Vz bid0IHN1cHBvcnQgY2hhbmdpbmcgb2YgdGhlIHBsYW5lcycKPiArICogb3JkZXIuCj4gKyAqCj4g KyAqIFJldHVybnM6Cj4gKyAqIFplcm8gb24gc3VjY2VzcywgbmVnYXRpdmUgZXJybm8gb24gZmFp bHVyZS4KPiArICovCj4gK2ludCBkcm1fcGxhbmVfY3JlYXRlX3pwb3NfaW1tdXRhYmxlX3Byb3Bl cnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICsJCQkJCSAgICAgdW5zaWduZWQgaW50IG1p biwgdW5zaWduZWQgaW50IG1heCkKPiArewo+ICsJc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcDsK PiArCj4gKwlwcm9wID0gZHJtX3Byb3BlcnR5X2NyZWF0ZV9yYW5nZShwbGFuZS0+ZGV2LCBEUk1f TU9ERV9QUk9QX0lNTVVUQUJMRSwKPiArCQkJCQkgInpwb3MiLCBtaW4sIG1heCk7Cj4gKwlpZiAo IXByb3ApCj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gKwo+ICsJZHJtX29iamVjdF9hdHRhY2hfcHJv cGVydHkoJnBsYW5lLT5iYXNlLCBwcm9wLCBtaW4pOwo+ICsKPiArCXBsYW5lLT56cG9zX3Byb3Bl cnR5ID0gcHJvcDsKPiArCXJldHVybiAwOwo+ICt9Cj4gK0VYUE9SVF9TWU1CT0woZHJtX3BsYW5l X2NyZWF0ZV96cG9zX2ltbXV0YWJsZV9wcm9wZXJ0eSk7Cj4gKwo+ICtzdGF0aWMgaW50IGRybV9h dG9taWNfc3RhdGVfenBvc19jbXAoY29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAqYikKPiArewo+ ICsJY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc2EgPSAqKHN0cnVjdCBkcm1fcGxhbmVf c3RhdGUgKiopYTsKPiArCWNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnNiID0gKihzdHJ1 Y3QgZHJtX3BsYW5lX3N0YXRlICoqKWI7Cj4gKwo+ICsJaWYgKHNhLT56cG9zICE9IHNiLT56cG9z KQo+ICsJCXJldHVybiBzYS0+enBvcyAtIHNiLT56cG9zOwo+ICsJZWxzZQo+ICsJCXJldHVybiBz YS0+cGxhbmUtPmJhc2UuaWQgLSBzYi0+cGxhbmUtPmJhc2UuaWQ7Cj4gK30KPiArCj4gKy8qKgo+ ICsgKiBkcm1fYXRvbWljX2hlbHBlcl9jcnRjX25vcm1hbGl6ZV96cG9zIC0gY2FsY3VsYXRlIG5v cm1hbGl6ZWQgenBvcyB2YWx1ZXMKPiArICogQGNydGM6IGNydGMgd2l0aCBwbGFuZXMsIHdoaWNo IGhhdmUgdG8gYmUgY29uc2lkZXJlZCBmb3Igbm9ybWFsaXphdGlvbgo+ICsgKiBAY3J0Y19zdGF0 ZTogbmV3IGF0b21pYyBzdGF0ZSB0byBhcHBseQo+ICsgKgo+ICsgKiBUaGlzIGZ1bmN0aW9uIGNo ZWNrcyBuZXcgc3RhdGVzIG9mIGFsbCBwbGFuZXMgYXNzaWduZWQgdG8gZ2l2ZW4gY3J0YyBhbmQK PiArICogY2FsY3VsYXRlcyBub3JtYWxpemVkIHpwb3MgdmFsdWUgZm9yIHRoZW0uIFBsYW5lcyBh cmUgY29tcGFyZWQgZmlyc3QgYnkgdGhlaXIKPiArICogenBvcyB2YWx1ZXMsIHRoZW4gYnkgcGxh bmUgaWQgKGlmIHpwb3MgZXF1YWxzKS4gUGxhbmUgd2l0aCBsb3dlc3QgenBvcyB2YWx1ZQo+ICsg KiBpcyBhdCB0aGUgYm90dG9tLiBUaGUgcGxhbmVfc3RhdGUtPm5vcm1hbGl6ZWRfenBvcyBpcyB0 aGVuIGZpbGxlZCB3aXRoIHVuaXF1ZQo+ICsgKiB2YWx1ZXMgZnJvbSAwIHRvIG51bWJlciBvZiBh Y3RpdmUgcGxhbmVzIGluIGNydGMgbWludXMgb25lLgo+ICsgKgo+ICsgKiBSRVRVUk5TCj4gKyAq IFplcm8gZm9yIHN1Y2Nlc3Mgb3IgLWVycm5vCj4gKyAqLwo+ICtpbnQgZHJtX2F0b21pY19oZWxw ZXJfY3J0Y19ub3JtYWxpemVfenBvcyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gKwkJCQkJICBz dHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gK3sKPiArCXN0cnVjdCBkcm1fYXRv bWljX3N0YXRlICpzdGF0ZSA9IGNydGNfc3RhdGUtPnN0YXRlOwo+ICsJc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGNydGMtPmRldjsKPiArCWludCB0b3RhbF9wbGFuZXMgPSBkZXYtPm1vZGVfY29u ZmlnLm51bV90b3RhbF9wbGFuZTsKPiArCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKipzdGF0ZXM7 Cj4gKwlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKPiArCWludCBpLCB6cG9zLCBuID0gMDsKPiAr CWludCByZXQgPSAwOwo+ICsKPiArCURSTV9ERUJVR19BVE9NSUMoIltDUlRDOiVkOiVzXSBjYWxj dWxhdGluZyBub3JtYWxpemVkIHpwb3MgdmFsdWVzXG4iLAo+ICsJCQkgY3J0Yy0+YmFzZS5pZCwg Y3J0Yy0+bmFtZSk7Cj4gKwo+ICsJc3RhdGVzID0ga21hbGxvYyh0b3RhbF9wbGFuZXMgKiBzaXpl b2YoKnN0YXRlcyksIEdGUF9LRVJORUwpOwo+ICsJaWYgKCFzdGF0ZXMpCj4gKwkJcmV0dXJuIC1F Tk9NRU07Cj4gKwo+ICsJLyoKPiArCSAqIE5vcm1hbGl6YXRpb24gcHJvY2VzcyBtaWdodCBjcmVh dGUgbmV3IHN0YXRlcyBmb3IgcGxhbmVzIHdoaWNoCj4gKwkgKiBub3JtYWxpemVkX3pwb3MgaGFz IHRvIGJlIHJlY2FsY3VsYXRlZC4KPiArCSAqLwo+ICsJZHJtX2Zvcl9lYWNoX3BsYW5lX21hc2so cGxhbmUsIGRldiwgY3J0Y19zdGF0ZS0+cGxhbmVfbWFzaykgewo+ICsJCXN0cnVjdCBkcm1fcGxh bmVfc3RhdGUgKnBsYW5lX3N0YXRlID0KPiArCQkJZHJtX2F0b21pY19nZXRfcGxhbmVfc3RhdGUo c3RhdGUsIHBsYW5lKTsKPiArCQlpZiAoSVNfRVJSKHBsYW5lX3N0YXRlKSkgewo+ICsJCQlyZXQg PSBQVFJfRVJSKHBsYW5lX3N0YXRlKTsKPiArCQkJZ290byBkb25lOwo+ICsJCX0KPiArCQlzdGF0 ZXNbbisrXSA9IHBsYW5lX3N0YXRlOwo+ICsJCURSTV9ERUJVR19BVE9NSUMoIltQTEFORTolZDol c10gcHJvY2Vzc2luZyB6cG9zIHZhbHVlICVkXG4iLAo+ICsJCQkJIHBsYW5lLT5iYXNlLmlkLCBw bGFuZS0+bmFtZSwKPiArCQkJCSBwbGFuZV9zdGF0ZS0+enBvcyk7Cj4gKwl9Cj4gKwo+ICsJc29y dChzdGF0ZXMsIG4sIHNpemVvZigqc3RhdGVzKSwgZHJtX2F0b21pY19zdGF0ZV96cG9zX2NtcCwg TlVMTCk7Cj4gKwo+ICsJZm9yIChpID0gMCwgenBvcyA9IDA7IGkgPCBuOyBpKyssIHpwb3MrKykg ewo+ICsJCXBsYW5lID0gc3RhdGVzW2ldLT5wbGFuZTsKPiArCj4gKwkJenBvcyA9IG1heF90KGlu dCwgenBvcywgc3RhdGVzW2ldLT56cG9zKTsKPiArCj4gKwkJc3RhdGVzW2ldLT5ub3JtYWxpemVk X3pwb3MgPSB6cG9zOwo+ICsJCURSTV9ERUJVR19BVE9NSUMoIltQTEFORTolZDolc10gbm9ybWFs aXplZCB6cG9zIHZhbHVlICVkXG4iLAo+ICsJCQkJIHBsYW5lLT5iYXNlLmlkLCBwbGFuZS0+bmFt ZSwgenBvcyk7Cj4gKwl9Cj4gKwljcnRjX3N0YXRlLT56cG9zX2NoYW5nZWQgPSB0cnVlOwo+ICsK PiArZG9uZToKPiArCWtmcmVlKHN0YXRlcyk7Cj4gKwlyZXR1cm4gcmV0Owo+ICt9Cj4gK0VYUE9S VF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJfY3J0Y19ub3JtYWxpemVfenBvcyk7Cj4gKwo+ICsv KioKPiArICogZHJtX2F0b21pY19oZWxwZXJfbm9ybWFsaXplX3pwb3MgLSBjYWxjdWxhdGUgbm9y bWFsaXplZCB6cG9zIHZhbHVlcyBmb3IgYWxsCj4gKyAqCQkJCSAgICAgIGNydGNzCj4gKyAqIEBk ZXY6IERSTSBkZXZpY2UKPiArICogQHN0YXRlOiBhdG9taWMgc3RhdGUgb2YgRFJNIGRldmljZQo+ ICsgKgo+ICsgKiBUaGlzIGZ1bmN0aW9uIGNhbGN1bGF0ZXMgbm9ybWFsaXplZCB6cG9zIHZhbHVl IGZvciBhbGwgbW9kaWZpZWQgcGxhbmVzIGluCj4gKyAqIHRoZSBwcm92aWRlZCBhdG9taWMgc3Rh dGUgb2YgRFJNIGRldmljZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZQo+ICsgKiBkcm1fYXRv bWljX2hlbHBlcl9jcnRjX25vcm1hbGl6ZV96cG9zKCkgZnVuY3Rpb24uCj4gKyAqCj4gKyAqIFJF VFVSTlMKPiArICogWmVybyBmb3Igc3VjY2VzcyBvciAtZXJybm8KPiArICovCj4gK2ludCBkcm1f YXRvbWljX2hlbHBlcl9ub3JtYWxpemVfenBvcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICsJ CQkJICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gK3sKPiArCXN0cnVjdCBk cm1fY3J0YyAqY3J0YzsKPiArCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKPiAr CXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwo+ICsJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxh bmVfc3RhdGU7Cj4gKwlpbnQgaSwgcmV0ID0gMDsKPiArCj4gKwlmb3JfZWFjaF9wbGFuZV9pbl9z dGF0ZShzdGF0ZSwgcGxhbmUsIHBsYW5lX3N0YXRlLCBpKSB7Cj4gKwkJY3J0YyA9IHBsYW5lX3N0 YXRlLT5jcnRjOwo+ICsJCWlmICghY3J0YykKPiArCQkJY29udGludWU7Cj4gKwkJaWYgKHBsYW5l LT5zdGF0ZS0+enBvcyAhPSBwbGFuZV9zdGF0ZS0+enBvcykgewo+ICsJCQljcnRjX3N0YXRlID0K PiArCQkJCWRybV9hdG9taWNfZ2V0X2V4aXN0aW5nX2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOwo+ ICsJCQljcnRjX3N0YXRlLT56cG9zX2NoYW5nZWQgPSB0cnVlOwo+ICsJCX0KPiArCX0KPiArCj4g Kwlmb3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7Cj4g KwkJaWYgKGNydGNfc3RhdGUtPnBsYW5lX21hc2sgIT0gY3J0Yy0+c3RhdGUtPnBsYW5lX21hc2sg fHwKPiArCQkgICAgY3J0Y19zdGF0ZS0+enBvc19jaGFuZ2VkKSB7Cj4gKwkJCXJldCA9IGRybV9h dG9taWNfaGVscGVyX2NydGNfbm9ybWFsaXplX3pwb3MoY3J0YywKPiArCQkJCQkJCQkgICAgY3J0 Y19zdGF0ZSk7Cj4gKwkJCWlmIChyZXQpCj4gKwkJCQlyZXR1cm4gcmV0Owo+ICsJCX0KPiArCX0K PiArCXJldHVybiAwOwo+ICt9Cj4gK0VYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJfbm9y bWFsaXplX3pwb3MpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaW50 ZXJuYWwuaCBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19pbnRlcm5hbC5oCj4gaW5kZXggYTc4 YzEzOC4uMzdkOTA2OCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaW50 ZXJuYWwuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19pbnRlcm5hbC5oCj4gQEAg LTQyLDMgKzQyLDYgQEAgaW50IGRybV9hdG9taWNfZ2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fbW9k ZV9vYmplY3QgKm9iaiwKPiAgaW50IGRybV9tb2RlX2F0b21pY19pb2N0bChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAo+ICAJCQkgIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2 KTsKPiAgCj4gKy8qIGRybV9ibGVuZC5jICovCj4gK2ludCBkcm1fYXRvbWljX2hlbHBlcl9ub3Jt YWxpemVfenBvcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICsJCQkJICAgICBzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZSAqc3RhdGUpOwo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fY3J0 Yy5oIGIvaW5jbHVkZS9kcm0vZHJtX2NydGMuaAo+IGluZGV4IGQxNTU5Y2QuLjkyMWM5M2YgMTAw NjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2NydGMuaAo+ICsrKyBiL2luY2x1ZGUvZHJtL2Ry bV9jcnRjLmgKPiBAQCAtMzA1LDYgKzMwNSw3IEBAIHN0cnVjdCBkcm1fcGxhbmVfaGVscGVyX2Z1 bmNzOwo+ICAgKiBAbW9kZV9jaGFuZ2VkOiBjcnRjX3N0YXRlLT5tb2RlIG9yIGNydGNfc3RhdGUt PmVuYWJsZSBoYXMgYmVlbiBjaGFuZ2VkCj4gICAqIEBhY3RpdmVfY2hhbmdlZDogY3J0Y19zdGF0 ZS0+YWN0aXZlIGhhcyBiZWVuIHRvZ2dsZWQuCj4gICAqIEBjb25uZWN0b3JzX2NoYW5nZWQ6IGNv bm5lY3RvcnMgdG8gdGhpcyBjcnRjIGhhdmUgYmVlbiB1cGRhdGVkCj4gKyAqIEB6cG9zX2NoYW5n ZWQ6IHpwb3MgdmFsdWVzIG9mIHBsYW5lcyBvbiB0aGlzIGNydGMgaGF2ZSBiZWVuIHVwZGF0ZWQK PiAgICogQGNvbG9yX21nbXRfY2hhbmdlZDogY29sb3IgbWFuYWdlbWVudCBwcm9wZXJ0aWVzIGhh dmUgY2hhbmdlZCAoZGVnYW1tYSBvcgo+ICAgKglnYW1tYSBMVVQgb3IgQ1NDIG1hdHJpeCkKPiAg ICogQHBsYW5lX21hc2s6IGJpdG1hc2sgb2YgKDEgPDwgZHJtX3BsYW5lX2luZGV4KHBsYW5lKSkg b2YgYXR0YWNoZWQgcGxhbmVzCj4gQEAgLTM0MCw2ICszNDEsNyBAQCBzdHJ1Y3QgZHJtX2NydGNf c3RhdGUgewo+ICAJYm9vbCBtb2RlX2NoYW5nZWQgOiAxOwo+ICAJYm9vbCBhY3RpdmVfY2hhbmdl ZCA6IDE7Cj4gIAlib29sIGNvbm5lY3RvcnNfY2hhbmdlZCA6IDE7Cj4gKwlib29sIHpwb3NfY2hh bmdlZCA6IDE7Cj4gIAlib29sIGNvbG9yX21nbXRfY2hhbmdlZCA6IDE7Cj4gIAo+ICAJLyogYXR0 YWNoZWQgcGxhbmVzIGJpdG1hc2s6Cj4gQEAgLTEyNjMsNiArMTI2NSw5IEBAIHN0cnVjdCBkcm1f Y29ubmVjdG9yIHsKPiAgICoJcGxhbmUgKGluIDE2LjE2KQo+ICAgKiBAc3JjX3c6IHdpZHRoIG9m IHZpc2libGUgcG9ydGlvbiBvZiBwbGFuZSAoaW4gMTYuMTYpCj4gICAqIEBzcmNfaDogaGVpZ2h0 IG9mIHZpc2libGUgcG9ydGlvbiBvZiBwbGFuZSAoaW4gMTYuMTYpCj4gKyAqIEB6cG9zOiBwcmlv cml0eSBvZiB0aGUgZ2l2ZW4gcGxhbmUgb24gY3J0YyAob3B0aW9uYWwpCj4gKyAqIEBub3JtYWxp emVkX3pwb3M6IG5vcm1hbGl6ZWQgdmFsdWUgb2YgenBvczogdW5pcXVlLCByYW5nZSBmcm9tIDAg dG8gTi0xCj4gKyAqCSBmb3IgZ2l2ZW4gY3J0Ywo+ICAgKiBAc3RhdGU6IGJhY2twb2ludGVyIHRv IGdsb2JhbCBkcm1fYXRvbWljX3N0YXRlCj4gICAqLwo+ICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRl IHsKPiBAQCAtMTI4Myw2ICsxMjg4LDEwIEBAIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgewo+ICAJ LyogUGxhbmUgcm90YXRpb24gKi8KPiAgCXVuc2lnbmVkIGludCByb3RhdGlvbjsKPiAgCj4gKwkv KiBQbGFuZSB6cG9zICovCj4gKwl1bnNpZ25lZCBpbnQgenBvczsKPiArCXVuc2lnbmVkIGludCBu b3JtYWxpemVkX3pwb3M7Cj4gKwo+ICAJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlOwo+ ICB9Owo+ICAKPiBAQCAtMTUxNiw2ICsxNTI1LDcgQEAgZW51bSBkcm1fcGxhbmVfdHlwZSB7Cj4g ICAqIEBwcm9wZXJ0aWVzOiBwcm9wZXJ0eSB0cmFja2luZyBmb3IgdGhpcyBwbGFuZQo+ICAgKiBA dHlwZTogdHlwZSBvZiBwbGFuZSAob3ZlcmxheSwgcHJpbWFyeSwgY3Vyc29yKQo+ICAgKiBAc3Rh dGU6IGN1cnJlbnQgYXRvbWljIHN0YXRlIGZvciB0aGlzIHBsYW5lCj4gKyAqIEB6cG9zX3Byb3Bl cnR5OiB6cG9zIHByb3BlcnR5IGZvciB0aGlzIHBsYW5lCj4gICAqLwo+ICBzdHJ1Y3QgZHJtX3Bs YW5lIHsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXY7Cj4gQEAgLTE1NDYsNiArMTU1Niw4IEBA IHN0cnVjdCBkcm1fcGxhbmUgewo+ICAJY29uc3Qgc3RydWN0IGRybV9wbGFuZV9oZWxwZXJfZnVu Y3MgKmhlbHBlcl9wcml2YXRlOwo+ICAKPiAgCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRl Owo+ICsKPiArCXN0cnVjdCBkcm1fcHJvcGVydHkgKnpwb3NfcHJvcGVydHk7Cj4gIH07Cj4gIAo+ ICAvKioKPiBAQCAtMjU1NCw2ICsyNTY2LDIyIEBAIGV4dGVybiBzdHJ1Y3QgZHJtX3Byb3BlcnR5 ICpkcm1fbW9kZV9jcmVhdGVfcm90YXRpb25fcHJvcGVydHkoc3RydWN0IGRybV9kZXZpY2UKPiAg ZXh0ZXJuIHVuc2lnbmVkIGludCBkcm1fcm90YXRpb25fc2ltcGxpZnkodW5zaWduZWQgaW50IHJv dGF0aW9uLAo+ICAJCQkJCSAgdW5zaWduZWQgaW50IHN1cHBvcnRlZF9yb3RhdGlvbnMpOwo+ICAK PiAraW50IGRybV9wbGFuZV9hdG9taWNfc2V0X3pwb3NfcHJvcGVydHkoc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUsCj4gKwkJCQkgICAgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUsCj4g KwkJCQkgICAgICAgc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHksCj4gKwkJCQkgICAgICAg dWludDY0X3QgdmFsKTsKPiArCj4gK2ludCBkcm1fcGxhbmVfYXRvbWljX2dldF96cG9zX3Byb3Bl cnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICsJCQkJICAgICAgIGNvbnN0IHN0cnVjdCBk cm1fcGxhbmVfc3RhdGUgKnN0YXRlLAo+ICsJCQkJICAgICAgIHN0cnVjdCBkcm1fcHJvcGVydHkg KnByb3BlcnR5LAo+ICsJCQkJICAgICAgIHVpbnQ2NF90ICp2YWwpOwo+ICsKPiAraW50IGRybV9w bGFuZV9jcmVhdGVfenBvc19wcm9wZXJ0eShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiArCQkJ CSAgIHVuc2lnbmVkIGludCBtaW4sIHVuc2lnbmVkIGludCBtYXgpOwo+ICtpbnQgZHJtX3BsYW5l X2NyZWF0ZV96cG9zX2ltbXV0YWJsZV9wcm9wZXJ0eShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwK PiArCQkJCQkgICAgIHVuc2lnbmVkIGludCBtaW4sCj4gKwkJCQkJICAgICB1bnNpZ25lZCBpbnQg bWF4KTsKPiArCj4gIC8qIEhlbHBlcnMgKi8KPiAgCj4gIHN0YXRpYyBpbmxpbmUgc3RydWN0IGRy bV9wbGFuZSAqZHJtX3BsYW5lX2ZpbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAtLSAKPiAx LjkuMQo+IAoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBv cmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2RyaS1kZXZlbAo=