From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [PATCH v3 07/37] drm/i915: support creating LMEM objects Date: Fri, 9 Aug 2019 23:26:13 +0100 Message-ID: <20190809222643.23142-8-matthew.auld@intel.com> References: <20190809222643.23142-1-matthew.auld@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190809222643.23142-1-matthew.auld@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org V2UgY3VycmVudGx5IGRlZmluZSBMTUVNLCBvciBsb2NhbCBtZW1vcnksIGFzIGp1c3QgYW5vdGhl ciBtZW1vcnkKcmVnaW9uLCBsaWtlIHN5c3RlbSBtZW1vcnkgb3Igc3RvbGVuLCB3aGljaCB3ZSBj YW4gZXhwb3NlIHRvIHVzZXJzcGFjZQphbmQgY2FuIGJlIG1hcHBlZCB0byB0aGUgQ1BVIHZpYSBz b21lIEJBUi4KClNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgQXVsZCA8bWF0dGhldy5hdWxkQGludGVs LmNvbT4KQ2M6IEpvb25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNv bT4KQ2M6IEFiZGllbCBKYW51bGd1ZSA8YWJkaWVsLmphbnVsZ3VlQGxpbnV4LmludGVsLmNvbT4K LS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgMiAr CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fbG1lbS5jICAgICAgfCAzMSArKysr KysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9sbWVtLmggICAgICB8 IDIzICsrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAg ICAgIHwgIDUgKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JlZ2lvbl9sbWVtLmMgICAg ICB8IDQ4ICsrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jl Z2lvbl9sbWVtLmggICAgICB8IDExICsrKysrCiAuLi4vZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVf bGl2ZV9zZWxmdGVzdHMuaCAgfCAgMSArCiAuLi4vZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX21l bW9yeV9yZWdpb24uYyAgfCA0NSArKysrKysrKysrKysrKysrKwogOCBmaWxlcyBjaGFuZ2VkLCAx NjYgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2dlbS9pOTE1X2dlbV9sbWVtLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0v aTkxNS9nZW0vaTkxNV9nZW1fbG1lbS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmVnaW9uX2xtZW0uYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3JlZ2lvbl9sbWVtLmgKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCmluZGV4 IGU5Y2Y4NzY5NmJkZS4uMTczOTRmZDBjN2Y4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQpAQCAtMTEy LDYgKzExMiw3IEBAIGdlbS15ICs9IFwKIAlnZW0vaTkxNV9nZW1faW50ZXJuYWwubyBcCiAJZ2Vt L2k5MTVfZ2VtX29iamVjdC5vIFwKIAlnZW0vaTkxNV9nZW1fb2JqZWN0X2JsdC5vIFwKKwlnZW0v aTkxNV9nZW1fbG1lbS5vIFwKIAlnZW0vaTkxNV9nZW1fbW1hbi5vIFwKIAlnZW0vaTkxNV9nZW1f cGFnZXMubyBcCiAJZ2VtL2k5MTVfZ2VtX3BoeXMubyBcCkBAIC0xNDAsNiArMTQxLDcgQEAgaTkx NS15ICs9IFwKIAkgIGk5MTVfc2NoZWR1bGVyLm8gXAogCSAgaTkxNV90cmFjZV9wb2ludHMubyBc CiAJICBpOTE1X3ZtYS5vIFwKKwkgIGludGVsX3JlZ2lvbl9sbWVtLm8gXAogCSAgaW50ZWxfd29w Y20ubwogCiAjIGdlbmVyYWwtcHVycG9zZSBtaWNyb2NvbnRyb2xsZXIgKEd1Qykgc3VwcG9ydApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2xtZW0uYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9sbWVtLmMKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hYzVhMTVkYjFkMjcKLS0tIC9kZXYvbnVsbAorKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fbG1lbS5jCkBAIC0wLDAgKzEsMzEgQEAK Ky8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAx OSBJbnRlbCBDb3Jwb3JhdGlvbgorICovCisKKyNpbmNsdWRlICJpbnRlbF9tZW1vcnlfcmVnaW9u LmgiCisjaW5jbHVkZSAiZ2VtL2k5MTVfZ2VtX3JlZ2lvbi5oIgorI2luY2x1ZGUgImdlbS9pOTE1 X2dlbV9sbWVtLmgiCisjaW5jbHVkZSAiaTkxNV9kcnYuaCIKKworY29uc3Qgc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3Rfb3BzIGk5MTVfZ2VtX2xtZW1fb2JqX29wcyA9IHsKKwkuZ2V0X3BhZ2Vz ID0gaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlc19idWRkeSwKKwkucHV0X3BhZ2VzID0gaTkxNV9n ZW1fb2JqZWN0X3B1dF9wYWdlc19idWRkeSwKKwkucmVsZWFzZSA9IGk5MTVfZ2VtX29iamVjdF9y ZWxlYXNlX21lbW9yeV9yZWdpb24sCit9OworCitib29sIGk5MTVfZ2VtX29iamVjdF9pc19sbWVt KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCit7CisJc3RydWN0IGludGVsX21lbW9y eV9yZWdpb24gKnJlZ2lvbiA9IG9iai0+bW0ucmVnaW9uOworCisJcmV0dXJuIHJlZ2lvbiAmJiBy ZWdpb24tPnR5cGUgPT0gSU5URUxfTE1FTTsKK30KKworc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKgoraTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9sbWVtKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1LAorCQkJICAgIHJlc291cmNlX3NpemVfdCBzaXplLAorCQkJICAgIHVuc2lnbmVkIGlu dCBmbGFncykKK3sKKwlyZXR1cm4gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9yZWdpb24oaTkxNS0+ cmVnaW9uc1tJTlRFTF9NRU1PUllfTE1FTV0sCisJCQkJCSAgICAgc2l6ZSwgZmxhZ3MpOworfQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2xtZW0uaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9sbWVtLmgKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lYmMxNWZlMjRmNTgKLS0tIC9kZXYvbnVsbAorKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fbG1lbS5oCkBAIC0wLDAgKzEsMjMgQEAK Ky8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8KKy8qCisgKiBDb3B5cmlnaHQgwqkg MjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICovCisKKyNpZm5kZWYgX19JOTE1X0dFTV9MTUVNX0gK KyNkZWZpbmUgX19JOTE1X0dFTV9MTUVNX0gKKworI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisK K3N0cnVjdCBkcm1faTkxNV9wcml2YXRlOworc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Q7CisK K2V4dGVybiBjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdF9vcHMgaTkxNV9nZW1fbG1l bV9vYmpfb3BzOworCitib29sIGk5MTVfZ2VtX29iamVjdF9pc19sbWVtKHN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmopOworCitzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqCitpOTE1 X2dlbV9vYmplY3RfY3JlYXRlX2xtZW0oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCisJ CQkgICAgcmVzb3VyY2Vfc2l6ZV90IHNpemUsCisJCQkgICAgdW5zaWduZWQgaW50IGZsYWdzKTsK KworI2VuZGlmIC8qICFfX0k5MTVfR0VNX0xNRU1fSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK aW5kZXggZDk0N2Y3NDE1ODYxLi5mN2JlOGNlZTQ3MDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aApAQCAtOTgsNiArOTgsOCBAQAogI2luY2x1ZGUgImk5MTVfdm1hLmgiCiAjaW5jbHVkZSAiaTkx NV9pcnEuaCIKIAorI2luY2x1ZGUgImludGVsX3JlZ2lvbl9sbWVtLmgiCisKICNpbmNsdWRlICJp bnRlbF9ndnQuaCIKIAogLyogR2VuZXJhbCBjdXN0b21pemF0aW9uOgpAQCAtMTM2OSw2ICsxMzcx LDggQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewogCSAqLwogCXJlc291cmNlX3NpemVfdCBz dG9sZW5fdXNhYmxlX3NpemU7CS8qIFRvdGFsIHNpemUgbWludXMgcmVzZXJ2ZWQgcmFuZ2VzICov CiAKKwlzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqcmVnaW9uc1tJTlRFTF9NRU1PUllfVUtO T1dOXTsKKwogCXN0cnVjdCBpbnRlbF91bmNvcmUgdW5jb3JlOwogCiAJc3RydWN0IGk5MTVfdmly dHVhbF9ncHUgdmdwdTsKQEAgLTIyMTMsNiArMjIxNyw3IEBAIElTX1NVQlBMQVRGT1JNKGNvbnN0 IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogI2RlZmluZSBIQVNfSVBDKGRldl9wcml2 KQkJIChJTlRFTF9JTkZPKGRldl9wcml2KS0+ZGlzcGxheS5oYXNfaXBjKQogCiAjZGVmaW5lIEhB U19SRUdJT04oaTkxNSwgaSkgKElOVEVMX0lORk8oaTkxNSktPm1lbW9yeV9yZWdpb25zICYgKGkp KQorI2RlZmluZSBIQVNfTE1FTShpOTE1KSBIQVNfUkVHSU9OKGk5MTUsIFJFR0lPTl9MTUVNKQog CiAjZGVmaW5lIEhBU19HVF9VQyhkZXZfcHJpdikJKElOVEVMX0lORk8oZGV2X3ByaXYpLT5oYXNf Z3RfdWMpCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JlZ2lvbl9s bWVtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yZWdpb25fbG1lbS5jCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uY2E5MDZkMWZmNjMxCi0tLSAvZGV2L251 bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVnaW9uX2xtZW0uYwpAQCAtMCww ICsxLDQ4IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCisvKgorICogQ29weXJp Z2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaW5jbHVkZSAiaTkxNV9kcnYu aCIKKyNpbmNsdWRlICJpbnRlbF9tZW1vcnlfcmVnaW9uLmgiCisjaW5jbHVkZSAiZ2VtL2k5MTVf Z2VtX2xtZW0uaCIKKyNpbmNsdWRlICJnZW0vaTkxNV9nZW1fcmVnaW9uLmgiCisjaW5jbHVkZSAi aW50ZWxfcmVnaW9uX2xtZW0uaCIKKworc3RhdGljIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICoKK2xtZW1fY3JlYXRlX29iamVjdChzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqbWVtLAor CQkgICByZXNvdXJjZV9zaXplX3Qgc2l6ZSwKKwkJICAgdW5zaWduZWQgaW50IGZsYWdzKQorewor CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gbWVtLT5pOTE1OworCXN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmo7CisJdW5zaWduZWQgaW50IGNhY2hlX2xldmVsOworCisJaWYg KGZsYWdzICYgSTkxNV9CT19BTExPQ19DT05USUdVT1VTKQorCQlzaXplID0gcm91bmR1cF9wb3df b2ZfdHdvKHNpemUpOworCisJaWYgKHNpemUgPiBCSVQobWVtLT5tbS5tYXhfb3JkZXIpICogbWVt LT5tbS5jaHVua19zaXplKQorCQlyZXR1cm4gRVJSX1BUUigtRTJCSUcpOworCisJb2JqID0gaTkx NV9nZW1fb2JqZWN0X2FsbG9jKCk7CisJaWYgKCFvYmopCisJCXJldHVybiBFUlJfUFRSKC1FTk9N RU0pOworCisJZHJtX2dlbV9wcml2YXRlX29iamVjdF9pbml0KCZpOTE1LT5kcm0sICZvYmotPmJh c2UsIHNpemUpOworCWk5MTVfZ2VtX29iamVjdF9pbml0KG9iaiwgJmk5MTVfZ2VtX2xtZW1fb2Jq X29wcyk7CisKKwlvYmotPnJlYWRfZG9tYWlucyA9IEk5MTVfR0VNX0RPTUFJTl9DUFUgfCBJOTE1 X0dFTV9ET01BSU5fR1RUOworCisJY2FjaGVfbGV2ZWwgPSBIQVNfTExDKGk5MTUpID8gSTkxNV9D QUNIRV9MTEMgOiBJOTE1X0NBQ0hFX05PTkU7CisJaTkxNV9nZW1fb2JqZWN0X3NldF9jYWNoZV9j b2hlcmVuY3kob2JqLCBjYWNoZV9sZXZlbCk7CisKKwlpOTE1X2dlbV9vYmplY3RfaW5pdF9tZW1v cnlfcmVnaW9uKG9iaiwgbWVtLCBmbGFncyk7CisKKwlyZXR1cm4gb2JqOworfQorCitjb25zdCBz dHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbl9vcHMgaW50ZWxfcmVnaW9uX2xtZW1fb3BzID0gewor CS5pbml0ID0gaW50ZWxfbWVtb3J5X3JlZ2lvbl9pbml0X2J1ZGR5LAorCS5yZWxlYXNlID0gaW50 ZWxfbWVtb3J5X3JlZ2lvbl9yZWxlYXNlX2J1ZGR5LAorCS5jcmVhdGVfb2JqZWN0ID0gbG1lbV9j cmVhdGVfb2JqZWN0LAorfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JlZ2lvbl9sbWVtLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yZWdpb25fbG1lbS5o Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZWQyYTNiYWI2NDQzCi0t LSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVnaW9uX2xtZW0u aApAQCAtMCwwICsxLDExIEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCisv KgorICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaWZuZGVm IF9fSU5URUxfUkVHSU9OX0xNRU1fSAorI2RlZmluZSBfX0lOVEVMX1JFR0lPTl9MTUVNX0gKKwor ZXh0ZXJuIGNvbnN0IHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uX29wcyBpbnRlbF9yZWdpb25f bG1lbV9vcHM7CisKKyNlbmRpZiAvKiAhX19JTlRFTF9SRUdJT05fTE1FTV9IICovCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9saXZlX3NlbGZ0ZXN0cy5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfbGl2ZV9zZWxmdGVzdHMuaApp bmRleCAxY2NmMGY3MzFhYzAuLjNiNGFiMzliZmU3ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfbGl2ZV9zZWxmdGVzdHMuaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9saXZlX3NlbGZ0ZXN0cy5oCkBAIC0zMCw2ICszMCw3 IEBAIHNlbGZ0ZXN0KGdlbV9jb250ZXh0cywgaTkxNV9nZW1fY29udGV4dF9saXZlX3NlbGZ0ZXN0 cykKIHNlbGZ0ZXN0KGJsdCwgaTkxNV9nZW1fb2JqZWN0X2JsdF9saXZlX3NlbGZ0ZXN0cykKIHNl bGZ0ZXN0KGNsaWVudCwgaTkxNV9nZW1fY2xpZW50X2JsdF9saXZlX3NlbGZ0ZXN0cykKIHNlbGZ0 ZXN0KHJlc2V0LCBpbnRlbF9yZXNldF9saXZlX3NlbGZ0ZXN0cykKK3NlbGZ0ZXN0KG1lbW9yeV9y ZWdpb24sIGludGVsX21lbW9yeV9yZWdpb25fbGl2ZV9zZWxmdGVzdHMpCiBzZWxmdGVzdChoYW5n Y2hlY2ssIGludGVsX2hhbmdjaGVja19saXZlX3NlbGZ0ZXN0cykKIHNlbGZ0ZXN0KGV4ZWNsaXN0 cywgaW50ZWxfZXhlY2xpc3RzX2xpdmVfc2VsZnRlc3RzKQogc2VsZnRlc3QoZ3VjLCBpbnRlbF9n dWNfbGl2ZV9zZWxmdGVzdCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0 ZXN0cy9pbnRlbF9tZW1vcnlfcmVnaW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVz dHMvaW50ZWxfbWVtb3J5X3JlZ2lvbi5jCmluZGV4IGY5NGU3ZWFlOTBlOS4uNDIyNDE2ZjcxNjQz IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfbWVtb3J5 X3JlZ2lvbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9tZW1v cnlfcmVnaW9uLmMKQEAgLTExLDggKzExLDEwIEBACiAjaW5jbHVkZSAibW9ja19nZW1fZGV2aWNl LmgiCiAjaW5jbHVkZSAibW9ja19yZWdpb24uaCIKIAorI2luY2x1ZGUgImdlbS9pOTE1X2dlbV9s bWVtLmgiCiAjaW5jbHVkZSAiZ2VtL2k5MTVfZ2VtX3JlZ2lvbi5oIgogI2luY2x1ZGUgImdlbS9z ZWxmdGVzdHMvbW9ja19jb250ZXh0LmgiCisjaW5jbHVkZSAiZ3QvaW50ZWxfZ3QuaCIKIAogc3Rh dGljIHZvaWQgY2xvc2Vfb2JqZWN0cyhzdHJ1Y3QgbGlzdF9oZWFkICpvYmplY3RzKQogewpAQCAt MzUwLDYgKzM1MiwyNyBAQCBzdGF0aWMgaW50IGlndF9tb2NrX3ZvbGF0aWxlKHZvaWQgKmFyZykK IAlyZXR1cm4gZXJyOwogfQogCitzdGF0aWMgaW50IGlndF9sbWVtX2NyZWF0ZSh2b2lkICphcmcp Cit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBhcmc7CisJc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iajsKKwlpbnQgZXJyID0gMDsKKworCW9iaiA9IGk5MTVfZ2VtX29i amVjdF9jcmVhdGVfbG1lbShpOTE1LCBQQUdFX1NJWkUsIDApOworCWlmIChJU19FUlIob2JqKSkK KwkJcmV0dXJuIFBUUl9FUlIob2JqKTsKKworCWVyciA9IGk5MTVfZ2VtX29iamVjdF9waW5fcGFn ZXMob2JqKTsKKwlpZiAoZXJyKQorCQlnb3RvIG91dF9wdXQ7CisKKwlpOTE1X2dlbV9vYmplY3Rf dW5waW5fcGFnZXMob2JqKTsKK291dF9wdXQ6CisJaTkxNV9nZW1fb2JqZWN0X3B1dChvYmopOwor CisJcmV0dXJuIGVycjsKK30KKwogaW50IGludGVsX21lbW9yeV9yZWdpb25fbW9ja19zZWxmdGVz dHModm9pZCkKIHsKIAlzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfc3VidGVzdCB0ZXN0c1tdID0g ewpAQCAtMzg2LDMgKzQwOSwyNSBAQCBpbnQgaW50ZWxfbWVtb3J5X3JlZ2lvbl9tb2NrX3NlbGZ0 ZXN0cyh2b2lkKQogCiAJcmV0dXJuIGVycjsKIH0KKworaW50IGludGVsX21lbW9yeV9yZWdpb25f bGl2ZV9zZWxmdGVzdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCit7CisJc3RhdGlj IGNvbnN0IHN0cnVjdCBpOTE1X3N1YnRlc3QgdGVzdHNbXSA9IHsKKwkJU1VCVEVTVChpZ3RfbG1l bV9jcmVhdGUpLAorCX07CisJaW50IGVycjsKKworCWlmICghSEFTX0xNRU0oaTkxNSkpIHsKKwkJ cHJfaW5mbygiZGV2aWNlIGxhY2tzIExNRU0gc3VwcG9ydCwgc2tpcHBpbmdcbiIpOworCQlyZXR1 cm4gMDsKKwl9CisKKwlpZiAoaW50ZWxfZ3RfaXNfd2VkZ2VkKCZpOTE1LT5ndCkpCisJCXJldHVy biAwOworCisJbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJZXJyID0gaTkx NV9zdWJ0ZXN0cyh0ZXN0cywgaTkxNSk7CisJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0 X211dGV4KTsKKworCXJldHVybiBlcnI7Cit9Ci0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==