From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [PATCH 1/3] drm/i915: introduce intel_memory_region Date: Tue, 8 Oct 2019 17:01:14 +0100 Message-ID: <20191008160116.18379-2-matthew.auld@intel.com> References: <20191008160116.18379-1-matthew.auld@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id C30EA6E28B for ; Tue, 8 Oct 2019 16:01:20 +0000 (UTC) In-Reply-To: <20191008160116.18379-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 List-Id: intel-gfx@lists.freedesktop.org U3VwcG9ydCBtZW1vcnkgcmVnaW9ucywgYXMgZGVmaW5lZCBieSBhIGdpdmVuIChzdGFydCwgZW5k KSwgYW5kIGFsbG93CmNyZWF0aW5nIEdFTSBvYmplY3RzIHdoaWNoIGFyZSBiYWNrZWQgYnkgc2Fp ZCByZWdpb24uIFRoZSBpbW1lZGlhdGUgZ29hbApoZXJlIGlzIHRvIGhhdmUgc29tZXRoaW5nIHRv IHJlcHJlc2VudCBvdXIgZGV2aWNlIG1lbW9yeSwgYnV0IGxhdGVyIG9uCndlIGFsc28gd2FudCB0 byByZXByZXNlbnQgZXZlcnkgbWVtb3J5IGRvbWFpbiB3aXRoIGEgcmVnaW9uLCBzbyBzdG9sZW4s CnNobWVtLCBhbmQgb2YgY291cnNlIGRldmljZS4gQXQgc29tZSBwb2ludCB3ZSBhcmUgcHJvYmFi bHkgZ29pbmcgdG8gd2FudAp1c2UgYSBjb21tb24gc3RydWN0IGhlcmUsIHN1Y2ggdGhhdCB3ZSBh cmUgYmV0dGVyIGFsaWduZWQgd2l0aCBzYXkgVFRNLgoKU2lnbmVkLW9mZi1ieTogTWF0dGhldyBB dWxkIDxtYXR0aGV3LmF1bGRAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBBYmRpZWwgSmFudWxn dWUgPGFiZGllbC5qYW51bGd1ZUBsaW51eC5pbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IE5pcmFu amFuYSBWaXNod2FuYXRoYXB1cmEgPG5pcmFuamFuYS52aXNod2FuYXRoYXB1cmFAaW50ZWwuY29t PgpDYzogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgot LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlICAgICAgICAgICAgICAgICB8ICAgMiAr CiAuLi4vZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfdHlwZXMuaCAgfCAgIDkgKwog ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3JlZ2lvbi5jICAgIHwgMTQ1ICsrKysr KysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9yZWdpb24uaCAgICB8 ICAyOCArKysKIC4uLi9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9odWdlX3BhZ2VzLmMgICB8 ICA3OCArKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAg ICAgfCAgIDEgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbWVtb3J5X3JlZ2lvbi5jICAg IHwgMTkxICsrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbWVt b3J5X3JlZ2lvbi5oICAgIHwgIDgzICsrKysrKysrCiAuLi4vZHJtL2k5MTUvc2VsZnRlc3RzL2k5 MTVfbW9ja19zZWxmdGVzdHMuaCAgfCAgIDEgKwogLi4uL2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRl bF9tZW1vcnlfcmVnaW9uLmMgIHwgMTE1ICsrKysrKysrKysrCiAuLi4vZ3B1L2RybS9pOTE1L3Nl bGZ0ZXN0cy9tb2NrX2dlbV9kZXZpY2UuYyAgfCAgIDEgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUv c2VsZnRlc3RzL21vY2tfcmVnaW9uLmMgIHwgIDU5ICsrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5 MTUvc2VsZnRlc3RzL21vY2tfcmVnaW9uLmggIHwgIDE2ICsrCiAxMyBmaWxlcyBjaGFuZ2VkLCA3 MjkgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2dlbS9pOTE1X2dlbV9yZWdpb24uYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2dlbS9pOTE1X2dlbV9yZWdpb24uaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX21lbW9yeV9yZWdpb24uYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21lbW9yeV9yZWdpb24uaAogY3JlYXRlIG1vZGUgMTAw NjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9tZW1vcnlfcmVnaW9uLmMK IGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19y ZWdpb24uYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0 cy9tb2NrX3JlZ2lvbi5oCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZp bGUgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQppbmRleCBhNjAwNmFhNzE1ZmYuLmU3 OTFkOTMyM2I1MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKQEAgLTUxLDYgKzUxLDcgQEAgaTkxNS15 ICs9IGk5MTVfZHJ2Lm8gXAogCSAgaTkxNV91dGlscy5vIFwKIAkgIGludGVsX2Nzci5vIFwKIAkg IGludGVsX2RldmljZV9pbmZvLm8gXAorCSAgaW50ZWxfbWVtb3J5X3JlZ2lvbi5vIFwKIAkgIGlu dGVsX3BjaC5vIFwKIAkgIGludGVsX3BtLm8gXAogCSAgaW50ZWxfcnVudGltZV9wbS5vIFwKQEAg LTEyMSw2ICsxMjIsNyBAQCBnZW0teSArPSBcCiAJZ2VtL2k5MTVfZ2VtX3BhZ2VzLm8gXAogCWdl bS9pOTE1X2dlbV9waHlzLm8gXAogCWdlbS9pOTE1X2dlbV9wbS5vIFwKKwlnZW0vaTkxNV9nZW1f cmVnaW9uLm8gXAogCWdlbS9pOTE1X2dlbV9zaG1lbS5vIFwKIAlnZW0vaTkxNV9nZW1fc2hyaW5r ZXIubyBcCiAJZ2VtL2k5MTVfZ2VtX3N0b2xlbi5vIFwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfdHlwZXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfdHlwZXMuaAppbmRleCBjMDBiNGYwNzdmOWUuLjExMzkw NTg2Y2ZlMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29i amVjdF90eXBlcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmpl Y3RfdHlwZXMuaApAQCAtMTYwLDYgKzE2MCwxNSBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCB7CiAJCWF0b21pY190IHBhZ2VzX3Bpbl9jb3VudDsKIAkJYXRvbWljX3Qgc2hyaW5rX3BpbjsK IAorCQkvKioKKwkJICogTWVtb3J5IHJlZ2lvbiBmb3IgdGhpcyBvYmplY3QuCisJCSAqLworCQlz dHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqcmVnaW9uOworCQkvKioKKwkJICogTGlzdCBvZiBt ZW1vcnkgcmVnaW9uIGJsb2NrcyBhbGxvY2F0ZWQgZm9yIHRoaXMgb2JqZWN0LgorCQkgKi8KKwkJ c3RydWN0IGxpc3RfaGVhZCBibG9ja3M7CisKIAkJc3RydWN0IHNnX3RhYmxlICpwYWdlczsKIAkJ dm9pZCAqbWFwcGluZzsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5 MTVfZ2VtX3JlZ2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3JlZ2lv bi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZmFkM2E5NDY0MWU5 Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3Jl Z2lvbi5jCkBAIC0wLDAgKzEsMTQ1IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlU CisvKgorICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaW5j bHVkZSAiaW50ZWxfbWVtb3J5X3JlZ2lvbi5oIgorI2luY2x1ZGUgImk5MTVfZ2VtX3JlZ2lvbi5o IgorI2luY2x1ZGUgImk5MTVfZHJ2LmgiCisKK3ZvaWQKK2k5MTVfZ2VtX29iamVjdF9wdXRfcGFn ZXNfYnVkZHkoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKKwkJCQlzdHJ1Y3Qgc2df dGFibGUgKnBhZ2VzKQoreworCV9faW50ZWxfbWVtb3J5X3JlZ2lvbl9wdXRfcGFnZXNfYnVkZHko b2JqLT5tbS5yZWdpb24sICZvYmotPm1tLmJsb2Nrcyk7CisKKwlvYmotPm1tLmRpcnR5ID0gZmFs c2U7CisJc2dfZnJlZV90YWJsZShwYWdlcyk7CisJa2ZyZWUocGFnZXMpOworfQorCitpbnQKK2k5 MTVfZ2VtX29iamVjdF9nZXRfcGFnZXNfYnVkZHkoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Km9iaikKK3sKKwlzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqbWVtID0gb2JqLT5tbS5yZWdp b247CisJc3RydWN0IGxpc3RfaGVhZCAqYmxvY2tzID0gJm9iai0+bW0uYmxvY2tzOworCXVuc2ln bmVkIGludCBmbGFncyA9IEk5MTVfQUxMT0NfTUlOX1BBR0VfU0laRTsKKwlyZXNvdXJjZV9zaXpl X3Qgc2l6ZSA9IG9iai0+YmFzZS5zaXplOworCXJlc291cmNlX3NpemVfdCBwcmV2X2VuZDsKKwlz dHJ1Y3QgaTkxNV9idWRkeV9ibG9jayAqYmxvY2s7CisJc3RydWN0IHNnX3RhYmxlICpzdDsKKwlz dHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnOworCXVuc2lnbmVkIGludCBzZ19wYWdlX3NpemVzOworCWlu dCByZXQ7CisKKwlzdCA9IGttYWxsb2Moc2l6ZW9mKCpzdCksIEdGUF9LRVJORUwpOworCWlmICgh c3QpCisJCXJldHVybiAtRU5PTUVNOworCisJaWYgKHNnX2FsbG9jX3RhYmxlKHN0LCBzaXplID4+ IGlsb2cyKG1lbS0+bW0uY2h1bmtfc2l6ZSksIEdGUF9LRVJORUwpKSB7CisJCWtmcmVlKHN0KTsK KwkJcmV0dXJuIC1FTk9NRU07CisJfQorCisJcmV0ID0gX19pbnRlbF9tZW1vcnlfcmVnaW9uX2dl dF9wYWdlc19idWRkeShtZW0sIHNpemUsIGZsYWdzLCBibG9ja3MpOworCWlmIChyZXQpCisJCWdv dG8gZXJyX2ZyZWVfc2c7CisKKwlHRU1fQlVHX09OKGxpc3RfZW1wdHkoYmxvY2tzKSk7CisKKwlz ZyA9IHN0LT5zZ2w7CisJc3QtPm5lbnRzID0gMDsKKwlzZ19wYWdlX3NpemVzID0gMDsKKwlwcmV2 X2VuZCA9IChyZXNvdXJjZV9zaXplX3QpIC0gMTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoYmxv Y2ssIGJsb2NrcywgbGluaykgeworCQl1NjQgYmxvY2tfc2l6ZSwgb2Zmc2V0OworCisJCWJsb2Nr X3NpemUgPSBpOTE1X2J1ZGR5X2Jsb2NrX3NpemUoJm1lbS0+bW0sIGJsb2NrKTsKKwkJb2Zmc2V0 ID0gaTkxNV9idWRkeV9ibG9ja19vZmZzZXQoYmxvY2spOworCisJCUdFTV9CVUdfT04ob3ZlcmZs b3dzX3R5cGUoYmxvY2tfc2l6ZSwgc2ctPmxlbmd0aCkpOworCisJCWlmIChvZmZzZXQgIT0gcHJl dl9lbmQgfHwKKwkJICAgIGFkZF9vdmVyZmxvd3NfdCh0eXBlb2Yoc2ctPmxlbmd0aCksIHNnLT5s ZW5ndGgsIGJsb2NrX3NpemUpKSB7CisJCQlpZiAoc3QtPm5lbnRzKSB7CisJCQkJc2dfcGFnZV9z aXplcyB8PSBzZy0+bGVuZ3RoOworCQkJCXNnID0gX19zZ19uZXh0KHNnKTsKKwkJCX0KKworCQkJ c2dfZG1hX2FkZHJlc3Moc2cpID0gbWVtLT5yZWdpb24uc3RhcnQgKyBvZmZzZXQ7CisJCQlzZ19k bWFfbGVuKHNnKSA9IGJsb2NrX3NpemU7CisKKwkJCXNnLT5sZW5ndGggPSBibG9ja19zaXplOwor CisJCQlzdC0+bmVudHMrKzsKKwkJfSBlbHNlIHsKKwkJCXNnLT5sZW5ndGggKz0gYmxvY2tfc2l6 ZTsKKwkJCXNnX2RtYV9sZW4oc2cpICs9IGJsb2NrX3NpemU7CisJCX0KKworCQlwcmV2X2VuZCA9 IG9mZnNldCArIGJsb2NrX3NpemU7CisJfTsKKworCXNnX3BhZ2Vfc2l6ZXMgfD0gc2ctPmxlbmd0 aDsKKwlzZ19tYXJrX2VuZChzZyk7CisJaTkxNV9zZ190cmltKHN0KTsKKworCV9faTkxNV9nZW1f b2JqZWN0X3NldF9wYWdlcyhvYmosIHN0LCBzZ19wYWdlX3NpemVzKTsKKworCXJldHVybiAwOwor CitlcnJfZnJlZV9zZzoKKwlzZ19mcmVlX3RhYmxlKHN0KTsKKwlrZnJlZShzdCk7CisJcmV0dXJu IHJldDsKK30KKwordm9pZCBpOTE1X2dlbV9vYmplY3RfaW5pdF9tZW1vcnlfcmVnaW9uKHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCisJCQkJCXN0cnVjdCBpbnRlbF9tZW1vcnlfcmVn aW9uICptZW0pCit7CisJSU5JVF9MSVNUX0hFQUQoJm9iai0+bW0uYmxvY2tzKTsKKwlvYmotPm1t LnJlZ2lvbiA9IGludGVsX21lbW9yeV9yZWdpb25fZ2V0KG1lbSk7Cit9CisKK3ZvaWQgaTkxNV9n ZW1fb2JqZWN0X3JlbGVhc2VfbWVtb3J5X3JlZ2lvbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqKQoreworCWludGVsX21lbW9yeV9yZWdpb25fcHV0KG9iai0+bW0ucmVnaW9uKTsKK30K Kworc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKgoraTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9y ZWdpb24oc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSwKKwkJCSAgICAgIHJlc291cmNl X3NpemVfdCBzaXplLAorCQkJICAgICAgdW5zaWduZWQgaW50IGZsYWdzKQoreworCXN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CisKKwkvKgorCSAqIE5COiBPdXIgdXNlIG9mIHJlc291 cmNlX3NpemVfdCBmb3IgdGhlIHNpemUgc3RlbXMgZnJvbSB1c2luZyBzdHJ1Y3QKKwkgKiByZXNv dXJjZSBmb3IgdGhlIG1lbS0+cmVnaW9uLiBXZSBtaWdodCBuZWVkIHRvIHJldmlzaXQgdGhpcyBp biB0aGUKKwkgKiBmdXR1cmUuCisJICovCisKKwlpZiAoIW1lbSkKKwkJcmV0dXJuIEVSUl9QVFIo LUVOT0RFVik7CisKKwlzaXplID0gcm91bmRfdXAoc2l6ZSwgbWVtLT5taW5fcGFnZV9zaXplKTsK KworCUdFTV9CVUdfT04oIXNpemUpOworCUdFTV9CVUdfT04oIUlTX0FMSUdORUQoc2l6ZSwgSTkx NV9HVFRfTUlOX0FMSUdOTUVOVCkpOworCisJLyoKKwkgKiBYWFg6IFRoZXJlIGlzIGEgcHJldmFs ZW5jZSBvZiB0aGUgYXNzdW1wdGlvbiB0aGF0IHdlIGZpdCB0aGUKKwkgKiBvYmplY3QncyBwYWdl IGNvdW50IGluc2lkZSBhIDMyYml0IF9zaWduZWRfIHZhcmlhYmxlLiBMZXQncyBkb2N1bWVudAor CSAqIHRoaXMgYW5kIGNhdGNoIGlmIHdlIGV2ZXIgbmVlZCB0byBmaXggaXQuIEluIHRoZSBtZWFu dGltZSwgaWYgeW91IGRvCisJICogc3BvdCBzdWNoIGEgbG9jYWwgdmFyaWFibGUsIHBsZWFzZSBj b25zaWRlciBmaXhpbmchCisJICovCisKKwlpZiAoc2l6ZSA+PiBQQUdFX1NISUZUID4gSU5UX01B WCkKKwkJcmV0dXJuIEVSUl9QVFIoLUUyQklHKTsKKworCWlmIChvdmVyZmxvd3NfdHlwZShzaXpl LCBvYmotPmJhc2Uuc2l6ZSkpCisJCXJldHVybiBFUlJfUFRSKC1FMkJJRyk7CisKKwlyZXR1cm4g bWVtLT5vcHMtPmNyZWF0ZV9vYmplY3QobWVtLCBzaXplLCBmbGFncyk7Cit9CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fcmVnaW9uLmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fcmVnaW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwLi5lYmRkYzg2ZDc4ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fcmVnaW9uLmgKQEAgLTAsMCArMSwyOCBAQAorLyog U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCAqLworLyoKKyAqIENvcHlyaWdodCDCqSAyMDE5 IEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2lmbmRlZiBfX0k5MTVfR0VNX1JFR0lPTl9IX18K KyNkZWZpbmUgX19JOTE1X0dFTV9SRUdJT05fSF9fCisKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5o PgorCitzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbjsKK3N0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0Oworc3RydWN0IHNnX3RhYmxlOworCitpbnQgaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlc19i dWRkeShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKTsKK3ZvaWQgaTkxNV9nZW1fb2Jq ZWN0X3B1dF9wYWdlc19idWRkeShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAorCQkJ CSAgICAgc3RydWN0IHNnX3RhYmxlICpwYWdlcyk7CisKK3ZvaWQgaTkxNV9nZW1fb2JqZWN0X2lu aXRfbWVtb3J5X3JlZ2lvbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAorCQkJCQlz dHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqbWVtKTsKK3ZvaWQgaTkxNV9nZW1fb2JqZWN0X3Jl bGVhc2VfbWVtb3J5X3JlZ2lvbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKTsKKwor c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKgoraTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9yZWdp b24oc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSwKKwkJCSAgICAgIHJlc291cmNlX3Np emVfdCBzaXplLAorCQkJICAgICAgdW5zaWduZWQgaW50IGZsYWdzKTsKKworI2VuZGlmCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2h1Z2VfcGFnZXMuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaHVnZV9wYWdlcy5jCmluZGV4IGU0 MmFiZGRkNGEzNi4uYjRjMzkwZTlmYTUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9nZW0vc2VsZnRlc3RzL2h1Z2VfcGFnZXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n ZW0vc2VsZnRlc3RzL2h1Z2VfcGFnZXMuYwpAQCAtOCw2ICs4LDcgQEAKIAogI2luY2x1ZGUgImk5 MTVfc2VsZnRlc3QuaCIKIAorI2luY2x1ZGUgImdlbS9pOTE1X2dlbV9yZWdpb24uaCIKICNpbmNs dWRlICJnZW0vaTkxNV9nZW1fcG0uaCIKIAogI2luY2x1ZGUgImd0L2ludGVsX2d0LmgiCkBAIC0x Nyw2ICsxOCw3IEBACiAKICNpbmNsdWRlICJzZWxmdGVzdHMvbW9ja19kcm0uaCIKICNpbmNsdWRl ICJzZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNlLmgiCisjaW5jbHVkZSAic2VsZnRlc3RzL21vY2tf cmVnaW9uLmgiCiAjaW5jbHVkZSAic2VsZnRlc3RzL2k5MTVfcmFuZG9tLmgiCiAKIHN0YXRpYyBj b25zdCB1bnNpZ25lZCBpbnQgcGFnZV9zaXplc1tdID0gewpAQCAtNDUyLDYgKzQ1NCw4MSBAQCBz dGF0aWMgaW50IGlndF9tb2NrX2V4aGF1c3RfZGV2aWNlX3N1cHBvcnRlZF9wYWdlcyh2b2lkICph cmcpCiAJcmV0dXJuIGVycjsKIH0KIAorc3RhdGljIGludCBpZ3RfbW9ja19tZW1vcnlfcmVnaW9u X2h1Z2VfcGFnZXModm9pZCAqYXJnKQoreworCXN0cnVjdCBpOTE1X3BwZ3R0ICpwcGd0dCA9IGFy ZzsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHBwZ3R0LT52bS5pOTE1OworCXVu c2lnbmVkIGxvbmcgc3VwcG9ydGVkID0gSU5URUxfSU5GTyhpOTE1KS0+cGFnZV9zaXplczsKKwlz dHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqbWVtOworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmo7CisJc3RydWN0IGk5MTVfdm1hICp2bWE7CisJaW50IGJpdDsKKwlpbnQgZXJyID0g MDsKKworCW1lbSA9IG1vY2tfcmVnaW9uX2NyZWF0ZShpOTE1LCAwLCBTWl8yRywgSTkxNV9HVFRf UEFHRV9TSVpFXzRLLCAwKTsKKwlpZiAoSVNfRVJSKG1lbSkpIHsKKwkJcHJfZXJyKCIlcyBmYWls ZWQgdG8gY3JlYXRlIG1lbW9yeSByZWdpb25cbiIsIF9fZnVuY19fKTsKKwkJcmV0dXJuIFBUUl9F UlIobWVtKTsKKwl9CisKKwlmb3JfZWFjaF9zZXRfYml0KGJpdCwgJnN1cHBvcnRlZCwgaWxvZzIo STkxNV9HVFRfTUFYX1BBR0VfU0laRSkgKyAxKSB7CisJCXVuc2lnbmVkIGludCBwYWdlX3NpemUg PSBCSVQoYml0KTsKKwkJcmVzb3VyY2Vfc2l6ZV90IHBoeXM7CisKKwkJb2JqID0gaTkxNV9nZW1f b2JqZWN0X2NyZWF0ZV9yZWdpb24obWVtLCBwYWdlX3NpemUsIDApOworCQlpZiAoSVNfRVJSKG9i aikpIHsKKwkJCWVyciA9IFBUUl9FUlIob2JqKTsKKwkJCWdvdG8gb3V0X3JlZ2lvbjsKKwkJfQor CisJCXZtYSA9IGk5MTVfdm1hX2luc3RhbmNlKG9iaiwgJnBwZ3R0LT52bSwgTlVMTCk7CisJCWlm IChJU19FUlIodm1hKSkgeworCQkJZXJyID0gUFRSX0VSUih2bWEpOworCQkJZ290byBvdXRfcHV0 OworCQl9CisKKwkJZXJyID0gaTkxNV92bWFfcGluKHZtYSwgMCwgMCwgUElOX1VTRVIpOworCQlp ZiAoZXJyKQorCQkJZ290byBvdXRfY2xvc2U7CisKKwkJZXJyID0gaWd0X2NoZWNrX3BhZ2Vfc2l6 ZXModm1hKTsKKwkJaWYgKGVycikKKwkJCWdvdG8gb3V0X3VucGluOworCisJCXBoeXMgPSBpOTE1 X2dlbV9vYmplY3RfZ2V0X2RtYV9hZGRyZXNzKG9iaiwgMCk7CisJCWlmICghSVNfQUxJR05FRChw aHlzLCBwYWdlX3NpemUpKSB7CisJCQlwcl9lcnIoIiVzIGFkZHIgbWlzYWxpZ25lZCglcGEpIHBh Z2Vfc2l6ZT0ldVxuIiwKKwkJCSAgICAgICBfX2Z1bmNfXywgJnBoeXMsIHBhZ2Vfc2l6ZSk7CisJ CQllcnIgPSAtRUlOVkFMOworCQkJZ290byBvdXRfdW5waW47CisJCX0KKworCQlpZiAodm1hLT5w YWdlX3NpemVzLmd0dCAhPSBwYWdlX3NpemUpIHsKKwkJCXByX2VycigiJXMgcGFnZV9zaXplcy5n dHQ9JXUsIGV4cGVjdGVkPSV1XG4iLAorCQkJICAgICAgIF9fZnVuY19fLCB2bWEtPnBhZ2Vfc2l6 ZXMuZ3R0LCBwYWdlX3NpemUpOworCQkJZXJyID0gLUVJTlZBTDsKKwkJCWdvdG8gb3V0X3VucGlu OworCQl9CisKKwkJaTkxNV92bWFfdW5waW4odm1hKTsKKwkJaTkxNV92bWFfY2xvc2Uodm1hKTsK KworCQlpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7CisJfQorCisJZ290byBvdXRfcmVnaW9uOwor CitvdXRfdW5waW46CisJaTkxNV92bWFfdW5waW4odm1hKTsKK291dF9jbG9zZToKKwlpOTE1X3Zt YV9jbG9zZSh2bWEpOworb3V0X3B1dDoKKwlpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7CitvdXRf cmVnaW9uOgorCWludGVsX21lbW9yeV9yZWdpb25fcHV0KG1lbSk7CisJcmV0dXJuIGVycjsKK30K Kwogc3RhdGljIGludCBpZ3RfbW9ja19wcGd0dF9taXNhbGlnbmVkX2RtYSh2b2lkICphcmcpCiB7 CiAJc3RydWN0IGk5MTVfcHBndHQgKnBwZ3R0ID0gYXJnOwpAQCAtMTYyMyw2ICsxNzAwLDcgQEAg aW50IGk5MTVfZ2VtX2h1Z2VfcGFnZV9tb2NrX3NlbGZ0ZXN0cyh2b2lkKQogewogCXN0YXRpYyBj b25zdCBzdHJ1Y3QgaTkxNV9zdWJ0ZXN0IHRlc3RzW10gPSB7CiAJCVNVQlRFU1QoaWd0X21vY2tf ZXhoYXVzdF9kZXZpY2Vfc3VwcG9ydGVkX3BhZ2VzKSwKKwkJU1VCVEVTVChpZ3RfbW9ja19tZW1v cnlfcmVnaW9uX2h1Z2VfcGFnZXMpLAogCQlTVUJURVNUKGlndF9tb2NrX3BwZ3R0X21pc2FsaWdu ZWRfZG1hKSwKIAkJU1VCVEVTVChpZ3RfbW9ja19wcGd0dF9odWdlX2ZpbGwpLAogCQlTVUJURVNU KGlndF9tb2NrX3BwZ3R0XzY0SyksCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCBiY2ZiMzU1 YWFiNGQuLmQyODRiMDRjNDkyYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC04NSw2ICs4 NSw3IEBACiAjaW5jbHVkZSAiaW50ZWxfZGV2aWNlX2luZm8uaCIKICNpbmNsdWRlICJpbnRlbF9w Y2guaCIKICNpbmNsdWRlICJpbnRlbF9ydW50aW1lX3BtLmgiCisjaW5jbHVkZSAiaW50ZWxfbWVt b3J5X3JlZ2lvbi5oIgogI2luY2x1ZGUgImludGVsX3VuY29yZS5oIgogI2luY2x1ZGUgImludGVs X3dha2VyZWYuaCIKICNpbmNsdWRlICJpbnRlbF93b3BjbS5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbWVtb3J5X3JlZ2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbWVtb3J5X3JlZ2lvbi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMC4uMmVmNjdjMzk3ZmNhCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfbWVtb3J5X3JlZ2lvbi5jCkBAIC0wLDAgKzEsMTkxIEBACisvLyBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogTUlUCisvKgorICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29y cG9yYXRpb24KKyAqLworCisjaW5jbHVkZSAiaW50ZWxfbWVtb3J5X3JlZ2lvbi5oIgorI2luY2x1 ZGUgImk5MTVfZHJ2LmgiCisKK3N0YXRpYyB1NjQKK2ludGVsX21lbW9yeV9yZWdpb25fZnJlZV9w YWdlcyhzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqbWVtLAorCQkJICAgICAgIHN0cnVjdCBs aXN0X2hlYWQgKmJsb2NrcykKK3sKKwlzdHJ1Y3QgaTkxNV9idWRkeV9ibG9jayAqYmxvY2ssICpv bjsKKwl1NjQgc2l6ZSA9IDA7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoYmxvY2ssIG9u LCBibG9ja3MsIGxpbmspIHsKKwkJc2l6ZSArPSBpOTE1X2J1ZGR5X2Jsb2NrX3NpemUoJm1lbS0+ bW0sIGJsb2NrKTsKKwkJaTkxNV9idWRkeV9mcmVlKCZtZW0tPm1tLCBibG9jayk7CisJfQorCUlO SVRfTElTVF9IRUFEKGJsb2Nrcyk7CisKKwlyZXR1cm4gc2l6ZTsKK30KKwordm9pZAorX19pbnRl bF9tZW1vcnlfcmVnaW9uX3B1dF9wYWdlc19idWRkeShzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lv biAqbWVtLAorCQkJCSAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKmJsb2NrcykKK3sKKwltdXRleF9s b2NrKCZtZW0tPm1tX2xvY2spOworCWludGVsX21lbW9yeV9yZWdpb25fZnJlZV9wYWdlcyhtZW0s IGJsb2Nrcyk7CisJbXV0ZXhfdW5sb2NrKCZtZW0tPm1tX2xvY2spOworfQorCit2b2lkCitfX2lu dGVsX21lbW9yeV9yZWdpb25fcHV0X2Jsb2NrX2J1ZGR5KHN0cnVjdCBpOTE1X2J1ZGR5X2Jsb2Nr ICpibG9jaykKK3sKKwlzdHJ1Y3QgbGlzdF9oZWFkIGJsb2NrczsKKworCUlOSVRfTElTVF9IRUFE KCZibG9ja3MpOworCWxpc3RfYWRkKCZibG9jay0+bGluaywgJmJsb2Nrcyk7CisJX19pbnRlbF9t ZW1vcnlfcmVnaW9uX3B1dF9wYWdlc19idWRkeShibG9jay0+cHJpdmF0ZSwgJmJsb2Nrcyk7Cit9 CisKK2ludAorX19pbnRlbF9tZW1vcnlfcmVnaW9uX2dldF9wYWdlc19idWRkeShzdHJ1Y3QgaW50 ZWxfbWVtb3J5X3JlZ2lvbiAqbWVtLAorCQkJCSAgICAgIHJlc291cmNlX3NpemVfdCBzaXplLAor CQkJCSAgICAgIHVuc2lnbmVkIGludCBmbGFncywKKwkJCQkgICAgICBzdHJ1Y3QgbGlzdF9oZWFk ICpibG9ja3MpCit7CisJdW5zaWduZWQgbG9uZyBuX3BhZ2VzID0gc2l6ZSA+PiBpbG9nMihtZW0t Pm1tLmNodW5rX3NpemUpOworCXVuc2lnbmVkIGludCBtaW5fb3JkZXIgPSAwOworCisJR0VNX0JV R19PTighSVNfQUxJR05FRChzaXplLCBtZW0tPm1tLmNodW5rX3NpemUpKTsKKwlHRU1fQlVHX09O KCFsaXN0X2VtcHR5KGJsb2NrcykpOworCisJaWYgKGZsYWdzICYgSTkxNV9BTExPQ19NSU5fUEFH RV9TSVpFKSB7CisJCW1pbl9vcmRlciA9IGlsb2cyKG1lbS0+bWluX3BhZ2Vfc2l6ZSkgLQorCQkJ ICAgIGlsb2cyKG1lbS0+bW0uY2h1bmtfc2l6ZSk7CisJfQorCisJbXV0ZXhfbG9jaygmbWVtLT5t bV9sb2NrKTsKKworCWRvIHsKKwkJc3RydWN0IGk5MTVfYnVkZHlfYmxvY2sgKmJsb2NrOworCQl1 bnNpZ25lZCBpbnQgb3JkZXI7CisKKwkJb3JkZXIgPSBmbHMobl9wYWdlcykgLSAxOworCQlHRU1f QlVHX09OKG9yZGVyID4gbWVtLT5tbS5tYXhfb3JkZXIpOworCQlHRU1fQlVHX09OKG9yZGVyIDwg bWluX29yZGVyKTsKKworCQlkbyB7CisJCQlibG9jayA9IGk5MTVfYnVkZHlfYWxsb2MoJm1lbS0+ bW0sIG9yZGVyKTsKKwkJCWlmICghSVNfRVJSKGJsb2NrKSkKKwkJCQlicmVhazsKKworCQkJaWYg KG9yZGVyLS0gPT0gbWluX29yZGVyKQorCQkJCWdvdG8gZXJyX2ZyZWVfYmxvY2tzOworCQl9IHdo aWxlICgxKTsKKworCQluX3BhZ2VzIC09IEJJVChvcmRlcik7CisKKwkJYmxvY2stPnByaXZhdGUg PSBtZW07CisJCWxpc3RfYWRkKCZibG9jay0+bGluaywgYmxvY2tzKTsKKworCQlpZiAoIW5fcGFn ZXMpCisJCQlicmVhazsKKwl9IHdoaWxlICgxKTsKKworCW11dGV4X3VubG9jaygmbWVtLT5tbV9s b2NrKTsKKwlyZXR1cm4gMDsKKworZXJyX2ZyZWVfYmxvY2tzOgorCWludGVsX21lbW9yeV9yZWdp b25fZnJlZV9wYWdlcyhtZW0sIGJsb2Nrcyk7CisJbXV0ZXhfdW5sb2NrKCZtZW0tPm1tX2xvY2sp OworCXJldHVybiAtRU5YSU87Cit9CisKK3N0cnVjdCBpOTE1X2J1ZGR5X2Jsb2NrICoKK19faW50 ZWxfbWVtb3J5X3JlZ2lvbl9nZXRfYmxvY2tfYnVkZHkoc3RydWN0IGludGVsX21lbW9yeV9yZWdp b24gKm1lbSwKKwkJCQkgICAgICByZXNvdXJjZV9zaXplX3Qgc2l6ZSwKKwkJCQkgICAgICB1bnNp Z25lZCBpbnQgZmxhZ3MpCit7CisJc3RydWN0IGk5MTVfYnVkZHlfYmxvY2sgKmJsb2NrOworCUxJ U1RfSEVBRChibG9ja3MpOworCWludCByZXQ7CisKKwlyZXQgPSBfX2ludGVsX21lbW9yeV9yZWdp b25fZ2V0X3BhZ2VzX2J1ZGR5KG1lbSwgc2l6ZSwgZmxhZ3MsICZibG9ja3MpOworCWlmIChyZXQp CisJCXJldHVybiBFUlJfUFRSKHJldCk7CisKKwlibG9jayA9IGxpc3RfZmlyc3RfZW50cnkoJmJs b2NrcywgdHlwZW9mKCpibG9jayksIGxpbmspOworCWxpc3RfZGVsX2luaXQoJmJsb2NrLT5saW5r KTsKKwlyZXR1cm4gYmxvY2s7Cit9CisKK2ludCBpbnRlbF9tZW1vcnlfcmVnaW9uX2luaXRfYnVk ZHkoc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSkKK3sKKwlyZXR1cm4gaTkxNV9idWRk eV9pbml0KCZtZW0tPm1tLCByZXNvdXJjZV9zaXplKCZtZW0tPnJlZ2lvbiksCisJCQkgICAgICAg UEFHRV9TSVpFKTsKK30KKwordm9pZCBpbnRlbF9tZW1vcnlfcmVnaW9uX3JlbGVhc2VfYnVkZHko c3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSkKK3sKKwlpOTE1X2J1ZGR5X2ZpbmkoJm1l bS0+bW0pOworfQorCitzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqCitpbnRlbF9tZW1vcnlf cmVnaW9uX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKKwkJCSAgIHJlc291 cmNlX3NpemVfdCBzdGFydCwKKwkJCSAgIHJlc291cmNlX3NpemVfdCBzaXplLAorCQkJICAgcmVz b3VyY2Vfc2l6ZV90IG1pbl9wYWdlX3NpemUsCisJCQkgICByZXNvdXJjZV9zaXplX3QgaW9fc3Rh cnQsCisJCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbl9vcHMgKm9wcykKK3sK KwlzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqbWVtOworCWludCBlcnI7CisKKwltZW0gPSBr emFsbG9jKHNpemVvZigqbWVtKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFtZW0pCisJCXJldHVybiBF UlJfUFRSKC1FTk9NRU0pOworCisJbWVtLT5pOTE1ID0gaTkxNTsKKwltZW0tPnJlZ2lvbiA9IChz dHJ1Y3QgcmVzb3VyY2UpREVGSU5FX1JFU19NRU0oc3RhcnQsIHNpemUpOworCW1lbS0+aW9fc3Rh cnQgPSBpb19zdGFydDsKKwltZW0tPm1pbl9wYWdlX3NpemUgPSBtaW5fcGFnZV9zaXplOworCW1l bS0+b3BzID0gb3BzOworCisJbXV0ZXhfaW5pdCgmbWVtLT5tbV9sb2NrKTsKKworCWlmIChvcHMt PmluaXQpIHsKKwkJZXJyID0gb3BzLT5pbml0KG1lbSk7CisJCWlmIChlcnIpCisJCQlnb3RvIGVy cl9mcmVlOworCX0KKworCWtyZWZfaW5pdCgmbWVtLT5rcmVmKTsKKwlyZXR1cm4gbWVtOworCitl cnJfZnJlZToKKwlrZnJlZShtZW0pOworCXJldHVybiBFUlJfUFRSKGVycik7Cit9CisKK3N0YXRp YyB2b2lkIF9faW50ZWxfbWVtb3J5X3JlZ2lvbl9kZXN0cm95KHN0cnVjdCBrcmVmICprcmVmKQor eworCXN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICptZW0gPQorCQljb250YWluZXJfb2Yoa3Jl ZiwgdHlwZW9mKCptZW0pLCBrcmVmKTsKKworCWlmIChtZW0tPm9wcy0+cmVsZWFzZSkKKwkJbWVt LT5vcHMtPnJlbGVhc2UobWVtKTsKKworCW11dGV4X2Rlc3Ryb3koJm1lbS0+bW1fbG9jayk7CisJ a2ZyZWUobWVtKTsKK30KKworc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKgoraW50ZWxfbWVt b3J5X3JlZ2lvbl9nZXQoc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSkKK3sKKwlrcmVm X2dldCgmbWVtLT5rcmVmKTsKKwlyZXR1cm4gbWVtOworfQorCit2b2lkIGludGVsX21lbW9yeV9y ZWdpb25fcHV0KHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICptZW0pCit7CisJa3JlZl9wdXQo Jm1lbS0+a3JlZiwgX19pbnRlbF9tZW1vcnlfcmVnaW9uX2Rlc3Ryb3kpOworfQorCisjaWYgSVNf RU5BQkxFRChDT05GSUdfRFJNX0k5MTVfU0VMRlRFU1QpCisjaW5jbHVkZSAic2VsZnRlc3RzL2lu dGVsX21lbW9yeV9yZWdpb24uYyIKKyNpbmNsdWRlICJzZWxmdGVzdHMvbW9ja19yZWdpb24uYyIK KyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbWVtb3J5X3Jl Z2lvbi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbWVtb3J5X3JlZ2lvbi5oCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMmVhMTdkNmMzMWVkCi0tLSAvZGV2 L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbWVtb3J5X3JlZ2lvbi5oCkBA IC0wLDAgKzEsODMgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8KKy8qCisg KiBDb3B5cmlnaHQgwqkgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICovCisKKyNpZm5kZWYgX19J TlRFTF9NRU1PUllfUkVHSU9OX0hfXworI2RlZmluZSBfX0lOVEVMX01FTU9SWV9SRUdJT05fSF9f CisKKyNpbmNsdWRlIDxsaW51eC9rcmVmLmg+CisjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+Cisj aW5jbHVkZSA8bGludXgvbXV0ZXguaD4KKyNpbmNsdWRlIDxsaW51eC9pby1tYXBwaW5nLmg+CisK KyNpbmNsdWRlICJpOTE1X2J1ZGR5LmgiCisKK3N0cnVjdCBkcm1faTkxNV9wcml2YXRlOworc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3Q7CitzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbjsKK3N0 cnVjdCBzZ190YWJsZTsKKworI2RlZmluZSBJOTE1X0FMTE9DX01JTl9QQUdFX1NJWkUgICBCSVQo MCkKKworc3RydWN0IGludGVsX21lbW9yeV9yZWdpb25fb3BzIHsKKwl1bnNpZ25lZCBpbnQgZmxh Z3M7CisKKwlpbnQgKCppbml0KShzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqbWVtKTsKKwl2 b2lkICgqcmVsZWFzZSkoc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSk7CisKKwlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqCisJKCpjcmVhdGVfb2JqZWN0KShzdHJ1Y3QgaW50ZWxf bWVtb3J5X3JlZ2lvbiAqbWVtLAorCQkJIHJlc291cmNlX3NpemVfdCBzaXplLAorCQkJIHVuc2ln bmVkIGludCBmbGFncyk7Cit9OworCitzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiB7CisJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTU7CisKKwljb25zdCBzdHJ1Y3QgaW50ZWxfbWVtb3J5 X3JlZ2lvbl9vcHMgKm9wczsKKworCXN0cnVjdCBpb19tYXBwaW5nIGlvbWFwOworCXN0cnVjdCBy ZXNvdXJjZSByZWdpb247CisKKwlzdHJ1Y3QgaTkxNV9idWRkeV9tbSBtbTsKKwlzdHJ1Y3QgbXV0 ZXggbW1fbG9jazsKKworCXN0cnVjdCBrcmVmIGtyZWY7CisKKwlyZXNvdXJjZV9zaXplX3QgaW9f c3RhcnQ7CisJcmVzb3VyY2Vfc2l6ZV90IG1pbl9wYWdlX3NpemU7CisKKwl1bnNpZ25lZCBpbnQg dHlwZTsKKwl1bnNpZ25lZCBpbnQgaW5zdGFuY2U7CisJdW5zaWduZWQgaW50IGlkOworfTsKKwor aW50IGludGVsX21lbW9yeV9yZWdpb25faW5pdF9idWRkeShzdHJ1Y3QgaW50ZWxfbWVtb3J5X3Jl Z2lvbiAqbWVtKTsKK3ZvaWQgaW50ZWxfbWVtb3J5X3JlZ2lvbl9yZWxlYXNlX2J1ZGR5KHN0cnVj dCBpbnRlbF9tZW1vcnlfcmVnaW9uICptZW0pOworCitpbnQgX19pbnRlbF9tZW1vcnlfcmVnaW9u X2dldF9wYWdlc19idWRkeShzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqbWVtLAorCQkJCQkg IHJlc291cmNlX3NpemVfdCBzaXplLAorCQkJCQkgIHVuc2lnbmVkIGludCBmbGFncywKKwkJCQkJ ICBzdHJ1Y3QgbGlzdF9oZWFkICpibG9ja3MpOworc3RydWN0IGk5MTVfYnVkZHlfYmxvY2sgKgor X19pbnRlbF9tZW1vcnlfcmVnaW9uX2dldF9ibG9ja19idWRkeShzdHJ1Y3QgaW50ZWxfbWVtb3J5 X3JlZ2lvbiAqbWVtLAorCQkJCSAgICAgIHJlc291cmNlX3NpemVfdCBzaXplLAorCQkJCSAgICAg IHVuc2lnbmVkIGludCBmbGFncyk7Cit2b2lkIF9faW50ZWxfbWVtb3J5X3JlZ2lvbl9wdXRfcGFn ZXNfYnVkZHkoc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSwKKwkJCQkJICAgc3RydWN0 IGxpc3RfaGVhZCAqYmxvY2tzKTsKK3ZvaWQgX19pbnRlbF9tZW1vcnlfcmVnaW9uX3B1dF9ibG9j a19idWRkeShzdHJ1Y3QgaTkxNV9idWRkeV9ibG9jayAqYmxvY2spOworCitzdHJ1Y3QgaW50ZWxf bWVtb3J5X3JlZ2lvbiAqCitpbnRlbF9tZW1vcnlfcmVnaW9uX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNSwKKwkJCSAgIHJlc291cmNlX3NpemVfdCBzdGFydCwKKwkJCSAgIHJl c291cmNlX3NpemVfdCBzaXplLAorCQkJICAgcmVzb3VyY2Vfc2l6ZV90IG1pbl9wYWdlX3NpemUs CisJCQkgICByZXNvdXJjZV9zaXplX3QgaW9fc3RhcnQsCisJCQkgICBjb25zdCBzdHJ1Y3QgaW50 ZWxfbWVtb3J5X3JlZ2lvbl9vcHMgKm9wcyk7CisKK3N0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9u ICoKK2ludGVsX21lbW9yeV9yZWdpb25fZ2V0KHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICpt ZW0pOwordm9pZCBpbnRlbF9tZW1vcnlfcmVnaW9uX3B1dChzdHJ1Y3QgaW50ZWxfbWVtb3J5X3Jl Z2lvbiAqbWVtKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9z ZWxmdGVzdHMvaTkxNV9tb2NrX3NlbGZ0ZXN0cy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2Vs ZnRlc3RzL2k5MTVfbW9ja19zZWxmdGVzdHMuaAppbmRleCBiODgwODRmZTMyNjkuLmFhNWEwZTdm NWQ5ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfbW9j a19zZWxmdGVzdHMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9t b2NrX3NlbGZ0ZXN0cy5oCkBAIC0yNiwzICsyNiw0IEBAIHNlbGZ0ZXN0KGd0dCwgaTkxNV9nZW1f Z3R0X21vY2tfc2VsZnRlc3RzKQogc2VsZnRlc3QoaHVnZXBhZ2VzLCBpOTE1X2dlbV9odWdlX3Bh Z2VfbW9ja19zZWxmdGVzdHMpCiBzZWxmdGVzdChjb250ZXh0cywgaTkxNV9nZW1fY29udGV4dF9t b2NrX3NlbGZ0ZXN0cykKIHNlbGZ0ZXN0KGJ1ZGR5LCBpOTE1X2J1ZGR5X21vY2tfc2VsZnRlc3Rz KQorc2VsZnRlc3QobWVtb3J5X3JlZ2lvbiwgaW50ZWxfbWVtb3J5X3JlZ2lvbl9tb2NrX3NlbGZ0 ZXN0cykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9t ZW1vcnlfcmVnaW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfbWVt b3J5X3JlZ2lvbi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNTNm NGYyZDlmNjU1Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRl c3RzL2ludGVsX21lbW9yeV9yZWdpb24uYwpAQCAtMCwwICsxLDExNSBAQAorLy8gU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IE1JVAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBv cmF0aW9uCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L3ByaW1lX251bWJlcnMuaD4KKworI2luY2x1 ZGUgIi4uL2k5MTVfc2VsZnRlc3QuaCIKKworI2luY2x1ZGUgIm1vY2tfZHJtLmgiCisjaW5jbHVk ZSAibW9ja19nZW1fZGV2aWNlLmgiCisjaW5jbHVkZSAibW9ja19yZWdpb24uaCIKKworI2luY2x1 ZGUgImdlbS9pOTE1X2dlbV9yZWdpb24uaCIKKyNpbmNsdWRlICJnZW0vc2VsZnRlc3RzL21vY2tf Y29udGV4dC5oIgorCitzdGF0aWMgdm9pZCBjbG9zZV9vYmplY3RzKHN0cnVjdCBpbnRlbF9tZW1v cnlfcmVnaW9uICptZW0sCisJCQkgIHN0cnVjdCBsaXN0X2hlYWQgKm9iamVjdHMpCit7CisJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBtZW0tPmk5MTU7CisJc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaiwgKm9uOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKG9iaiwg b24sIG9iamVjdHMsIHN0X2xpbmspIHsKKwkJaWYgKGk5MTVfZ2VtX29iamVjdF9oYXNfcGlubmVk X3BhZ2VzKG9iaikpCisJCQlpOTE1X2dlbV9vYmplY3RfdW5waW5fcGFnZXMob2JqKTsKKwkJLyog Tm8gcG9sbHV0aW5nIHRoZSBtZW1vcnkgcmVnaW9uIGJldHdlZW4gdGVzdHMgKi8KKwkJX19pOTE1 X2dlbV9vYmplY3RfcHV0X3BhZ2VzKG9iaiwgSTkxNV9NTV9OT1JNQUwpOworCQlpOTE1X2dlbV9v YmplY3RfcHV0KG9iaik7CisJCWxpc3RfZGVsKCZvYmotPnN0X2xpbmspOworCX0KKworCWNvbmRf cmVzY2hlZCgpOworCisJaTkxNV9nZW1fZHJhaW5fZnJlZWRfb2JqZWN0cyhpOTE1KTsKK30KKwor c3RhdGljIGludCBpZ3RfbW9ja19maWxsKHZvaWQgKmFyZykKK3sKKwlzdHJ1Y3QgaW50ZWxfbWVt b3J5X3JlZ2lvbiAqbWVtID0gYXJnOworCXJlc291cmNlX3NpemVfdCB0b3RhbCA9IHJlc291cmNl X3NpemUoJm1lbS0+cmVnaW9uKTsKKwlyZXNvdXJjZV9zaXplX3QgcGFnZV9zaXplOworCXJlc291 cmNlX3NpemVfdCByZW07CisJdW5zaWduZWQgbG9uZyBtYXhfcGFnZXM7CisJdW5zaWduZWQgbG9u ZyBwYWdlX251bTsKKwlMSVNUX0hFQUQob2JqZWN0cyk7CisJaW50IGVyciA9IDA7CisKKwlwYWdl X3NpemUgPSBtZW0tPm1tLmNodW5rX3NpemU7CisJbWF4X3BhZ2VzID0gZGl2NjRfdTY0KHRvdGFs LCBwYWdlX3NpemUpOworCXJlbSA9IHRvdGFsOworCisJZm9yX2VhY2hfcHJpbWVfbnVtYmVyX2Zy b20ocGFnZV9udW0sIDEsIG1heF9wYWdlcykgeworCQlyZXNvdXJjZV9zaXplX3Qgc2l6ZSA9IHBh Z2VfbnVtICogcGFnZV9zaXplOworCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwor CisJCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfcmVnaW9uKG1lbSwgc2l6ZSwgMCk7CisJ CWlmIChJU19FUlIob2JqKSkgeworCQkJZXJyID0gUFRSX0VSUihvYmopOworCQkJYnJlYWs7CisJ CX0KKworCQllcnIgPSBpOTE1X2dlbV9vYmplY3RfcGluX3BhZ2VzKG9iaik7CisJCWlmIChlcnIp IHsKKwkJCWk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKKwkJCWJyZWFrOworCQl9CisKKwkJbGlz dF9hZGQoJm9iai0+c3RfbGluaywgJm9iamVjdHMpOworCQlyZW0gLT0gc2l6ZTsKKwl9CisKKwlp ZiAoZXJyID09IC1FTk9NRU0pCisJCWVyciA9IDA7CisJaWYgKGVyciA9PSAtRU5YSU8pIHsKKwkJ aWYgKHBhZ2VfbnVtICogcGFnZV9zaXplIDw9IHJlbSkgeworCQkJcHJfZXJyKCIlcyBmYWlsZWQs IHNwYWNlIHN0aWxsIGxlZnQgaW4gcmVnaW9uXG4iLAorCQkJICAgICAgIF9fZnVuY19fKTsKKwkJ CWVyciA9IC1FSU5WQUw7CisJCX0gZWxzZSB7CisJCQllcnIgPSAwOworCQl9CisJfQorCisJY2xv c2Vfb2JqZWN0cyhtZW0sICZvYmplY3RzKTsKKworCXJldHVybiBlcnI7Cit9CisKK2ludCBpbnRl bF9tZW1vcnlfcmVnaW9uX21vY2tfc2VsZnRlc3RzKHZvaWQpCit7CisJc3RhdGljIGNvbnN0IHN0 cnVjdCBpOTE1X3N1YnRlc3QgdGVzdHNbXSA9IHsKKwkJU1VCVEVTVChpZ3RfbW9ja19maWxsKSwK Kwl9OworCXN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICptZW07CisJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTU7CisJaW50IGVycjsKKworCWk5MTUgPSBtb2NrX2dlbV9kZXZpY2UoKTsK KwlpZiAoIWk5MTUpCisJCXJldHVybiAtRU5PTUVNOworCisJbWVtID0gbW9ja19yZWdpb25fY3Jl YXRlKGk5MTUsIDAsIFNaXzJHLCBJOTE1X0dUVF9QQUdFX1NJWkVfNEssIDApOworCWlmIChJU19F UlIobWVtKSkgeworCQlwcl9lcnIoImZhaWxlZCB0byBjcmVhdGUgbWVtb3J5IHJlZ2lvblxuIik7 CisJCWVyciA9IFBUUl9FUlIobWVtKTsKKwkJZ290byBvdXRfdW5yZWY7CisJfQorCisJZXJyID0g aTkxNV9zdWJ0ZXN0cyh0ZXN0cywgbWVtKTsKKworCWludGVsX21lbW9yeV9yZWdpb25fcHV0KG1l bSk7CitvdXRfdW5yZWY6CisJZHJtX2Rldl9wdXQoJmk5MTUtPmRybSk7CisJcmV0dXJuIGVycjsK K30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2dlbV9k ZXZpY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2dlbV9kZXZpY2Uu YwppbmRleCBkMTRjNmQ4NzM1ZmUuLjljMjJkNDFiMzBjZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ2VtX2RldmljZS5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2dlbV9kZXZpY2UuYwpAQCAtMzMsNiArMzMsNyBAQAog I2luY2x1ZGUgIm1vY2tfZ2VtX2RldmljZS5oIgogI2luY2x1ZGUgIm1vY2tfZ3R0LmgiCiAjaW5j bHVkZSAibW9ja191bmNvcmUuaCIKKyNpbmNsdWRlICJtb2NrX3JlZ2lvbi5oIgogCiAjaW5jbHVk ZSAiZ2VtL3NlbGZ0ZXN0cy9tb2NrX2NvbnRleHQuaCIKICNpbmNsdWRlICJnZW0vc2VsZnRlc3Rz L21vY2tfZ2VtX29iamVjdC5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2Vs ZnRlc3RzL21vY2tfcmVnaW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9j a19yZWdpb24uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjBlOWE1 NzVlZGUzYgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0 cy9tb2NrX3JlZ2lvbi5jCkBAIC0wLDAgKzEsNTkgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBNSVQKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICov CisKKyNpbmNsdWRlICJnZW0vaTkxNV9nZW1fcmVnaW9uLmgiCisjaW5jbHVkZSAiaW50ZWxfbWVt b3J5X3JlZ2lvbi5oIgorCisjaW5jbHVkZSAibW9ja19yZWdpb24uaCIKKworc3RhdGljIGNvbnN0 IHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0X29wcyBtb2NrX3JlZ2lvbl9vYmpfb3BzID0gewor CS5nZXRfcGFnZXMgPSBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2VzX2J1ZGR5LAorCS5wdXRfcGFn ZXMgPSBpOTE1X2dlbV9vYmplY3RfcHV0X3BhZ2VzX2J1ZGR5LAorCS5yZWxlYXNlID0gaTkxNV9n ZW1fb2JqZWN0X3JlbGVhc2VfbWVtb3J5X3JlZ2lvbiwKK307CisKK3N0YXRpYyBzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqCittb2NrX29iamVjdF9jcmVhdGUoc3RydWN0IGludGVsX21lbW9y eV9yZWdpb24gKm1lbSwKKwkJICAgcmVzb3VyY2Vfc2l6ZV90IHNpemUsCisJCSAgIHVuc2lnbmVk IGludCBmbGFncykKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IG1lbS0+aTkx NTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOworCisJaWYgKHNpemUgPiBCSVQo bWVtLT5tbS5tYXhfb3JkZXIpICogbWVtLT5tbS5jaHVua19zaXplKQorCQlyZXR1cm4gRVJSX1BU UigtRTJCSUcpOworCisJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2FsbG9jKCk7CisJaWYgKCFvYmop CisJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCisJZHJtX2dlbV9wcml2YXRlX29iamVjdF9p bml0KCZpOTE1LT5kcm0sICZvYmotPmJhc2UsIHNpemUpOworCWk5MTVfZ2VtX29iamVjdF9pbml0 KG9iaiwgJm1vY2tfcmVnaW9uX29ial9vcHMpOworCisJb2JqLT5yZWFkX2RvbWFpbnMgPSBJOTE1 X0dFTV9ET01BSU5fQ1BVIHwgSTkxNV9HRU1fRE9NQUlOX0dUVDsKKworCWk5MTVfZ2VtX29iamVj dF9zZXRfY2FjaGVfY29oZXJlbmN5KG9iaiwgSTkxNV9DQUNIRV9OT05FKTsKKworCWk5MTVfZ2Vt X29iamVjdF9pbml0X21lbW9yeV9yZWdpb24ob2JqLCBtZW0pOworCisJcmV0dXJuIG9iajsKK30K Kworc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uX29wcyBtb2NrX3JlZ2lv bl9vcHMgPSB7CisJLmluaXQgPSBpbnRlbF9tZW1vcnlfcmVnaW9uX2luaXRfYnVkZHksCisJLnJl bGVhc2UgPSBpbnRlbF9tZW1vcnlfcmVnaW9uX3JlbGVhc2VfYnVkZHksCisJLmNyZWF0ZV9vYmpl Y3QgPSBtb2NrX29iamVjdF9jcmVhdGUsCit9OworCitzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lv biAqCittb2NrX3JlZ2lvbl9jcmVhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCisJ CSAgIHJlc291cmNlX3NpemVfdCBzdGFydCwKKwkJICAgcmVzb3VyY2Vfc2l6ZV90IHNpemUsCisJ CSAgIHJlc291cmNlX3NpemVfdCBtaW5fcGFnZV9zaXplLAorCQkgICByZXNvdXJjZV9zaXplX3Qg aW9fc3RhcnQpCit7CisJcmV0dXJuIGludGVsX21lbW9yeV9yZWdpb25fY3JlYXRlKGk5MTUsIHN0 YXJ0LCBzaXplLCBtaW5fcGFnZV9zaXplLAorCQkJCQkgIGlvX3N0YXJ0LCAmbW9ja19yZWdpb25f b3BzKTsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2Nr X3JlZ2lvbi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfcmVnaW9uLmgK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yNDYwODA4OWQ4MzMKLS0t IC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19yZWdp b24uaApAQCAtMCwwICsxLDE2IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICov CisvKgorICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaWZu ZGVmIF9fTU9DS19SRUdJT05fSAorI2RlZmluZSBfX01PQ0tfUkVHSU9OX0gKKworc3RydWN0IGlu dGVsX21lbW9yeV9yZWdpb24gKgorbW9ja19yZWdpb25fY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICppOTE1LAorCQkgICByZXNvdXJjZV9zaXplX3Qgc3RhcnQsCisJCSAgIHJlc291cmNl X3NpemVfdCBzaXplLAorCQkgICByZXNvdXJjZV9zaXplX3QgbWluX3BhZ2Vfc2l6ZSwKKwkJICAg cmVzb3VyY2Vfc2l6ZV90IGlvX3N0YXJ0KTsKKworI2VuZGlmIC8qICFfX01PQ0tfUkVHSU9OX0gg Ki8KLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4