From mboxrd@z Thu Jan 1 00:00:00 1970 From: Benjamin Gaignard Subject: [PATCH v3 1/4] drm: add generic zpos property Date: Fri, 13 May 2016 09:15:24 +0200 Message-ID: <1463123727-28028-2-git-send-email-benjamin.gaignard@linaro.org> References: <1463123727-28028-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: In-Reply-To: <1463123727-28028-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: dri-devel@lists.freedesktop.org, linux-samsung-soc@vger.kernel.org, daniel@ffwll.ch Cc: Krzysztof Kozlowski , Bartlomiej Zolnierkiewicz , Seung-Woo Kim , fabien.dessenne@st.com, linaro-mm-sig@lists.linaro.org, Andrzej Hajda , Tobias Jakobi , Laurent Pinchart , Benjamin Gaignard , vincent.abriou@st.com, Marek Szyprowski List-Id: linux-samsung-soc@vger.kernel.org RnJvbTogTWFyZWsgU3p5cHJvd3NraSA8bS5zenlwcm93c2tpQHNhbXN1bmcuY29tPgoKVGhpcyBw YXRjaCBhZGRzIHN1cHBvcnQgZm9yIGdlbmVyaWMgcGxhbmUncyB6cG9zIHByb3BlcnR5IHByb3Bl cnR5IHdpdGgKd2VsbC1kZWZpbmVkIHNlbWFudGljczoKLSBhZGRlZCB6cG9zIHByb3BlcnRpZXMg dG8gcGxhbmUgYW5kIHBsYW5lIHN0YXRlIHN0cnVjdHVyZXMKLSBhZGRlZCBoZWxwZXJzIGZvciBu b3JtYWxpemluZyB6cG9zIHByb3BlcnRpZXMgb2YgZ2l2ZW4gc2V0IG9mIHBsYW5lcwotIHdlbGwg ZGVmaW5lZCBzZW1hbnRpY3M6IHBsYW5lcyBhcmUgc29ydGVkIGJ5IHpwb3MgdmFsdWVzIGFuZCB0 aGVuIHBsYW5lCiAgaWQgdmFsdWUgaWYgenBvcyBlcXVhbHMKCk5vcm1hbGl6ZWQgenBvcyB2YWx1 ZXMgYXJlIGNhbGN1bGF0ZWQgYXV0b21hdGljYWxseSB3aGVuIGdlbmVyaWMKbXV0dGFibGUgenBv cyBwcm9wZXJ0eSBoYXMgYmVlbiBpbml0aWFsaXplZC4gRHJpdmVycyBjYW4gc2ltcGx5IHVzZQpw bGFuZV9zdGF0ZS0+bm9ybWFsaXplZF96cG9zIGluIHRoZWlyIGF0b21pY19jaGVjayBhbmQvb3Ig cGxhbmVfdXBkYXRlCmNhbGxiYWNrcyB3aXRob3V0IGFueSBhZGRpdGlvbmFsIGNhbGxzIHRvIERS TSBjb3JlLgoKU2lnbmVkLW9mZi1ieTogTWFyZWsgU3p5cHJvd3NraSA8bS5zenlwcm93c2tpQHNh bXN1bmcuY29tPgoKQ29tcGFyZSB0byBNYXJlaydzIG9yaWdpbmFsIHBhdGNoIHpwb3MgcHJvcGVy dHkgaXMgbm93IHNwZWNpZmljIHRvIGVhY2gKcGxhbmUgYW5kIG5vIG1vcmUgdG8gdGhlIGNvcmUu Ck5vcm1hbGl6ZSBmdW5jdGlvbiB0YWtlIGNhcmUgb2YgdGhlIHJhbmdlIG9mIHBlciBwbGFuZSBk ZWZpbmVkIHJhbmdlCmJlZm9yZSBzZXQgbm9ybWFsaXplZF96cG9zLgoKU2lnbmVkLW9mZi1ieTog QmVuamFtaW4gR2FpZ25hcmQgPGJlbmphbWluLmdhaWduYXJkQGxpbmFyby5vcmc+CgpDYzogSW5r aSBEYWUgPGlua2kuZGFlQHNhbXN1bmcuY29tPgpDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsQGZm d2xsLmNoPgpDYzogVmlsbGUgU3lyamFsYSA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+ CkNjOiBKb29ueW91bmcgU2hpbSA8ankwOTIyLnNoaW1Ac2Ftc3VuZy5jb20+CkNjOiBTZXVuZy1X b28gS2ltIDxzdzAzMTIua2ltQHNhbXN1bmcuY29tPgpDYzogQW5kcnplaiBIYWpkYSA8YS5oYWpk YUBzYW1zdW5nLmNvbT4KQ2M6IEtyenlzenRvZiBLb3psb3dza2kgPGsua296bG93c2tpQHNhbXN1 bmcuY29tPgpDYzogQmFydGxvbWllaiBab2xuaWVya2lld2ljeiA8Yi56b2xuaWVya2llQHNhbXN1 bmcuY29tPgpDYzogVG9iaWFzIEpha29iaSA8dGpha29iaUBtYXRoLnVuaS1iaWVsZWZlbGQuZGU+ CkNjOiBHdXN0YXZvIFBhZG92YW4gPGd1c3Rhdm9AcGFkb3Zhbi5vcmc+CkNjOiB2aW5jZW50LmFi cmlvdUBzdC5jb20KQ2M6IGZhYmllbi5kZXNzZW5uZUBzdC5jb20KQ2M6IExhdXJlbnQgUGluY2hh cnQgPGxhdXJlbnQucGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4KLS0tCiBEb2N1bWVudGF0aW9u L0RvY0Jvb2svZ3B1LnRtcGwgICAgICB8ICAxMCArKwogZHJpdmVycy9ncHUvZHJtL01ha2VmaWxl ICAgICAgICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgICAgICAg IHwgICA0ICsKIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIHwgICA2ICsKIGRy aXZlcnMvZ3B1L2RybS9kcm1fYmxlbmQuYyAgICAgICAgIHwgMjI2ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2ludGVybmFsLmgg fCAgIDMgKwogaW5jbHVkZS9kcm0vZHJtX2NydGMuaCAgICAgICAgICAgICAgfCAgMjggKysrKysK IDcgZmlsZXMgY2hhbmdlZCwgMjc4IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vZHJtX2JsZW5kLmMKCmRpZmYgLS1naXQgYS9E b2N1bWVudGF0aW9uL0RvY0Jvb2svZ3B1LnRtcGwgYi9Eb2N1bWVudGF0aW9uL0RvY0Jvb2svZ3B1 LnRtcGwKaW5kZXggOWRkNDhmNy4uMGRmNmFiYiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9E b2NCb29rL2dwdS50bXBsCisrKyBiL0RvY3VtZW50YXRpb24vRG9jQm9vay9ncHUudG1wbApAQCAt MjE1MSw2ICsyMTUxLDE2IEBAIHZvaWQgaW50ZWxfY3J0X2luaXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKIAkJdGhlIHVuZGVybHlpbmcgaGFyZHdhcmUpLjwvdGQ+CiAJPC90cj4KIAk8dHI+CisJ PHRkIHZhbGlnbj0idG9wIiA+ICJ6cG9zIiA8L3RkPgorCTx0ZCB2YWxpZ249InRvcCIgPlJBTkdF PC90ZD4KKwk8dGQgdmFsaWduPSJ0b3AiID5NaW49IGRyaXZlciBkZXBlbmRlbnQsIE1heD0gZHJp dmVyIGRlcGVuZGVudDwvdGQ+CisJPHRkIHZhbGlnbj0idG9wIiA+UGxhbmU8L3RkPgorCTx0ZCB2 YWxpZ249InRvcCIgPlBsYW5lJ3MgJ3onIHBvc2l0aW9uIGR1cmluZyBibGVuZGluZyBvcGVyYXRp b24gKDAgZm9yIGJhY2tncm91bmQsIGhpZ2hlc3QgZm9yIGZyb250bW9zdCkuCisJCUlmIHR3byBw bGFuZXMgYXNzaWduZWQgdG8gc2FtZSBDUlRDIGhhdmUgZXF1YWwgenBvcyB2YWx1ZXMsIHRoZSBw bGFuZSB3aXRoIGhpZ2hlciBwbGFuZQorCQlpZCBpcyB0cmVhdGVkIGFzIGNsb3NlciB0byBmcm9u dC4gQ2FuIGJlIElNTVVUQUJMRSBpZiBkcml2ZXIgZG9lc24ndCBzdXBwb3J0IGNoYW5naW5nCisJ CXBsYW5lcycgb3JkZXIuIEV4YWN0IHZhbHVlIHJhbmdlIGlzIGRyaXZlciBkZXBlbmRlbnQuPC90 ZD4KKwk8L3RyPgorCTx0cj4KIAk8dGQgcm93c3Bhbj0iMjAiIHZhbGlnbj0idG9wIiA+aTkxNTwv dGQ+CiAJPHRkIHJvd3NwYW49IjIiIHZhbGlnbj0idG9wIiA+R2VuZXJpYzwvdGQ+CiAJPHRkIHZh bGlnbj0idG9wIiA+IkJyb2FkY2FzdCBSR0IiPC90ZD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQppbmRleCAyYmQzZTVhLi5k Zjg4MjUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUKKysrIGIvZHJpdmVy cy9ncHUvZHJtL01ha2VmaWxlCkBAIC0yLDcgKzIsNyBAQAogIyBNYWtlZmlsZSBmb3IgdGhlIGRy bSBkZXZpY2UgZHJpdmVyLiAgVGhpcyBkcml2ZXIgcHJvdmlkZXMgc3VwcG9ydCBmb3IgdGhlCiAj IERpcmVjdCBSZW5kZXJpbmcgSW5mcmFzdHJ1Y3R1cmUgKERSSSkgaW4gWEZyZWU4NiA0LjEuMCBh bmQgaGlnaGVyLgogCi1kcm0teSAgICAgICA6PQlkcm1fYXV0aC5vIGRybV9idWZzLm8gZHJtX2Nh Y2hlLm8gXAorZHJtLXkgICAgICAgOj0JZHJtX2F1dGgubyBkcm1fYnVmcy5vIGRybV9ibGVuZC5v IGRybV9jYWNoZS5vIFwKIAkJZHJtX2NvbnRleHQubyBkcm1fZG1hLm8gXAogCQlkcm1fZm9wcy5v IGRybV9nZW0ubyBkcm1faW9jdGwubyBkcm1faXJxLm8gXAogCQlkcm1fbG9jay5vIGRybV9tZW1v cnkubyBkcm1fZHJ2Lm8gZHJtX3ZtLm8gXApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKaW5kZXggODZlODlkYi4u YmQ0NTdjYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCkBAIC03MDAsNiArNzAwLDggQEAgaW50IGRybV9h dG9taWNfcGxhbmVfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQlzdGF0 ZS0+c3JjX2ggPSB2YWw7CiAJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWctPnJvdGF0aW9u X3Byb3BlcnR5KSB7CiAJCXN0YXRlLT5yb3RhdGlvbiA9IHZhbDsKKwl9IGVsc2UgaWYgKHByb3Bl cnR5ID09IHBsYW5lLT56cG9zX3Byb3BlcnR5KSB7CisJCXN0YXRlLT56cG9zID0gdmFsOwogCX0g ZWxzZSBpZiAocGxhbmUtPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5KSB7CiAJCXJldHVybiBw bGFuZS0+ZnVuY3MtPmF0b21pY19zZXRfcHJvcGVydHkocGxhbmUsIHN0YXRlLAogCQkJCXByb3Bl cnR5LCB2YWwpOwpAQCAtNzU2LDYgKzc1OCw4IEBAIGRybV9hdG9taWNfcGxhbmVfZ2V0X3Byb3Bl cnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQkqdmFsID0gc3RhdGUtPnNyY19oOwogCX0g ZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT5yb3RhdGlvbl9wcm9wZXJ0eSkgewogCQkqdmFs ID0gc3RhdGUtPnJvdGF0aW9uOworCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gcGxhbmUtPnpwb3Nf cHJvcGVydHkpIHsKKwkJKnZhbCA9IHN0YXRlLT56cG9zOwogCX0gZWxzZSBpZiAocGxhbmUtPmZ1 bmNzLT5hdG9taWNfZ2V0X3Byb3BlcnR5KSB7CiAJCXJldHVybiBwbGFuZS0+ZnVuY3MtPmF0b21p Y19nZXRfcHJvcGVydHkocGxhbmUsIHN0YXRlLCBwcm9wZXJ0eSwgdmFsKTsKIAl9IGVsc2Ugewpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwppbmRleCA5OTdmZDIxLi5mMTA2NTJmIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwpAQCAtMzIsNiArMzIsOCBAQAogI2luY2x1ZGUg PGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgogI2luY2x1ZGUgPGxpbnV4L2ZlbmNlLmg+CiAKKyNp bmNsdWRlICJkcm1fY3J0Y19pbnRlcm5hbC5oIgorCiAvKioKICAqIERPQzogb3ZlcnZpZXcKICAq CkBAIC01ODcsNiArNTg5LDEwIEBAIGRybV9hdG9taWNfaGVscGVyX2NoZWNrX3BsYW5lcyhzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAogCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRl OwogCWludCBpLCByZXQgPSAwOwogCisJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfbm9ybWFsaXpl X3pwb3MoZGV2LCBzdGF0ZSk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKwogCWZvcl9lYWNo X3BsYW5lX2luX3N0YXRlKHN0YXRlLCBwbGFuZSwgcGxhbmVfc3RhdGUsIGkpIHsKIAkJY29uc3Qg c3RydWN0IGRybV9wbGFuZV9oZWxwZXJfZnVuY3MgKmZ1bmNzOwogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vZHJtX2JsZW5kLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2JsZW5kLmMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY4MTA4ZgotLS0gL2Rldi9udWxsCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYmxlbmQuYwpAQCAtMCwwICsxLDIyNiBAQAorLyoKKyAq IENvcHlyaWdodCAoQykgMjAxNiBTYW1zdW5nIEVsZWN0cm9uaWNzIENvLkx0ZAorICogQXV0aG9y czoKKyAqCU1hcmVrIFN6eXByb3dza2kgPG0uc3p5cHJvd3NraUBzYW1zdW5nLmNvbT4KKyAqCisg KiBEUk0gY29yZSBwbGFuZSBibGVuZGluZyByZWxhdGVkIGZ1bmN0aW9ucworICoKKyAqIFBlcm1p c3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGRpc3RyaWJ1dGUsIGFuZCBzZWxsIHRoaXMgc29m dHdhcmUgYW5kIGl0cworICogZG9jdW1lbnRhdGlvbiBmb3IgYW55IHB1cnBvc2UgaXMgaGVyZWJ5 IGdyYW50ZWQgd2l0aG91dCBmZWUsIHByb3ZpZGVkIHRoYXQKKyAqIHRoZSBhYm92ZSBjb3B5cmln aHQgbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzIGFuZCB0aGF0IGJvdGggdGhhdCBjb3B5cmln aHQKKyAqIG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gc3VwcG9y dGluZyBkb2N1bWVudGF0aW9uLCBhbmQKKyAqIHRoYXQgdGhlIG5hbWUgb2YgdGhlIGNvcHlyaWdo dCBob2xkZXJzIG5vdCBiZSB1c2VkIGluIGFkdmVydGlzaW5nIG9yCisgKiBwdWJsaWNpdHkgcGVy dGFpbmluZyB0byBkaXN0cmlidXRpb24gb2YgdGhlIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMs CisgKiB3cml0dGVuIHByaW9yIHBlcm1pc3Npb24uICBUaGUgY29weXJpZ2h0IGhvbGRlcnMgbWFr ZSBubyByZXByZXNlbnRhdGlvbnMKKyAqIGFib3V0IHRoZSBzdWl0YWJpbGl0eSBvZiB0aGlzIHNv ZnR3YXJlIGZvciBhbnkgcHVycG9zZS4gIEl0IGlzIHByb3ZpZGVkICJhcworICogaXMiIHdpdGhv dXQgZXhwcmVzcyBvciBpbXBsaWVkIHdhcnJhbnR5LgorICoKKyAqIFRIRSBDT1BZUklHSFQgSE9M REVSUyBESVNDTEFJTSBBTEwgV0FSUkFOVElFUyBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJF LAorICogSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ IEFORCBGSVRORVNTLCBJTiBOTworICogRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVJT IEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIElORElSRUNUIE9SCisgKiBDT05TRVFVRU5USUFM IERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9G IFVTRSwKKyAqIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJB Q1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIKKyAqIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQg T0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UKKyAqIE9GIFRI SVMgU09GVFdBUkUuCisgKi8KKyNpbmNsdWRlIDxkcm0vZHJtUC5oPgorI2luY2x1ZGUgPGRybS9k cm1fYXRvbWljLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+CisjaW5jbHVkZSA8bGludXgv ZXhwb3J0Lmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3NvcnQu aD4KKworI2luY2x1ZGUgImRybV9pbnRlcm5hbC5oIgorCisvKioKKyAqIGRybV9wbGFuZV9jcmVh dGVfenBvc19wcm9wZXJ0eSAtIGNyZWF0ZSBtdXRhYmxlIHpwb3MgcHJvcGVydHkKKyAqIEBwbGFu ZTogZHJtIHBsYW5lCisgKiBAbWluOiBtaW5pbWFsIHBvc3NpYmxlIHZhbHVlIG9mIHpwb3MgcHJv cGVydHkKKyAqIEBtYXg6IG1heGltYWwgcG9zc2libGUgdmFsdWUgb2YgenBvcyBwcm9wZXJ0eQor ICoKKyAqIFRoaXMgZnVuY3Rpb24gaW5pdGlhbGl6ZXMgZ2VuZXJpYyBtdXRhYmxlIHpwb3MgcHJv cGVydHkgYW5kIGVuYWJsZXMgc3VwcG9ydAorICogZm9yIGl0IGluIGRybSBjb3JlLiBEcml2ZXJz IGNhbiB0aGVuIGF0dGFjaCB0aGlzIHByb3BlcnR5IHRvIHBsYW5lcyB0byBlbmFibGUKKyAqIHN1 cHBvcnQgZm9yIGNvbmZpZ3VyYWJsZSBwbGFuZXMgYXJyYW5nZW1lbnQgZHVyaW5nIGJsZW5kaW5n IG9wZXJhdGlvbi4KKyAqIE9uY2UgbXV0YWJsZSB6cG9zIHByb3BlcnR5IGhhcyBiZWVuIGVuYWJs ZWQsIHRoZSBEUk0gY29yZSB3aWxsIGF1dG9tYXRpY2FsbHkKKyAqIGNhbGN1bGF0ZSBkcm1fcGxh bmVfc3RhdGUtPm5vcm1hbGl6ZWRfenBvcyB2YWx1ZXMuIFVzdWFsbHkgbWluIHNob3VsZCBiZSBz ZXQKKyAqIHRvIDAgYW5kIG1heCB0byBtYXhpbWFsIG51bWJlciBvZiBwbGFuZXMgZm9yIGdpdmVu IGNydGMgLSAxLgorICoKKyAqIElmIHpwb3Mgb2Ygc29tZSBwbGFuZXMgY2Fubm90IGJlIGNoYW5n ZWQgKGxpa2UgZml4ZWQgYmFja2dyb3VuZCBvcgorICogY3Vyc29yL3RvcG1vc3QgcGxhbmVzKSwg ZHJpdmVyIHNob3VsZCBhZGp1c3QgbWluL21heCB2YWx1ZXMgYW5kIGFzc2lnbiB0aG9zZQorICog cGxhbmVzIGltbXV0YWJsZSB6cG9zIHByb3BlcnR5IHdpdGggbG93ZXIgb3IgaGlnaGVyIHZhbHVl cyAoZm9yIG1vcmUKKyAqIGluZm9ybWF0aW9uLCBzZWUgZHJtX21vZGVfY3JlYXRlX3pwb3NfaW1t dXRhYmxlX3Byb3BlcnR5KCkgZnVuY3Rpb24pLiBJbiBzdWNoCisgKiBjYXNlIGRyaXZlciBzaG91 bGQgYWxzbyBhc3NpZ24gcHJvcGVyIGluaXRpYWwgenBvcyB2YWx1ZXMgZm9yIGFsbCBwbGFuZXMg aW4KKyAqIGl0cyBwbGFuZV9yZXNldCgpIGNhbGxiYWNrLCBzbyB0aGUgcGxhbmVzIHdpbGwgYmUg YWx3YXlzIHNvcnRlZCBwcm9wZXJseS4KKyAqCisgKiBSZXR1cm5zOgorICogWmVybyBvbiBzdWNj ZXNzLCBuZWdhdGl2ZSBlcnJubyBvbiBmYWlsdXJlLgorICovCitpbnQgZHJtX3BsYW5lX2NyZWF0 ZV96cG9zX3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorCQkJCSAgIHVuc2lnbmVk IGludCBtaW4sIHVuc2lnbmVkIGludCBtYXgpCit7CisJc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJv cDsKKworCXByb3AgPSBkcm1fcHJvcGVydHlfY3JlYXRlX3JhbmdlKHBsYW5lLT5kZXYsIDAsICJ6 cG9zIiwgbWluLCBtYXgpOworCWlmICghcHJvcCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlkcm1f b2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmcGxhbmUtPmJhc2UsIHByb3AsIG1pbik7CisKKwlwbGFu ZS0+enBvc19wcm9wZXJ0eSA9IHByb3A7CisJcmV0dXJuIDA7Cit9CitFWFBPUlRfU1lNQk9MKGRy bV9wbGFuZV9jcmVhdGVfenBvc19wcm9wZXJ0eSk7CisKKy8qKgorICogZHJtX3BsYW5lX2NyZWF0 ZV96cG9zX2ltbXV0YWJsZV9wcm9wZXJ0eSAtIGNyZWF0ZSBpbW11dHRhYmxlIHpwb3MgcHJvcGVy dHkKKyAqIEBwbGFuZTogZHJtIHBsYW5lCisgKiBAbWluOiBtaW5pbWFsIHBvc3NpYmxlIHZhbHVl IG9mIHpwb3MgcHJvcGVydHkKKyAqIEBtYXg6IG1heGltYWwgcG9zc2libGUgdmFsdWUgb2YgenBv cyBwcm9wZXJ0eQorICoKKyAqIFRoaXMgZnVuY3Rpb24gaW5pdGlhbGl6ZXMgZ2VuZXJpYyBpbW11 dGFibGUgenBvcyBwcm9wZXJ0eSBhbmQgZW5hYmxlcworICogc3VwcG9ydCBmb3IgaXQgaW4gZHJt IGNvcmUuIFVzaW5nIHRoaXMgcHJvcGVydHkgZHJpdmVyIGxldHMgdXNlcnNwYWNlCisgKiB0byBn ZXQgdGhlIGFycmFuZ2VtZW50IG9mIHRoZSBwbGFuZXMgZm9yIGJsZW5kaW5nIG9wZXJhdGlvbiBh bmQgbm90aWZpZXMKKyAqIGl0IHRoYXQgdGhlIGhhcmR3YXJlIChvciBkcml2ZXIpIGRvZXNuJ3Qg c3VwcG9ydCBjaGFuZ2luZyBvZiB0aGUgcGxhbmVzJworICogb3JkZXIuCisgKgorICogUmV0dXJu czoKKyAqIFplcm8gb24gc3VjY2VzcywgbmVnYXRpdmUgZXJybm8gb24gZmFpbHVyZS4KKyAqLwor aW50IGRybV9wbGFuZV9jcmVhdGVfenBvc19pbW11dGFibGVfcHJvcGVydHkoc3RydWN0IGRybV9w bGFuZSAqcGxhbmUsCisJCQkJCSAgICAgdW5zaWduZWQgaW50IG1pbiwgdW5zaWduZWQgaW50IG1h eCkKK3sKKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wOworCisJcHJvcCA9IGRybV9wcm9wZXJ0 eV9jcmVhdGVfcmFuZ2UocGxhbmUtPmRldiwgRFJNX01PREVfUFJPUF9JTU1VVEFCTEUsCisJCQkJ CSAienBvcyIsIG1pbiwgbWF4KTsKKwlpZiAoIXByb3ApCisJCXJldHVybiAtRU5PTUVNOworCisJ ZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJnBsYW5lLT5iYXNlLCBwcm9wLCBtaW4pOworCisJ cGxhbmUtPnpwb3NfcHJvcGVydHkgPSBwcm9wOworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJP TChkcm1fcGxhbmVfY3JlYXRlX3pwb3NfaW1tdXRhYmxlX3Byb3BlcnR5KTsKKworc3RhdGljIGlu dCBkcm1fYXRvbWljX3N0YXRlX3pwb3NfY21wKGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIp Cit7CisJY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc2EgPSAqKHN0cnVjdCBkcm1fcGxh bmVfc3RhdGUgKiopYTsKKwljb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzYiA9ICooc3Ry dWN0IGRybV9wbGFuZV9zdGF0ZSAqKiliOworCisJaWYgKHNhLT56cG9zICE9IHNiLT56cG9zKQor CQlyZXR1cm4gc2EtPnpwb3MgLSBzYi0+enBvczsKKwllbHNlCisJCXJldHVybiBzYS0+cGxhbmUt PmJhc2UuaWQgLSBzYi0+cGxhbmUtPmJhc2UuaWQ7Cit9CisKKy8qKgorICogZHJtX2F0b21pY19o ZWxwZXJfY3J0Y19ub3JtYWxpemVfenBvcyAtIGNhbGN1bGF0ZSBub3JtYWxpemVkIHpwb3MgdmFs dWVzCisgKiBAY3J0YzogY3J0YyB3aXRoIHBsYW5lcywgd2hpY2ggaGF2ZSB0byBiZSBjb25zaWRl cmVkIGZvciBub3JtYWxpemF0aW9uCisgKiBAY3J0Y19zdGF0ZTogbmV3IGF0b21pYyBzdGF0ZSB0 byBhcHBseQorICoKKyAqIFRoaXMgZnVuY3Rpb24gY2hlY2tzIG5ldyBzdGF0ZXMgb2YgYWxsIHBs YW5lcyBhc3NpZ25lZCB0byBnaXZlbiBjcnRjIGFuZAorICogY2FsY3VsYXRlcyBub3JtYWxpemVk IHpwb3MgdmFsdWUgZm9yIHRoZW0uIFBsYW5lcyBhcmUgY29tcGFyZWQgZmlyc3QgYnkgdGhlaXIK KyAqIHpwb3MgdmFsdWVzLCB0aGVuIGJ5IHBsYW5lIGlkIChpZiB6cG9zIGVxdWFscykuIFBsYW5l IHdpdGggbG93ZXN0IHpwb3MgdmFsdWUKKyAqIGlzIGF0IHRoZSBib3R0b20uIFRoZSBwbGFuZV9z dGF0ZS0+bm9ybWFsaXplZF96cG9zIGlzIHRoZW4gZmlsbGVkIHdpdGggdW5pcXVlCisgKiB2YWx1 ZXMgZnJvbSAwIHRvIG51bWJlciBvZiBhY3RpdmUgcGxhbmVzIGluIGNydGMgbWludXMgb25lLgor ICoKKyAqIFJFVFVSTlMKKyAqIFplcm8gZm9yIHN1Y2Nlc3Mgb3IgLWVycm5vCisgKi8KK2ludCBk cm1fYXRvbWljX2hlbHBlcl9jcnRjX25vcm1hbGl6ZV96cG9zKHN0cnVjdCBkcm1fY3J0YyAqY3J0 YywKKwkJCQkJICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCit7CisJc3RydWN0 IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gY3J0Y19zdGF0ZS0+c3RhdGU7CisJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKKwlpbnQgdG90YWxfcGxhbmVzID0gZGV2LT5tb2Rl X2NvbmZpZy5udW1fdG90YWxfcGxhbmU7CisJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqKnN0YXRl czsKKwlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKKwlpbnQgaSwgbiA9IDA7CisJaW50IHJldCA9 IDA7CisKKwlEUk1fREVCVUdfQVRPTUlDKCJbQ1JUQzolZDolc10gY2FsY3VsYXRpbmcgbm9ybWFs aXplZCB6cG9zIHZhbHVlc1xuIiwKKwkJCSBjcnRjLT5iYXNlLmlkLCBjcnRjLT5uYW1lKTsKKwor CXN0YXRlcyA9IGttYWxsb2NfYXJyYXkodG90YWxfcGxhbmVzLCBzaXplb2YoKnN0YXRlcyksIEdG UF9URU1QT1JBUlkpOworCWlmICghc3RhdGVzKQorCQlyZXR1cm4gLUVOT01FTTsKKworCS8qCisJ ICogTm9ybWFsaXphdGlvbiBwcm9jZXNzIG1pZ2h0IGNyZWF0ZSBuZXcgc3RhdGVzIGZvciBwbGFu ZXMgd2hpY2gKKwkgKiBub3JtYWxpemVkX3pwb3MgaGFzIHRvIGJlIHJlY2FsY3VsYXRlZC4KKwkg Ki8KKwlkcm1fZm9yX2VhY2hfcGxhbmVfbWFzayhwbGFuZSwgZGV2LCBjcnRjX3N0YXRlLT5wbGFu ZV9tYXNrKSB7CisJCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlID0KKwkJCWRy bV9hdG9taWNfZ2V0X3BsYW5lX3N0YXRlKHN0YXRlLCBwbGFuZSk7CisJCWlmIChJU19FUlIocGxh bmVfc3RhdGUpKSB7CisJCQlyZXQgPSBQVFJfRVJSKHBsYW5lX3N0YXRlKTsKKwkJCWdvdG8gZG9u ZTsKKwkJfQorCQlzdGF0ZXNbbisrXSA9IHBsYW5lX3N0YXRlOworCQlEUk1fREVCVUdfQVRPTUlD KCJbUExBTkU6JWQ6JXNdIHByb2Nlc3NpbmcgenBvcyB2YWx1ZSAlZFxuIiwKKwkJCQkgcGxhbmUt PmJhc2UuaWQsIHBsYW5lLT5uYW1lLAorCQkJCSBwbGFuZV9zdGF0ZS0+enBvcyk7CisJfQorCisJ c29ydChzdGF0ZXMsIG4sIHNpemVvZigqc3RhdGVzKSwgZHJtX2F0b21pY19zdGF0ZV96cG9zX2Nt cCwgTlVMTCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7CisJCXBsYW5lID0gc3RhdGVz W2ldLT5wbGFuZTsKKwkJc3RhdGVzW2ldLT5ub3JtYWxpemVkX3pwb3MgPSBpOworCQlEUk1fREVC VUdfQVRPTUlDKCJbUExBTkU6JWQ6JXNdIG5vcm1hbGl6ZWQgenBvcyB2YWx1ZSAlZFxuIiwKKwkJ CQkgcGxhbmUtPmJhc2UuaWQsIHBsYW5lLT5uYW1lLCBpKTsKKwl9CisJY3J0Y19zdGF0ZS0+enBv c19jaGFuZ2VkID0gdHJ1ZTsKKworZG9uZToKKwlrZnJlZShzdGF0ZXMpOworCXJldHVybiByZXQ7 Cit9CitFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVyX2NydGNfbm9ybWFsaXplX3pwb3Mp OworCisvKioKKyAqIGRybV9hdG9taWNfaGVscGVyX25vcm1hbGl6ZV96cG9zIC0gY2FsY3VsYXRl IG5vcm1hbGl6ZWQgenBvcyB2YWx1ZXMgZm9yIGFsbAorICoJCQkJICAgICAgY3J0Y3MKKyAqIEBk ZXY6IERSTSBkZXZpY2UKKyAqIEBzdGF0ZTogYXRvbWljIHN0YXRlIG9mIERSTSBkZXZpY2UKKyAq CisgKiBUaGlzIGZ1bmN0aW9uIGNhbGN1bGF0ZXMgbm9ybWFsaXplZCB6cG9zIHZhbHVlIGZvciBh bGwgbW9kaWZpZWQgcGxhbmVzIGluCisgKiB0aGUgcHJvdmlkZWQgYXRvbWljIHN0YXRlIG9mIERS TSBkZXZpY2UuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUKKyAqIGRybV9hdG9taWNfaGVscGVy X2NydGNfbm9ybWFsaXplX3pwb3MoKSBmdW5jdGlvbi4KKyAqCisgKiBSRVRVUk5TCisgKiBaZXJv IGZvciBzdWNjZXNzIG9yIC1lcnJubworICovCitpbnQgZHJtX2F0b21pY19oZWxwZXJfbm9ybWFs aXplX3pwb3Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCQkgICAgIHN0cnVjdCBkcm1fYXRv bWljX3N0YXRlICpzdGF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7CisJc3RydWN0IGRy bV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOworCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOworCXN0 cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlOworCWludCBpLCByZXQgPSAwOworCisJ Zm9yX2VhY2hfcGxhbmVfaW5fc3RhdGUoc3RhdGUsIHBsYW5lLCBwbGFuZV9zdGF0ZSwgaSkgewor CQljcnRjID0gcGxhbmVfc3RhdGUtPmNydGM7CisJCWlmICghY3J0YykKKwkJCWNvbnRpbnVlOwor CQlpZiAocGxhbmUtPnN0YXRlLT56cG9zICE9IHBsYW5lX3N0YXRlLT56cG9zKSB7CisJCQljcnRj X3N0YXRlID0KKwkJCQlkcm1fYXRvbWljX2dldF9leGlzdGluZ19jcnRjX3N0YXRlKHN0YXRlLCBj cnRjKTsKKwkJCWNydGNfc3RhdGUtPnpwb3NfY2hhbmdlZCA9IHRydWU7CisJCX0KKwl9CisKKwlm b3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7CisJCWlm IChjcnRjX3N0YXRlLT5wbGFuZV9tYXNrICE9IGNydGMtPnN0YXRlLT5wbGFuZV9tYXNrIHx8CisJ CSAgICBjcnRjX3N0YXRlLT56cG9zX2NoYW5nZWQpIHsKKwkJCXJldCA9IGRybV9hdG9taWNfaGVs cGVyX2NydGNfbm9ybWFsaXplX3pwb3MoY3J0YywKKwkJCQkJCQkJICAgIGNydGNfc3RhdGUpOwor CQkJaWYgKHJldCkKKwkJCQlyZXR1cm4gcmV0OworCQl9CisJfQorCXJldHVybiAwOworfQorRVhQ T1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9ub3JtYWxpemVfenBvcyk7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaW50ZXJuYWwuaCBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fY3J0Y19pbnRlcm5hbC5oCmluZGV4IGE3OGMxMzguLjM3ZDkwNjggMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19pbnRlcm5hbC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fY3J0Y19pbnRlcm5hbC5oCkBAIC00MiwzICs0Miw2IEBAIGludCBkcm1fYXRvbWljX2dldF9w cm9wZXJ0eShzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0ICpvYmosCiBpbnQgZHJtX21vZGVfYXRvbWlj X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkgIHZvaWQgKmRhdGEsIHN0cnVjdCBk cm1fZmlsZSAqZmlsZV9wcml2KTsKIAorLyogZHJtX2JsZW5kLmMgKi8KK2ludCBkcm1fYXRvbWlj X2hlbHBlcl9ub3JtYWxpemVfenBvcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJCSAgICAg c3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJt L2RybV9jcnRjLmggYi9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCmluZGV4IGQxNTU5Y2QuLjkyMWM5 M2YgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKKysrIGIvaW5jbHVkZS9kcm0v ZHJtX2NydGMuaApAQCAtMzA1LDYgKzMwNSw3IEBAIHN0cnVjdCBkcm1fcGxhbmVfaGVscGVyX2Z1 bmNzOwogICogQG1vZGVfY2hhbmdlZDogY3J0Y19zdGF0ZS0+bW9kZSBvciBjcnRjX3N0YXRlLT5l bmFibGUgaGFzIGJlZW4gY2hhbmdlZAogICogQGFjdGl2ZV9jaGFuZ2VkOiBjcnRjX3N0YXRlLT5h Y3RpdmUgaGFzIGJlZW4gdG9nZ2xlZC4KICAqIEBjb25uZWN0b3JzX2NoYW5nZWQ6IGNvbm5lY3Rv cnMgdG8gdGhpcyBjcnRjIGhhdmUgYmVlbiB1cGRhdGVkCisgKiBAenBvc19jaGFuZ2VkOiB6cG9z IHZhbHVlcyBvZiBwbGFuZXMgb24gdGhpcyBjcnRjIGhhdmUgYmVlbiB1cGRhdGVkCiAgKiBAY29s b3JfbWdtdF9jaGFuZ2VkOiBjb2xvciBtYW5hZ2VtZW50IHByb3BlcnRpZXMgaGF2ZSBjaGFuZ2Vk IChkZWdhbW1hIG9yCiAgKglnYW1tYSBMVVQgb3IgQ1NDIG1hdHJpeCkKICAqIEBwbGFuZV9tYXNr OiBiaXRtYXNrIG9mICgxIDw8IGRybV9wbGFuZV9pbmRleChwbGFuZSkpIG9mIGF0dGFjaGVkIHBs YW5lcwpAQCAtMzQwLDYgKzM0MSw3IEBAIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSB7CiAJYm9vbCBt b2RlX2NoYW5nZWQgOiAxOwogCWJvb2wgYWN0aXZlX2NoYW5nZWQgOiAxOwogCWJvb2wgY29ubmVj dG9yc19jaGFuZ2VkIDogMTsKKwlib29sIHpwb3NfY2hhbmdlZCA6IDE7CiAJYm9vbCBjb2xvcl9t Z210X2NoYW5nZWQgOiAxOwogCiAJLyogYXR0YWNoZWQgcGxhbmVzIGJpdG1hc2s6CkBAIC0xMjYz LDYgKzEyNjUsOSBAQCBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciB7CiAgKglwbGFuZSAoaW4gMTYuMTYp CiAgKiBAc3JjX3c6IHdpZHRoIG9mIHZpc2libGUgcG9ydGlvbiBvZiBwbGFuZSAoaW4gMTYuMTYp CiAgKiBAc3JjX2g6IGhlaWdodCBvZiB2aXNpYmxlIHBvcnRpb24gb2YgcGxhbmUgKGluIDE2LjE2 KQorICogQHpwb3M6IHByaW9yaXR5IG9mIHRoZSBnaXZlbiBwbGFuZSBvbiBjcnRjIChvcHRpb25h bCkKKyAqIEBub3JtYWxpemVkX3pwb3M6IG5vcm1hbGl6ZWQgdmFsdWUgb2YgenBvczogdW5pcXVl LCByYW5nZSBmcm9tIDAgdG8gTi0xCisgKgkgZm9yIGdpdmVuIGNydGMKICAqIEBzdGF0ZTogYmFj a3BvaW50ZXIgdG8gZ2xvYmFsIGRybV9hdG9taWNfc3RhdGUKICAqLwogc3RydWN0IGRybV9wbGFu ZV9zdGF0ZSB7CkBAIC0xMjgzLDYgKzEyODgsMTAgQEAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSB7 CiAJLyogUGxhbmUgcm90YXRpb24gKi8KIAl1bnNpZ25lZCBpbnQgcm90YXRpb247CiAKKwkvKiBQ bGFuZSB6cG9zICovCisJdW5zaWduZWQgaW50IHpwb3M7CisJdW5zaWduZWQgaW50IG5vcm1hbGl6 ZWRfenBvczsKKwogCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKIH07CiAKQEAgLTE1 MTYsNiArMTUyNSw3IEBAIGVudW0gZHJtX3BsYW5lX3R5cGUgewogICogQHByb3BlcnRpZXM6IHBy b3BlcnR5IHRyYWNraW5nIGZvciB0aGlzIHBsYW5lCiAgKiBAdHlwZTogdHlwZSBvZiBwbGFuZSAo b3ZlcmxheSwgcHJpbWFyeSwgY3Vyc29yKQogICogQHN0YXRlOiBjdXJyZW50IGF0b21pYyBzdGF0 ZSBmb3IgdGhpcyBwbGFuZQorICogQHpwb3NfcHJvcGVydHk6IHpwb3MgcHJvcGVydHkgZm9yIHRo aXMgcGxhbmUKICAqLwogc3RydWN0IGRybV9wbGFuZSB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRl djsKQEAgLTE1NDYsNiArMTU1Niw4IEBAIHN0cnVjdCBkcm1fcGxhbmUgewogCWNvbnN0IHN0cnVj dCBkcm1fcGxhbmVfaGVscGVyX2Z1bmNzICpoZWxwZXJfcHJpdmF0ZTsKIAogCXN0cnVjdCBkcm1f cGxhbmVfc3RhdGUgKnN0YXRlOworCisJc3RydWN0IGRybV9wcm9wZXJ0eSAqenBvc19wcm9wZXJ0 eTsKIH07CiAKIC8qKgpAQCAtMjU1NCw2ICsyNTY2LDIyIEBAIGV4dGVybiBzdHJ1Y3QgZHJtX3By b3BlcnR5ICpkcm1fbW9kZV9jcmVhdGVfcm90YXRpb25fcHJvcGVydHkoc3RydWN0IGRybV9kZXZp Y2UKIGV4dGVybiB1bnNpZ25lZCBpbnQgZHJtX3JvdGF0aW9uX3NpbXBsaWZ5KHVuc2lnbmVkIGlu dCByb3RhdGlvbiwKIAkJCQkJICB1bnNpZ25lZCBpbnQgc3VwcG9ydGVkX3JvdGF0aW9ucyk7CiAK K2ludCBkcm1fcGxhbmVfYXRvbWljX3NldF96cG9zX3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lLAorCQkJCSAgICAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSwKKwkJCQkg ICAgICAgc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHksCisJCQkJICAgICAgIHVpbnQ2NF90 IHZhbCk7CisKK2ludCBkcm1fcGxhbmVfYXRvbWljX2dldF96cG9zX3Byb3BlcnR5KHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lLAorCQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRl ICpzdGF0ZSwKKwkJCQkgICAgICAgc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHksCisJCQkJ ICAgICAgIHVpbnQ2NF90ICp2YWwpOworCitpbnQgZHJtX3BsYW5lX2NyZWF0ZV96cG9zX3Byb3Bl cnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorCQkJCSAgIHVuc2lnbmVkIGludCBtaW4sIHVu c2lnbmVkIGludCBtYXgpOworaW50IGRybV9wbGFuZV9jcmVhdGVfenBvc19pbW11dGFibGVfcHJv cGVydHkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCisJCQkJCSAgICAgdW5zaWduZWQgaW50IG1p biwKKwkJCQkJICAgICB1bnNpZ25lZCBpbnQgbWF4KTsKKwogLyogSGVscGVycyAqLwogCiBzdGF0 aWMgaW5saW5lIHN0cnVjdCBkcm1fcGxhbmUgKmRybV9wbGFuZV9maW5kKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCi0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVsCg==