From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [PATCH v3 02/37] drm/i915: introduce intel_memory_region Date: Fri, 9 Aug 2019 23:26:08 +0100 Message-ID: <20190809222643.23142-3-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 U3VwcG9ydCBtZW1vcnkgcmVnaW9ucywgYXMgZGVmaW5lZCBieSBhIGdpdmVuIChzdGFydCwgZW5k KSwgYW5kIGFsbG93CmNyZWF0aW5nIEdFTSBvYmplY3RzIHdoaWNoIGFyZSBiYWNrZWQgYnkgc2Fp ZCByZWdpb24uIFRoZSBpbW1lZGlhdGUgZ29hbApoZXJlIGlzIHRvIGhhdmUgc29tZXRoaW5nIHRv IHJlcHJlc2VudCBvdXIgZGV2aWNlIG1lbW9yeSwgYnV0IGxhdGVyIG9uCndlIGFsc28gd2FudCB0 byByZXByZXNlbnQgZXZlcnkgbWVtb3J5IGRvbWFpbiB3aXRoIGEgcmVnaW9uLCBzbyBzdG9sZW4s CnNobWVtLCBhbmQgb2YgY291cnNlIGRldmljZS4gQXQgc29tZSBwb2ludCB3ZSBhcmUgcHJvYmFi bHkgZ29pbmcgdG8gd2FudAp1c2UgYSBjb21tb24gc3RydWN0IGhlcmUsIHN1Y2ggdGhhdCB3ZSBh cmUgYmV0dGVyIGFsaWduZWQgd2l0aCBzYXkgVFRNLgoKU2lnbmVkLW9mZi1ieTogTWF0dGhldyBB dWxkIDxtYXR0aGV3LmF1bGRAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBBYmRpZWwgSmFudWxn dWUgPGFiZGllbC5qYW51bGd1ZUBsaW51eC5pbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IE5pcmFu amFuYSBWaXNod2FuYXRoYXB1cmEgPG5pcmFuamFuYS52aXNod2FuYXRoYXB1cmFAaW50ZWwuY29t PgpDYzogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgot LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlICAgICAgICAgICAgICAgICB8ICAgMiAr CiAuLi4vZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfdHlwZXMuaCAgfCAgIDkgKwog ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3JlZ2lvbi5jICAgIHwgMTI5ICsrKysr KysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9yZWdpb24uaCAgICB8 ICAyNyArKysKIC4uLi9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9odWdlX3BhZ2VzLmMgICB8 ICA3OCArKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9idWRkeS5oICAgICAgICAg ICAgIHwgICAyICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgICAg ICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tZW1vcnlfcmVnaW9uLmMgICAg fCAxNzUgKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tZW1v cnlfcmVnaW9uLmggICAgfCAxMDcgKysrKysrKysrKysKIC4uLi9kcm0vaTkxNS9zZWxmdGVzdHMv aTkxNV9tb2NrX3NlbGZ0ZXN0cy5oICB8ICAgMSArCiAuLi4vZHJtL2k5MTUvc2VsZnRlc3RzL2lu dGVsX21lbW9yeV9yZWdpb24uYyAgfCAxMTQgKysrKysrKysrKysrCiAuLi4vZ3B1L2RybS9pOTE1 L3NlbGZ0ZXN0cy9tb2NrX2dlbV9kZXZpY2UuYyAgfCAgIDEgKwogZHJpdmVycy9ncHUvZHJtL2k5 MTUvc2VsZnRlc3RzL21vY2tfcmVnaW9uLmMgIHwgIDYwICsrKysrKwogZHJpdmVycy9ncHUvZHJt L2k5MTUvc2VsZnRlc3RzL21vY2tfcmVnaW9uLmggIHwgIDE2ICsrCiAxNCBmaWxlcyBjaGFuZ2Vk LCA3MjIgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9p OTE1L2dlbS9pOTE1X2dlbV9yZWdpb24uYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9yZWdpb24uaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX21lbW9yeV9yZWdpb24uYwogY3JlYXRlIG1vZGUgMTAwNjQ0 IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21lbW9yeV9yZWdpb24uaAogY3JlYXRlIG1vZGUg MTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9tZW1vcnlfcmVnaW9u LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9j a19yZWdpb24uYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0 ZXN0cy9tb2NrX3JlZ2lvbi5oCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFr ZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQppbmRleCAzOTYyZDk3MjhkZDcu LmU5Y2Y4NzY5NmJkZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKQEAgLTUwLDYgKzUwLDcgQEAgaTkx NS15ICs9IGk5MTVfZHJ2Lm8gXAogCSAgaTkxNV91dGlscy5vIFwKIAkgIGludGVsX2Nzci5vIFwK IAkgIGludGVsX2RldmljZV9pbmZvLm8gXAorCSAgaW50ZWxfbWVtb3J5X3JlZ2lvbi5vIFwKIAkg IGludGVsX3BjaC5vIFwKIAkgIGludGVsX3BtLm8gXAogCSAgaW50ZWxfcnVudGltZV9wbS5vIFwK QEAgLTExNSw2ICsxMTYsNyBAQCBnZW0teSArPSBcCiAJZ2VtL2k5MTVfZ2VtX3BhZ2VzLm8gXAog CWdlbS9pOTE1X2dlbV9waHlzLm8gXAogCWdlbS9pOTE1X2dlbV9wbS5vIFwKKwlnZW0vaTkxNV9n ZW1fcmVnaW9uLm8gXAogCWdlbS9pOTE1X2dlbV9zaG1lbS5vIFwKIAlnZW0vaTkxNV9nZW1fc2hy aW5rZXIubyBcCiAJZ2VtL2k5MTVfZ2VtX3N0b2xlbi5vIFwKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfdHlwZXMuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfdHlwZXMuaAppbmRleCBkNDc0YzZhYzQxMDAuLmEz MjA2NmU2NjI3MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2Vt X29iamVjdF90eXBlcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9v YmplY3RfdHlwZXMuaApAQCAtMTYwLDYgKzE2MCwxNSBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCB7CiAJCXN0cnVjdCBtdXRleCBsb2NrOyAvKiBwcm90ZWN0cyB0aGUgcGFnZXMgYW5kIHRo ZWlyIHVzZSAqLwogCQlhdG9taWNfdCBwYWdlc19waW5fY291bnQ7CiAKKwkJLyoqCisJCSAqIE1l bW9yeSByZWdpb24gZm9yIHRoaXMgb2JqZWN0LgorCQkgKi8KKwkJc3RydWN0IGludGVsX21lbW9y eV9yZWdpb24gKnJlZ2lvbjsKKwkJLyoqCisJCSAqIExpc3Qgb2YgbWVtb3J5IHJlZ2lvbiBibG9j a3MgYWxsb2NhdGVkIGZvciB0aGlzIG9iamVjdC4KKwkJICovCisJCXN0cnVjdCBsaXN0X2hlYWQg YmxvY2tzOworCiAJCXN0cnVjdCBzZ190YWJsZSAqcGFnZXM7CiAJCXZvaWQgKm1hcHBpbmc7CiAK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9yZWdpb24uYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9yZWdpb24uYwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjNjZDFiZjE1ZTI1YgotLS0gL2Rldi9udWxsCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9yZWdpb24uYwpAQCAtMCwwICsx LDEyOSBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorLyoKKyAqIENvcHlyaWdo dCDCqSAyMDE5IEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2luY2x1ZGUgImludGVsX21lbW9y eV9yZWdpb24uaCIKKyNpbmNsdWRlICJpOTE1X2dlbV9yZWdpb24uaCIKKyNpbmNsdWRlICJpOTE1 X2Rydi5oIgorCit2b2lkCitpOTE1X2dlbV9vYmplY3RfcHV0X3BhZ2VzX2J1ZGR5KHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCisJCQkJc3RydWN0IHNnX3RhYmxlICpwYWdlcykKK3sK KwlfX2ludGVsX21lbW9yeV9yZWdpb25fcHV0X3BhZ2VzX2J1ZGR5KG9iai0+bW0ucmVnaW9uLCAm b2JqLT5tbS5ibG9ja3MpOworCisJb2JqLT5tbS5kaXJ0eSA9IGZhbHNlOworCXNnX2ZyZWVfdGFi bGUocGFnZXMpOworCWtmcmVlKHBhZ2VzKTsKK30KKworaW50CitpOTE1X2dlbV9vYmplY3RfZ2V0 X3BhZ2VzX2J1ZGR5KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCit7CisJc3RydWN0 IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSA9IG9iai0+bW0ucmVnaW9uOworCXN0cnVjdCBsaXN0 X2hlYWQgKmJsb2NrcyA9ICZvYmotPm1tLmJsb2NrczsKKwlyZXNvdXJjZV9zaXplX3Qgc2l6ZSA9 IG9iai0+YmFzZS5zaXplOworCXJlc291cmNlX3NpemVfdCBwcmV2X2VuZDsKKwlzdHJ1Y3QgaTkx NV9idWRkeV9ibG9jayAqYmxvY2s7CisJdW5zaWduZWQgaW50IGZsYWdzID0gMDsKKwlzdHJ1Y3Qg c2dfdGFibGUgKnN0OworCXN0cnVjdCBzY2F0dGVybGlzdCAqc2c7CisJdW5zaWduZWQgaW50IHNn X3BhZ2Vfc2l6ZXM7CisJdW5zaWduZWQgbG9uZyBpOworCWludCByZXQ7CisKKwlzdCA9IGttYWxs b2Moc2l6ZW9mKCpzdCksIEdGUF9LRVJORUwpOworCWlmICghc3QpCisJCXJldHVybiAtRU5PTUVN OworCisJaWYgKHNnX2FsbG9jX3RhYmxlKHN0LCBzaXplID4+IGlsb2cyKG1lbS0+bW0uY2h1bmtf c2l6ZSksIEdGUF9LRVJORUwpKSB7CisJCWtmcmVlKHN0KTsKKwkJcmV0dXJuIC1FTk9NRU07CisJ fQorCisJcmV0ID0gX19pbnRlbF9tZW1vcnlfcmVnaW9uX2dldF9wYWdlc19idWRkeShtZW0sIHNp emUsIGZsYWdzLCBibG9ja3MpOworCWlmIChyZXQpCisJCWdvdG8gZXJyX2ZyZWVfc2c7CisKKwlH RU1fQlVHX09OKGxpc3RfZW1wdHkoYmxvY2tzKSk7CisKKwlzZyA9IHN0LT5zZ2w7CisJc3QtPm5l bnRzID0gMDsKKwlzZ19wYWdlX3NpemVzID0gMDsKKwlpID0gMDsKKworCWxpc3RfZm9yX2VhY2hf ZW50cnkoYmxvY2ssIGJsb2NrcywgbGluaykgeworCQl1NjQgYmxvY2tfc2l6ZSwgb2Zmc2V0Owor CisJCWJsb2NrX3NpemUgPSBpOTE1X2J1ZGR5X2Jsb2NrX3NpemUoJm1lbS0+bW0sIGJsb2NrKTsK KwkJb2Zmc2V0ID0gaTkxNV9idWRkeV9ibG9ja19vZmZzZXQoYmxvY2spOworCisJCUdFTV9CVUdf T04ob3ZlcmZsb3dzX3R5cGUoYmxvY2tfc2l6ZSwgc2ctPmxlbmd0aCkpOworCisJCWlmICghaSB8 fCBvZmZzZXQgIT0gcHJldl9lbmQgfHwKKwkJICAgIGFkZF9vdmVyZmxvd3NfdCh0eXBlb2Yoc2ct Pmxlbmd0aCksIHNnLT5sZW5ndGgsIGJsb2NrX3NpemUpKSB7CisJCQlpZiAoaSkgeworCQkJCXNn X3BhZ2Vfc2l6ZXMgfD0gc2ctPmxlbmd0aDsKKwkJCQlzZyA9IF9fc2dfbmV4dChzZyk7CisJCQl9 CisKKwkJCXNnX2RtYV9hZGRyZXNzKHNnKSA9IG1lbS0+cmVnaW9uLnN0YXJ0ICsgb2Zmc2V0Owor CQkJc2dfZG1hX2xlbihzZykgPSBibG9ja19zaXplOworCisJCQlzZy0+bGVuZ3RoID0gYmxvY2tf c2l6ZTsKKworCQkJc3QtPm5lbnRzKys7CisJCX0gZWxzZSB7CisJCQlzZy0+bGVuZ3RoICs9IGJs b2NrX3NpemU7CisJCQlzZ19kbWFfbGVuKHNnKSArPSBibG9ja19zaXplOworCQl9CisKKwkJcHJl dl9lbmQgPSBvZmZzZXQgKyBibG9ja19zaXplOworCQlpKys7CisJfTsKKworCXNnX3BhZ2Vfc2l6 ZXMgfD0gc2ctPmxlbmd0aDsKKwlzZ19tYXJrX2VuZChzZyk7CisJaTkxNV9zZ190cmltKHN0KTsK KworCV9faTkxNV9nZW1fb2JqZWN0X3NldF9wYWdlcyhvYmosIHN0LCBzZ19wYWdlX3NpemVzKTsK KworCXJldHVybiAwOworCitlcnJfZnJlZV9zZzoKKwlzZ19mcmVlX3RhYmxlKHN0KTsKKwlrZnJl ZShzdCk7CisJcmV0dXJuIHJldDsKK30KKwordm9pZCBpOTE1X2dlbV9vYmplY3RfaW5pdF9tZW1v cnlfcmVnaW9uKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCisJCQkJCXN0cnVjdCBp bnRlbF9tZW1vcnlfcmVnaW9uICptZW0pCit7CisJSU5JVF9MSVNUX0hFQUQoJm9iai0+bW0uYmxv Y2tzKTsKKwlvYmotPm1tLnJlZ2lvbj0gbWVtOworfQorCitzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqCitpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3JlZ2lvbihzdHJ1Y3QgaW50ZWxfbWVtb3J5 X3JlZ2lvbiAqbWVtLAorCQkJICAgICAgcmVzb3VyY2Vfc2l6ZV90IHNpemUsCisJCQkgICAgICB1 bnNpZ25lZCBpbnQgZmxhZ3MpCit7CisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsK KworCWlmICghbWVtKQorCQlyZXR1cm4gRVJSX1BUUigtRU5PREVWKTsKKworCXNpemUgPSByb3Vu ZF91cChzaXplLCBtZW0tPm1pbl9wYWdlX3NpemUpOworCisJR0VNX0JVR19PTighc2l6ZSk7CisJ R0VNX0JVR19PTighSVNfQUxJR05FRChzaXplLCBJOTE1X0dUVF9NSU5fQUxJR05NRU5UKSk7CisK KwlpZiAoc2l6ZSA+PiBQQUdFX1NISUZUID4gSU5UX01BWCkKKwkJcmV0dXJuIEVSUl9QVFIoLUUy QklHKTsKKworCWlmIChvdmVyZmxvd3NfdHlwZShzaXplLCBvYmotPmJhc2Uuc2l6ZSkpCisJCXJl dHVybiBFUlJfUFRSKC1FMkJJRyk7CisKKwlyZXR1cm4gbWVtLT5vcHMtPmNyZWF0ZV9vYmplY3Qo bWVtLCBzaXplLCBmbGFncyk7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n ZW0vaTkxNV9nZW1fcmVnaW9uLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1f cmVnaW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kYTVhMmNh MWEwZmIKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9n ZW1fcmVnaW9uLmgKQEAgLTAsMCArMSwyNyBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IE1JVCAqLworLyoKKyAqIENvcHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBvcmF0aW9uCisgKi8K KworI2lmbmRlZiBfX0k5MTVfR0VNX1JFR0lPTl9IX18KKyNkZWZpbmUgX19JOTE1X0dFTV9SRUdJ T05fSF9fCisKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorCitzdHJ1Y3QgaW50ZWxfbWVtb3J5 X3JlZ2lvbjsKK3N0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0Oworc3RydWN0IHNnX3RhYmxlOwor CitpbnQgaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlc19idWRkeShzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqKTsKK3ZvaWQgaTkxNV9nZW1fb2JqZWN0X3B1dF9wYWdlc19idWRkeShzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAorCQkJCSAgICAgc3RydWN0IHNnX3RhYmxlICpw YWdlcyk7CisKK3ZvaWQgaTkxNV9nZW1fb2JqZWN0X2luaXRfbWVtb3J5X3JlZ2lvbihzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAorCQkJCQlzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lv biAqbWVtKTsKKworc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKgoraTkxNV9nZW1fb2JqZWN0 X2NyZWF0ZV9yZWdpb24oc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSwKKwkJCSAgICAg IHJlc291cmNlX3NpemVfdCBzaXplLAorCQkJICAgICAgdW5zaWduZWQgaW50IGZsYWdzKTsKKwor I2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2h1 Z2VfcGFnZXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaHVnZV9wYWdl cy5jCmluZGV4IDZjYmQ0YTY2OGM5YS4uNGM1OTRmOTBiNzc2IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2h1Z2VfcGFnZXMuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2h1Z2VfcGFnZXMuYwpAQCAtOCw2ICs4LDcgQEAKIAog I2luY2x1ZGUgImk5MTVfc2VsZnRlc3QuaCIKIAorI2luY2x1ZGUgImdlbS9pOTE1X2dlbV9yZWdp b24uaCIKICNpbmNsdWRlICJnZW0vaTkxNV9nZW1fcG0uaCIKIAogI2luY2x1ZGUgImd0L2ludGVs X2d0LmgiCkBAIC0xNyw2ICsxOCw3IEBACiAKICNpbmNsdWRlICJzZWxmdGVzdHMvbW9ja19kcm0u aCIKICNpbmNsdWRlICJzZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNlLmgiCisjaW5jbHVkZSAic2Vs ZnRlc3RzL21vY2tfcmVnaW9uLmgiCiAjaW5jbHVkZSAic2VsZnRlc3RzL2k5MTVfcmFuZG9tLmgi CiAKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgcGFnZV9zaXplc1tdID0gewpAQCAtNDQ3LDYg KzQ0OSw4MSBAQCBzdGF0aWMgaW50IGlndF9tb2NrX2V4aGF1c3RfZGV2aWNlX3N1cHBvcnRlZF9w YWdlcyh2b2lkICphcmcpCiAJcmV0dXJuIGVycjsKIH0KIAorc3RhdGljIGludCBpZ3RfbW9ja19t ZW1vcnlfcmVnaW9uX2h1Z2VfcGFnZXModm9pZCAqYXJnKQoreworCXN0cnVjdCBpOTE1X3BwZ3R0 ICpwcGd0dCA9IGFyZzsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHBwZ3R0LT52 bS5pOTE1OworCXVuc2lnbmVkIGxvbmcgc3VwcG9ydGVkID0gSU5URUxfSU5GTyhpOTE1KS0+cGFn ZV9zaXplczsKKwlzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqbWVtOworCXN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmo7CisJc3RydWN0IGk5MTVfdm1hICp2bWE7CisJaW50IGJpdDsK KwlpbnQgZXJyID0gMDsKKworCW1lbSA9IG1vY2tfcmVnaW9uX2NyZWF0ZShpOTE1LCAwLCBTWl8y RywKKwkJCQkgSTkxNV9HVFRfUEFHRV9TSVpFXzRLLCAwKTsKKwlpZiAoSVNfRVJSKG1lbSkpIHsK KwkJcHJfZXJyKCJmYWlsZWQgdG8gY3JlYXRlIG1lbW9yeSByZWdpb25cbiIpOworCQlyZXR1cm4g UFRSX0VSUihtZW0pOworCX0KKworCWZvcl9lYWNoX3NldF9iaXQoYml0LCAmc3VwcG9ydGVkLCBp bG9nMihJOTE1X0dUVF9NQVhfUEFHRV9TSVpFKSArIDEpIHsKKwkJdW5zaWduZWQgaW50IHBhZ2Vf c2l6ZSA9IEJJVChiaXQpOworCQlyZXNvdXJjZV9zaXplX3QgcGh5czsKKworCQlvYmogPSBpOTE1 X2dlbV9vYmplY3RfY3JlYXRlX3JlZ2lvbihtZW0sIHBhZ2Vfc2l6ZSwgMCk7CisJCWlmIChJU19F UlIob2JqKSkgeworCQkJZXJyID0gUFRSX0VSUihvYmopOworCQkJZ290byBvdXRfZGVzdHJveV9k ZXZpY2U7CisJCX0KKworCQl2bWEgPSBpOTE1X3ZtYV9pbnN0YW5jZShvYmosICZwcGd0dC0+dm0s IE5VTEwpOworCQlpZiAoSVNfRVJSKHZtYSkpIHsKKwkJCWVyciA9IFBUUl9FUlIodm1hKTsKKwkJ CWdvdG8gb3V0X3B1dDsKKwkJfQorCisJCWVyciA9IGk5MTVfdm1hX3Bpbih2bWEsIDAsIDAsIFBJ Tl9VU0VSKTsKKwkJaWYgKGVycikKKwkJCWdvdG8gb3V0X2Nsb3NlOworCisJCXBoeXMgPSBpOTE1 X2dlbV9vYmplY3RfZ2V0X2RtYV9hZGRyZXNzKG9iaiwgMCk7CisJCWlmICghSVNfQUxJR05FRChw aHlzLCBwYWdlX3NpemUpKSB7CisJCQlwcl9lcnIoIm1lbW9yeSByZWdpb24gbWlzYWxpZ25lZCgl cGEpXG4iLCAmcGh5cyk7CisJCQllcnIgPSAtRUlOVkFMOworCQkJZ290byBvdXRfY2xvc2U7CisJ CX0KKworCQlpZiAodm1hLT5wYWdlX3NpemVzLmd0dCAhPSBwYWdlX3NpemUpIHsKKwkJCXByX2Vy cigicGFnZV9zaXplcy5ndHQ9JXUsIGV4cGVjdGVkPSV1XG4iLAorCQkJICAgICAgIHZtYS0+cGFn ZV9zaXplcy5ndHQsIHBhZ2Vfc2l6ZSk7CisJCQllcnIgPSAtRUlOVkFMOworCQkJZ290byBvdXRf dW5waW47CisJCX0KKworCQlpOTE1X3ZtYV91bnBpbih2bWEpOworCQlpOTE1X3ZtYV9jbG9zZSh2 bWEpOworCisJCWk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKKwl9CisKKwlnb3RvIG91dF9kZXN0 cm95X2RldmljZTsKKworb3V0X3VucGluOgorCWk5MTVfdm1hX3VucGluKHZtYSk7CitvdXRfY2xv c2U6CisJaTkxNV92bWFfY2xvc2Uodm1hKTsKK291dF9wdXQ6CisJaTkxNV9nZW1fb2JqZWN0X3B1 dChvYmopOworb3V0X2Rlc3Ryb3lfZGV2aWNlOgorCW11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0 cnVjdF9tdXRleCk7CisJaTkxNV9nZW1fZHJhaW5fZnJlZWRfb2JqZWN0cyhpOTE1KTsKKwltdXRl eF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwlpbnRlbF9tZW1vcnlfcmVnaW9uX2Rl c3Ryb3kobWVtKTsKKworCXJldHVybiBlcnI7Cit9CisKIHN0YXRpYyBpbnQgaWd0X21vY2tfcHBn dHRfbWlzYWxpZ25lZF9kbWEodm9pZCAqYXJnKQogewogCXN0cnVjdCBpOTE1X3BwZ3R0ICpwcGd0 dCA9IGFyZzsKQEAgLTE3MDUsNiArMTc4Miw3IEBAIGludCBpOTE1X2dlbV9odWdlX3BhZ2VfbW9j a19zZWxmdGVzdHModm9pZCkKIHsKIAlzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfc3VidGVzdCB0 ZXN0c1tdID0gewogCQlTVUJURVNUKGlndF9tb2NrX2V4aGF1c3RfZGV2aWNlX3N1cHBvcnRlZF9w YWdlcyksCisJCVNVQlRFU1QoaWd0X21vY2tfbWVtb3J5X3JlZ2lvbl9odWdlX3BhZ2VzKSwKIAkJ U1VCVEVTVChpZ3RfbW9ja19wcGd0dF9taXNhbGlnbmVkX2RtYSksCiAJCVNVQlRFU1QoaWd0X21v Y2tfcHBndHRfaHVnZV9maWxsKSwKIAkJU1VCVEVTVChpZ3RfbW9ja19wcGd0dF82NEspLApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9idWRkeS5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9idWRkeS5oCmluZGV4IDc2YzIwOTQxYWVkNS4uZWQ0MWYzNTA3Y2RjIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2J1ZGR5LmgKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9idWRkeS5oCkBAIC0yMiw2ICsyMiw4IEBAIHN0cnVjdCBpOTE1 X2J1ZGR5X2Jsb2NrIHsKIAlzdHJ1Y3QgaTkxNV9idWRkeV9ibG9jayAqcmlnaHQ7CiAJc3RydWN0 IGk5MTVfYnVkZHlfYmxvY2sgKnBhcmVudDsKIAorCXZvaWQgKnByaXZhdGU7IC8qIG93bmVkIGJ5 IGNyZWF0b3IgKi8KKwogCS8qCiAJICogV2hpbGUgdGhlIGJsb2NrIGlzIGFsbG9jYXRlZCBieSB0 aGUgdXNlciB0aHJvdWdoIGk5MTVfYnVkZHlfYWxsb2MqLAogCSAqIHRoZSB1c2VyIGhhcyBvd25l cnNoaXAgb2YgdGhlIGxpbmssIGZvciBleGFtcGxlIHRvIG1haW50YWluIHdpdGhpbgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKaW5kZXggM2NkYjViZjQ4OWYyLi4zOWNkZjRlYWMyYTYgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaApAQCAtODMsNiArODMsNyBAQAogI2luY2x1ZGUgImludGVsX2Rldmlj ZV9pbmZvLmgiCiAjaW5jbHVkZSAiaW50ZWxfcGNoLmgiCiAjaW5jbHVkZSAiaW50ZWxfcnVudGlt ZV9wbS5oIgorI2luY2x1ZGUgImludGVsX21lbW9yeV9yZWdpb24uaCIKICNpbmNsdWRlICJpbnRl bF91bmNvcmUuaCIKICNpbmNsdWRlICJpbnRlbF93YWtlcmVmLmgiCiAjaW5jbHVkZSAiaW50ZWxf d29wY20uaCIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21lbW9yeV9y ZWdpb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21lbW9yeV9yZWdpb24uYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmVmMTJlNDYyYWNiOAotLS0gL2Rl di9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21lbW9yeV9yZWdpb24uYwpA QCAtMCwwICsxLDE3NSBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorLyoKKyAq IENvcHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2luY2x1ZGUgImlu dGVsX21lbW9yeV9yZWdpb24uaCIKKyNpbmNsdWRlICJpOTE1X2Rydi5oIgorCitjb25zdCB1MzIg aW50ZWxfcmVnaW9uX21hcFtdID0geworCVtJTlRFTF9NRU1PUllfU01FTV0gPSBCSVQoSU5URUxf U01FTSArIElOVEVMX01FTU9SWV9UWVBFX1NISUZUKSB8IEJJVCgwKSwKKwlbSU5URUxfTUVNT1JZ X0xNRU1dID0gQklUKElOVEVMX0xNRU0gKyBJTlRFTF9NRU1PUllfVFlQRV9TSElGVCkgfCBCSVQo MCksCisJW0lOVEVMX01FTU9SWV9TVE9MRU5dID0gQklUKElOVEVMX1NUT0xFTiArIElOVEVMX01F TU9SWV9UWVBFX1NISUZUKSB8IEJJVCgwKSwKK307CisKK3N0YXRpYyB1NjQKK2ludGVsX21lbW9y eV9yZWdpb25fZnJlZV9wYWdlcyhzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqbWVtLAorCQkJ ICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKmJsb2NrcykKK3sKKwlzdHJ1Y3QgaTkxNV9idWRkeV9i bG9jayAqYmxvY2ssICpvbjsKKwl1NjQgc2l6ZSA9IDA7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5 X3NhZmUoYmxvY2ssIG9uLCBibG9ja3MsIGxpbmspIHsKKwkJc2l6ZSArPSBpOTE1X2J1ZGR5X2Js b2NrX3NpemUoJm1lbS0+bW0sIGJsb2NrKTsKKwkJaTkxNV9idWRkeV9mcmVlKCZtZW0tPm1tLCBi bG9jayk7CisJfQorCUlOSVRfTElTVF9IRUFEKGJsb2Nrcyk7CisKKwlyZXR1cm4gc2l6ZTsKK30K Kwordm9pZAorX19pbnRlbF9tZW1vcnlfcmVnaW9uX3B1dF9wYWdlc19idWRkeShzdHJ1Y3QgaW50 ZWxfbWVtb3J5X3JlZ2lvbiAqbWVtLAorCQkJCSAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKmJsb2Nr cykKK3sKKwltdXRleF9sb2NrKCZtZW0tPm1tX2xvY2spOworCWludGVsX21lbW9yeV9yZWdpb25f ZnJlZV9wYWdlcyhtZW0sIGJsb2Nrcyk7CisJbXV0ZXhfdW5sb2NrKCZtZW0tPm1tX2xvY2spOwor fQorCit2b2lkCitfX2ludGVsX21lbW9yeV9yZWdpb25fcHV0X2Jsb2NrX2J1ZGR5KHN0cnVjdCBp OTE1X2J1ZGR5X2Jsb2NrICpibG9jaykKK3sKKwlzdHJ1Y3QgbGlzdF9oZWFkIGJsb2NrczsKKwor CUlOSVRfTElTVF9IRUFEKCZibG9ja3MpOworCWxpc3RfYWRkKCZibG9jay0+bGluaywgJmJsb2Nr cyk7CisJX19pbnRlbF9tZW1vcnlfcmVnaW9uX3B1dF9wYWdlc19idWRkeShibG9jay0+cHJpdmF0 ZSwgJmJsb2Nrcyk7Cit9CisKK2ludAorX19pbnRlbF9tZW1vcnlfcmVnaW9uX2dldF9wYWdlc19i dWRkeShzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqbWVtLAorCQkJCSAgICAgIHJlc291cmNl X3NpemVfdCBzaXplLAorCQkJCSAgICAgIHVuc2lnbmVkIGludCBmbGFncywKKwkJCQkgICAgICBz dHJ1Y3QgbGlzdF9oZWFkICpibG9ja3MpCit7CisJdW5zaWduZWQgbG9uZyBuX3BhZ2VzID0gc2l6 ZSA+PiBpbG9nMihtZW0tPm1tLmNodW5rX3NpemUpOworCisJR0VNX0JVR19PTighSVNfQUxJR05F RChzaXplLCBtZW0tPm1tLmNodW5rX3NpemUpKTsKKwlHRU1fQlVHX09OKCFsaXN0X2VtcHR5KGJs b2NrcykpOworCisJbXV0ZXhfbG9jaygmbWVtLT5tbV9sb2NrKTsKKworCWRvIHsKKwkJc3RydWN0 IGk5MTVfYnVkZHlfYmxvY2sgKmJsb2NrOworCQl1bnNpZ25lZCBpbnQgb3JkZXI7CisKKwkJb3Jk ZXIgPSBmbHMobl9wYWdlcykgLSAxOworCQlHRU1fQlVHX09OKG9yZGVyID4gbWVtLT5tbS5tYXhf b3JkZXIpOworCisJCWRvIHsKKwkJCWJsb2NrID0gaTkxNV9idWRkeV9hbGxvYygmbWVtLT5tbSwg b3JkZXIpOworCQkJaWYgKCFJU19FUlIoYmxvY2spKQorCQkJCWJyZWFrOworCisJCQkvKiBYWFg6 IHNvbWUga2luZCBvZiBldmljdGlvbiBwYXNzLCBsb2NhbCB0byB0aGUgZGV2aWNlICovCisJCQlp ZiAoZmxhZ3MgJiBJOTE1X0FMTE9DX0NPTlRJR1VPVVMgfHwgIW9yZGVyLS0pCisJCQkJZ290byBl cnJfZnJlZV9ibG9ja3M7CisJCX0gd2hpbGUgKDEpOworCisJCW5fcGFnZXMgLT0gQklUKG9yZGVy KTsKKworCQlibG9jay0+cHJpdmF0ZSA9IG1lbTsKKwkJbGlzdF9hZGQoJmJsb2NrLT5saW5rLCBi bG9ja3MpOworCisJCWlmICghbl9wYWdlcykKKwkJCWJyZWFrOworCX0gd2hpbGUgKDEpOworCisJ bXV0ZXhfdW5sb2NrKCZtZW0tPm1tX2xvY2spOworCXJldHVybiAwOworCitlcnJfZnJlZV9ibG9j a3M6CisJaW50ZWxfbWVtb3J5X3JlZ2lvbl9mcmVlX3BhZ2VzKG1lbSwgYmxvY2tzKTsKKwltdXRl eF91bmxvY2soJm1lbS0+bW1fbG9jayk7CisJcmV0dXJuIC1FTlhJTzsKK30KKworc3RydWN0IGk5 MTVfYnVkZHlfYmxvY2sgKgorX19pbnRlbF9tZW1vcnlfcmVnaW9uX2dldF9ibG9ja19idWRkeShz dHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqbWVtLAorCQkJCSAgICAgIHJlc291cmNlX3NpemVf dCBzaXplKQoreworCXN0cnVjdCBpOTE1X2J1ZGR5X2Jsb2NrICpibG9jazsKKwlzdHJ1Y3QgbGlz dF9oZWFkIGJsb2NrczsKKwlpbnQgcmV0OworCisJSU5JVF9MSVNUX0hFQUQoJmJsb2Nrcyk7CisJ cmV0ID0gX19pbnRlbF9tZW1vcnlfcmVnaW9uX2dldF9wYWdlc19idWRkeShtZW0sIHNpemUsCisJ CQkJCQkgICAgSTkxNV9BTExPQ19DT05USUdVT1VTLAorCQkJCQkJICAgICZibG9ja3MpOworCWlm IChyZXQpCisJCXJldHVybiBFUlJfUFRSKHJldCk7CisKKwlibG9jayA9IGxpc3RfZmlyc3RfZW50 cnkoJmJsb2NrcywgdHlwZW9mKCpibG9jayksIGxpbmspOworCWxpc3RfZGVsX2luaXQoJmJsb2Nr LT5saW5rKTsKKwlyZXR1cm4gYmxvY2s7Cit9CisKK2ludCBpbnRlbF9tZW1vcnlfcmVnaW9uX2lu aXRfYnVkZHkoc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSkKK3sKKwlyZXR1cm4gaTkx NV9idWRkeV9pbml0KCZtZW0tPm1tLCByZXNvdXJjZV9zaXplKCZtZW0tPnJlZ2lvbiksCisJCQkg ICAgICAgbWVtLT5taW5fcGFnZV9zaXplKTsKK30KKwordm9pZCBpbnRlbF9tZW1vcnlfcmVnaW9u X3JlbGVhc2VfYnVkZHkoc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSkKK3sKKwlpOTE1 X2J1ZGR5X2ZpbmkoJm1lbS0+bW0pOworfQorCitzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAq CitpbnRlbF9tZW1vcnlfcmVnaW9uX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSwKKwkJCSAgIHJlc291cmNlX3NpemVfdCBzdGFydCwKKwkJCSAgIHJlc291cmNlX3NpemVfdCBz aXplLAorCQkJICAgcmVzb3VyY2Vfc2l6ZV90IG1pbl9wYWdlX3NpemUsCisJCQkgICByZXNvdXJj ZV9zaXplX3QgaW9fc3RhcnQsCisJCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lv bl9vcHMgKm9wcykKK3sKKwlzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqbWVtOworCWludCBl cnI7CisKKwltZW0gPSBremFsbG9jKHNpemVvZigqbWVtKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFt ZW0pCisJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCisJbWVtLT5pOTE1ID0gaTkxNTsKKwlt ZW0tPnJlZ2lvbiA9IChzdHJ1Y3QgcmVzb3VyY2UpREVGSU5FX1JFU19NRU0oc3RhcnQsIHNpemUp OworCW1lbS0+aW9fc3RhcnQgPSBpb19zdGFydDsKKwltZW0tPm1pbl9wYWdlX3NpemUgPSBtaW5f cGFnZV9zaXplOworCW1lbS0+b3BzID0gb3BzOworCisJbXV0ZXhfaW5pdCgmbWVtLT5tbV9sb2Nr KTsKKworCWlmIChvcHMtPmluaXQpIHsKKwkJZXJyID0gb3BzLT5pbml0KG1lbSk7CisJCWlmIChl cnIpIHsKKwkJCWtmcmVlKG1lbSk7CisJCQltZW0gPSBFUlJfUFRSKGVycik7CisJCX0KKwl9CisK KwlyZXR1cm4gbWVtOworfQorCit2b2lkCitpbnRlbF9tZW1vcnlfcmVnaW9uX2Rlc3Ryb3koc3Ry dWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSkKK3sKKwlpZiAobWVtLT5vcHMtPnJlbGVhc2Up CisJCW1lbS0+b3BzLT5yZWxlYXNlKG1lbSk7CisKKwlrZnJlZShtZW0pOworfQorCisjaWYgSVNf RU5BQkxFRChDT05GSUdfRFJNX0k5MTVfU0VMRlRFU1QpCisjaW5jbHVkZSAic2VsZnRlc3RzL2lu dGVsX21lbW9yeV9yZWdpb24uYyIKKyNpbmNsdWRlICJzZWxmdGVzdHMvbW9ja19yZWdpb24uYyIK KyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbWVtb3J5X3Jl Z2lvbi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbWVtb3J5X3JlZ2lvbi5oCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDI5OWZlZDE2OWU5Ci0tLSAvZGV2 L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbWVtb3J5X3JlZ2lvbi5oCkBA IC0wLDAgKzEsMTA3IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCisvKgor ICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaWZuZGVmIF9f SU5URUxfTUVNT1JZX1JFR0lPTl9IX18KKyNkZWZpbmUgX19JTlRFTF9NRU1PUllfUkVHSU9OX0hf XworCisjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CisjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4K KyNpbmNsdWRlIDxsaW51eC9pby1tYXBwaW5nLmg+CisKKyNpbmNsdWRlICJpOTE1X2J1ZGR5Lmgi CisKK3N0cnVjdCBkcm1faTkxNV9wcml2YXRlOworc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Q7 CitzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbjsKK3N0cnVjdCBzZ190YWJsZTsKKworLyoqCisg KiAgQmFzZSBtZW1vcnkgdHlwZQorICovCitlbnVtIGludGVsX21lbW9yeV90eXBlIHsKKwlJTlRF TF9TTUVNID0gMCwKKwlJTlRFTF9MTUVNLAorCUlOVEVMX1NUT0xFTiwKK307CisKK2VudW0gaW50 ZWxfcmVnaW9uX2lkIHsKKwlJTlRFTF9NRU1PUllfU01FTSA9IDAsCisJSU5URUxfTUVNT1JZX0xN RU0sCisJSU5URUxfTUVNT1JZX1NUT0xFTiwKKwlJTlRFTF9NRU1PUllfVUtOT1dOLCAvKiBTaG91 bGQgYmUgbGFzdCAqLworfTsKKworI2RlZmluZSBSRUdJT05fU01FTSAgICAgQklUKElOVEVMX01F TU9SWV9TTUVNKQorI2RlZmluZSBSRUdJT05fTE1FTSAgICAgQklUKElOVEVMX01FTU9SWV9MTUVN KQorI2RlZmluZSBSRUdJT05fU1RPTEVOICAgQklUKElOVEVMX01FTU9SWV9TVE9MRU4pCisKKyNk ZWZpbmUgSU5URUxfTUVNT1JZX1RZUEVfU0hJRlQgMTYKKworI2RlZmluZSBNRU1PUllfVFlQRV9G Uk9NX1JFR0lPTihyKSAoaWxvZzIociA+PiBJTlRFTF9NRU1PUllfVFlQRV9TSElGVCkpCisjZGVm aW5lIE1FTU9SWV9JTlNUQU5DRV9GUk9NX1JFR0lPTihyKSAoaWxvZzIociAmIDB4ZmZmZikpCisK KyNkZWZpbmUgSTkxNV9BTExPQ19DT05USUdVT1VTICAgQklUKDApCisKKy8qKgorICogTWVtb3J5 IHJlZ2lvbnMgZW5jb2RlZCBhcyB0eXBlIHwgaW5zdGFuY2UKKyAqLworZXh0ZXJuIGNvbnN0IHUz MiBpbnRlbF9yZWdpb25fbWFwW107CisKK3N0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uX29wcyB7 CisJdW5zaWduZWQgaW50IGZsYWdzOworCisJaW50ICgqaW5pdCkoc3RydWN0IGludGVsX21lbW9y eV9yZWdpb24gKik7CisJdm9pZCAoKnJlbGVhc2UpKHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9u ICopOworCisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKgorCSgqY3JlYXRlX29iamVjdCko c3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKiwKKwkJCSByZXNvdXJjZV9zaXplX3QsCisJCQkg dW5zaWduZWQgaW50KTsKK307CisKK3N0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uIHsKKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNTsKKworCWNvbnN0IHN0cnVjdCBpbnRlbF9tZW1vcnlf cmVnaW9uX29wcyAqb3BzOworCisJc3RydWN0IGlvX21hcHBpbmcgaW9tYXA7CisJc3RydWN0IHJl c291cmNlIHJlZ2lvbjsKKworCXN0cnVjdCBpOTE1X2J1ZGR5X21tIG1tOworCXN0cnVjdCBtdXRl eCBtbV9sb2NrOworCisJcmVzb3VyY2Vfc2l6ZV90IGlvX3N0YXJ0OworCXJlc291cmNlX3NpemVf dCBtaW5fcGFnZV9zaXplOworCisJdW5zaWduZWQgaW50IHR5cGU7CisJdW5zaWduZWQgaW50IGlu c3RhbmNlOworCXVuc2lnbmVkIGludCBpZDsKK307CisKK2ludCBpbnRlbF9tZW1vcnlfcmVnaW9u X2luaXRfYnVkZHkoc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSk7Cit2b2lkIGludGVs X21lbW9yeV9yZWdpb25fcmVsZWFzZV9idWRkeShzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAq bWVtKTsKKworaW50IF9faW50ZWxfbWVtb3J5X3JlZ2lvbl9nZXRfcGFnZXNfYnVkZHkoc3RydWN0 IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSwKKwkJCQkJICByZXNvdXJjZV9zaXplX3Qgc2l6ZSwK KwkJCQkJICB1bnNpZ25lZCBpbnQgZmxhZ3MsCisJCQkJCSAgc3RydWN0IGxpc3RfaGVhZCAqYmxv Y2tzKTsKK3N0cnVjdCBpOTE1X2J1ZGR5X2Jsb2NrICoKK19faW50ZWxfbWVtb3J5X3JlZ2lvbl9n ZXRfYmxvY2tfYnVkZHkoc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSwKKwkJCQkgICAg IHJlc291cmNlX3NpemVfdCBzaXplKTsKK3ZvaWQgX19pbnRlbF9tZW1vcnlfcmVnaW9uX3B1dF9w YWdlc19idWRkeShzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqbWVtLAorCQkJCQkgIHN0cnVj dCBsaXN0X2hlYWQgKmJsb2Nrcyk7Cit2b2lkIF9faW50ZWxfbWVtb3J5X3JlZ2lvbl9wdXRfYmxv Y2tfYnVkZHkoc3RydWN0IGk5MTVfYnVkZHlfYmxvY2sgKmJsb2NrKTsKKworc3RydWN0IGludGVs X21lbW9yeV9yZWdpb24gKgoraW50ZWxfbWVtb3J5X3JlZ2lvbl9jcmVhdGUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTUsCisJCQkgICByZXNvdXJjZV9zaXplX3Qgc3RhcnQsCisJCQkgICBy ZXNvdXJjZV9zaXplX3Qgc2l6ZSwKKwkJCSAgIHJlc291cmNlX3NpemVfdCBtaW5fcGFnZV9zaXpl LAorCQkJICAgcmVzb3VyY2Vfc2l6ZV90IGlvX3N0YXJ0LAorCQkJICAgY29uc3Qgc3RydWN0IGlu dGVsX21lbW9yeV9yZWdpb25fb3BzICpvcHMpOwordm9pZAoraW50ZWxfbWVtb3J5X3JlZ2lvbl9k ZXN0cm95KHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICptZW0pOworCisjZW5kaWYKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X21vY2tfc2VsZnRlc3Rz LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9tb2NrX3NlbGZ0ZXN0cy5o CmluZGV4IGI4ODA4NGZlMzI2OS4uYWE1YTBlN2Y1ZDllIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9tb2NrX3NlbGZ0ZXN0cy5oCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X21vY2tfc2VsZnRlc3RzLmgKQEAgLTI2LDMgKzI2 LDQgQEAgc2VsZnRlc3QoZ3R0LCBpOTE1X2dlbV9ndHRfbW9ja19zZWxmdGVzdHMpCiBzZWxmdGVz dChodWdlcGFnZXMsIGk5MTVfZ2VtX2h1Z2VfcGFnZV9tb2NrX3NlbGZ0ZXN0cykKIHNlbGZ0ZXN0 KGNvbnRleHRzLCBpOTE1X2dlbV9jb250ZXh0X21vY2tfc2VsZnRlc3RzKQogc2VsZnRlc3QoYnVk ZHksIGk5MTVfYnVkZHlfbW9ja19zZWxmdGVzdHMpCitzZWxmdGVzdChtZW1vcnlfcmVnaW9uLCBp bnRlbF9tZW1vcnlfcmVnaW9uX21vY2tfc2VsZnRlc3RzKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX21lbW9yeV9yZWdpb24uYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9tZW1vcnlfcmVnaW9uLmMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi44NGRhYTkyYmY5MmMKLS0tIC9kZXYvbnVsbAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfbWVtb3J5X3JlZ2lvbi5jCkBA IC0wLDAgKzEsMTE0IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCisvKgorICog Q29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaW5jbHVkZSA8bGlu dXgvcHJpbWVfbnVtYmVycy5oPgorCisjaW5jbHVkZSAiLi4vaTkxNV9zZWxmdGVzdC5oIgorCisj aW5jbHVkZSAibW9ja19kcm0uaCIKKyNpbmNsdWRlICJtb2NrX2dlbV9kZXZpY2UuaCIKKyNpbmNs dWRlICJtb2NrX3JlZ2lvbi5oIgorCisjaW5jbHVkZSAiZ2VtL2k5MTVfZ2VtX3JlZ2lvbi5oIgor I2luY2x1ZGUgImdlbS9zZWxmdGVzdHMvbW9ja19jb250ZXh0LmgiCisKK3N0YXRpYyB2b2lkIGNs b3NlX29iamVjdHMoc3RydWN0IGxpc3RfaGVhZCAqb2JqZWN0cykKK3sKKwlzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqLCAqb247CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUob2Jq LCBvbiwgb2JqZWN0cywgc3RfbGluaykgeworCQlpZiAoaTkxNV9nZW1fb2JqZWN0X2hhc19waW5u ZWRfcGFnZXMob2JqKSkKKwkJCWk5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyhvYmopOworCQkv KiBObyBwb2xsdXRpbmcgdGhlIG1lbW9yeSByZWdpb24gYmV0d2VlbiB0ZXN0cyAqLworCQlfX2k5 MTVfZ2VtX29iamVjdF9wdXRfcGFnZXMob2JqLCBJOTE1X01NX05PUk1BTCk7CisJCWk5MTVfZ2Vt X29iamVjdF9wdXQob2JqKTsKKwkJbGlzdF9kZWwoJm9iai0+c3RfbGluayk7CisJfQorfQorCitz dGF0aWMgaW50IGlndF9tb2NrX2ZpbGwodm9pZCAqYXJnKQoreworCXN0cnVjdCBpbnRlbF9tZW1v cnlfcmVnaW9uICptZW0gPSBhcmc7CisJcmVzb3VyY2Vfc2l6ZV90IHRvdGFsID0gcmVzb3VyY2Vf c2l6ZSgmbWVtLT5yZWdpb24pOworCXJlc291cmNlX3NpemVfdCBwYWdlX3NpemU7CisJcmVzb3Vy Y2Vfc2l6ZV90IHJlbTsKKwl1bnNpZ25lZCBsb25nIG1heF9wYWdlczsKKwl1bnNpZ25lZCBsb25n IHBhZ2VfbnVtOworCUxJU1RfSEVBRChvYmplY3RzKTsKKwlpbnQgZXJyID0gMDsKKworCXBhZ2Vf c2l6ZSA9IG1lbS0+bW0uY2h1bmtfc2l6ZTsKKwltYXhfcGFnZXMgPSB0b3RhbCAvIHBhZ2Vfc2l6 ZTsKKwlyZW0gPSB0b3RhbDsKKworCWZvcl9lYWNoX3ByaW1lX251bWJlcl9mcm9tKHBhZ2VfbnVt LCAxLCBtYXhfcGFnZXMpIHsKKwkJcmVzb3VyY2Vfc2l6ZV90IHNpemUgPSBwYWdlX251bSAqIHBh Z2Vfc2l6ZTsKKwkJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKKworCQlvYmogPSBp OTE1X2dlbV9vYmplY3RfY3JlYXRlX3JlZ2lvbihtZW0sIHNpemUsIDApOworCQlpZiAoSVNfRVJS KG9iaikpIHsKKwkJCWVyciA9IFBUUl9FUlIob2JqKTsKKwkJCWJyZWFrOworCQl9CisKKwkJZXJy ID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl9wYWdlcyhvYmopOworCQlpZiAoZXJyKSB7CisJCQlpOTE1 X2dlbV9vYmplY3RfcHV0KG9iaik7CisJCQlicmVhazsKKwkJfQorCisJCWxpc3RfYWRkKCZvYmot PnN0X2xpbmssICZvYmplY3RzKTsKKwkJcmVtIC09IHNpemU7CisJfQorCisJaWYgKGVyciA9PSAt RU5PTUVNKQorCQllcnIgPSAwOworCWlmIChlcnIgPT0gLUVOWElPKSB7CisJCWlmIChwYWdlX251 bSAqIHBhZ2Vfc2l6ZSA8PSByZW0pIHsKKwkJCXByX2VycigiaWd0X21vY2tfZmlsbCBmYWlsZWQs IHNwYWNlIHN0aWxsIGxlZnQgaW4gcmVnaW9uXG4iKTsKKwkJCWVyciA9IC1FSU5WQUw7CisJCX0g ZWxzZSB7CisJCQllcnIgPSAwOworCQl9CisJfQorCisJY2xvc2Vfb2JqZWN0cygmb2JqZWN0cyk7 CisKKwlyZXR1cm4gZXJyOworfQorCitpbnQgaW50ZWxfbWVtb3J5X3JlZ2lvbl9tb2NrX3NlbGZ0 ZXN0cyh2b2lkKQoreworCXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9zdWJ0ZXN0IHRlc3RzW10g PSB7CisJCVNVQlRFU1QoaWd0X21vY2tfZmlsbCksCisJfTsKKwlzdHJ1Y3QgaW50ZWxfbWVtb3J5 X3JlZ2lvbiAqbWVtOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1OworCWludCBlcnI7 CisKKwlpOTE1ID0gbW9ja19nZW1fZGV2aWNlKCk7CisJaWYgKCFpOTE1KQorCQlyZXR1cm4gLUVO T01FTTsKKworCW1lbSA9IG1vY2tfcmVnaW9uX2NyZWF0ZShpOTE1LCAwLCBTWl8yRywKKwkJCQkg STkxNV9HVFRfUEFHRV9TSVpFXzRLLCAwKTsKKwlpZiAoSVNfRVJSKG1lbSkpIHsKKwkJcHJfZXJy KCJmYWlsZWQgdG8gY3JlYXRlIG1lbW9yeSByZWdpb25cbiIpOworCQllcnIgPSBQVFJfRVJSKG1l bSk7CisJCWdvdG8gb3V0X3VucmVmOworCX0KKworCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1 Y3RfbXV0ZXgpOworCWVyciA9IGk5MTVfc3VidGVzdHModGVzdHMsIG1lbSk7CisJbXV0ZXhfdW5s b2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKworCWk5MTVfZ2VtX2RyYWluX2ZyZWVkX29i amVjdHMoaTkxNSk7CisJaW50ZWxfbWVtb3J5X3JlZ2lvbl9kZXN0cm95KG1lbSk7CisKK291dF91 bnJlZjoKKwlkcm1fZGV2X3B1dCgmaTkxNS0+ZHJtKTsKKworCXJldHVybiBlcnI7Cit9CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNlLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNlLmMKaW5kZXgg MDFhODljMDcxYmY1Li5jYzBmZTBhNzkzMzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L3NlbGZ0ZXN0cy9tb2NrX2dlbV9kZXZpY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9zZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNlLmMKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRl ICJtb2NrX2dlbV9kZXZpY2UuaCIKICNpbmNsdWRlICJtb2NrX2d0dC5oIgogI2luY2x1ZGUgIm1v Y2tfdW5jb3JlLmgiCisjaW5jbHVkZSAibW9ja19yZWdpb24uaCIKIAogI2luY2x1ZGUgImdlbS9z ZWxmdGVzdHMvbW9ja19jb250ZXh0LmgiCiAjaW5jbHVkZSAiZ2VtL3NlbGZ0ZXN0cy9tb2NrX2dl bV9vYmplY3QuaCIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9t b2NrX3JlZ2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfcmVnaW9u LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5mYmRlODkwMzg1YzcK LS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19y ZWdpb24uYwpAQCAtMCwwICsxLDYwIEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlU CisvKgorICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaW5j bHVkZSAiZ2VtL2k5MTVfZ2VtX3JlZ2lvbi5oIgorI2luY2x1ZGUgImludGVsX21lbW9yeV9yZWdp b24uaCIKKworI2luY2x1ZGUgIm1vY2tfcmVnaW9uLmgiCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdF9vcHMgbW9ja19yZWdpb25fb2JqX29wcyA9IHsKKwkuZ2V0X3Bh Z2VzID0gaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlc19idWRkeSwKKwkucHV0X3BhZ2VzID0gaTkx NV9nZW1fb2JqZWN0X3B1dF9wYWdlc19idWRkeSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqCittb2NrX29iamVjdF9jcmVhdGUoc3RydWN0IGludGVsX21lbW9yeV9y ZWdpb24gKm1lbSwKKwkJICAgcmVzb3VyY2Vfc2l6ZV90IHNpemUsCisJCSAgIHVuc2lnbmVkIGlu dCBmbGFncykKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IG1lbS0+aTkxNTsK KwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOworCXVuc2lnbmVkIGludCBjYWNoZV9s ZXZlbDsKKworCWlmIChzaXplID4gQklUKG1lbS0+bW0ubWF4X29yZGVyKSAqIG1lbS0+bW0uY2h1 bmtfc2l6ZSkKKwkJcmV0dXJuIEVSUl9QVFIoLUUyQklHKTsKKworCW9iaiA9IGk5MTVfZ2VtX29i amVjdF9hbGxvYygpOworCWlmICghb2JqKQorCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKwor CWRybV9nZW1fcHJpdmF0ZV9vYmplY3RfaW5pdCgmaTkxNS0+ZHJtLCAmb2JqLT5iYXNlLCBzaXpl KTsKKwlpOTE1X2dlbV9vYmplY3RfaW5pdChvYmosICZtb2NrX3JlZ2lvbl9vYmpfb3BzKTsKKwor CW9iai0+cmVhZF9kb21haW5zID0gSTkxNV9HRU1fRE9NQUlOX0NQVSB8IEk5MTVfR0VNX0RPTUFJ Tl9HVFQ7CisKKwljYWNoZV9sZXZlbCA9IEhBU19MTEMoaTkxNSkgPyBJOTE1X0NBQ0hFX0xMQyA6 IEk5MTVfQ0FDSEVfTk9ORTsKKwlpOTE1X2dlbV9vYmplY3Rfc2V0X2NhY2hlX2NvaGVyZW5jeShv YmosIGNhY2hlX2xldmVsKTsKKworCWk5MTVfZ2VtX29iamVjdF9pbml0X21lbW9yeV9yZWdpb24o b2JqLCBtZW0pOworCisJcmV0dXJuIG9iajsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRl bF9tZW1vcnlfcmVnaW9uX29wcyBtb2NrX3JlZ2lvbl9vcHMgPSB7CisJLmluaXQgPSBpbnRlbF9t ZW1vcnlfcmVnaW9uX2luaXRfYnVkZHksCisJLnJlbGVhc2UgPSBpbnRlbF9tZW1vcnlfcmVnaW9u X3JlbGVhc2VfYnVkZHksCisJLmNyZWF0ZV9vYmplY3QgPSBtb2NrX29iamVjdF9jcmVhdGUsCit9 OworCitzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqCittb2NrX3JlZ2lvbl9jcmVhdGUoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCisJCSAgIHJlc291cmNlX3NpemVfdCBzdGFydCwK KwkJICAgcmVzb3VyY2Vfc2l6ZV90IHNpemUsCisJCSAgIHJlc291cmNlX3NpemVfdCBtaW5fcGFn ZV9zaXplLAorCQkgICByZXNvdXJjZV9zaXplX3QgaW9fc3RhcnQpCit7CisJcmV0dXJuIGludGVs X21lbW9yeV9yZWdpb25fY3JlYXRlKGk5MTUsIHN0YXJ0LCBzaXplLCBtaW5fcGFnZV9zaXplLAor CQkJCQkgIGlvX3N0YXJ0LCAmbW9ja19yZWdpb25fb3BzKTsKK30KZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX3JlZ2lvbi5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvc2VsZnRlc3RzL21vY2tfcmVnaW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwLi4yNDYwODA4OWQ4MzMKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19yZWdpb24uaApAQCAtMCwwICsxLDE2IEBACisvKiBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCisvKgorICogQ29weXJpZ2h0IMKpIDIwMTkg SW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaWZuZGVmIF9fTU9DS19SRUdJT05fSAorI2RlZmlu ZSBfX01PQ0tfUkVHSU9OX0gKKworc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKgorbW9ja19y ZWdpb25fY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAorCQkgICByZXNvdXJj ZV9zaXplX3Qgc3RhcnQsCisJCSAgIHJlc291cmNlX3NpemVfdCBzaXplLAorCQkgICByZXNvdXJj ZV9zaXplX3QgbWluX3BhZ2Vfc2l6ZSwKKwkJICAgcmVzb3VyY2Vfc2l6ZV90IGlvX3N0YXJ0KTsK KworI2VuZGlmIC8qICFfX01PQ0tfUkVHSU9OX0ggKi8KLS0gCjIuMjAuMQoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4