From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [PATCH v2 36/37] HAX drm/i915: add the fake lmem region Date: Thu, 27 Jun 2019 21:56:32 +0100 Message-ID: <20190627205633.1143-37-matthew.auld@intel.com> References: <20190627205633.1143-1-matthew.auld@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id E19466E86C for ; Thu, 27 Jun 2019 20:57:24 +0000 (UTC) In-Reply-To: <20190627205633.1143-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 SW50ZW5kZWQgZm9yIHVwc3RyZWFtIHRlc3Rpbmcgc28gdGhhdCB3ZSBjYW4gc3RpbGwgZXhlcmNp c2UgdGhlIExNRU0KcGx1bWJpbmcgYW5kICFIQVNfTUFQUEFCTEVfQVBFUlRVUkUgcGF0aHMuIFNt b2tlIHRlc3RlZCBvbiBTa3VsbCBDYW55b24KZGV2aWNlLiBUaGlzIHdvcmtzIGJ5IGFsbG9jYXRp bmcgYW4gaW50ZWxfbWVtb3J5X3JlZ2lvbiBmb3IgYSByZXNlcnZlZApwb3J0aW9uIG9mIHN5c3Rl bSBtZW1vcnksIHdoaWNoIHdlIHRyZWF0IGxpa2UgTE1FTS4gRm9yIHRoZSBMTUVNQkFSIHdlCnN0 ZWFsIHRoZSBhcGVydHVyZSBhbmQgMToxIGl0IG1hcCB0byB0aGUgc3RvbGVuIHJlZ2lvbi4KClRv IGVuYWJsZSBzaW1wbHkgc2V0IGk5MTVfZmFrZV9sbWVtX3N0YXJ0PSBvbiB0aGUga2VybmVsIGNt ZGxpbmUgd2l0aCB0aGUKc3RhcnQgb2YgcmVzZXJ2ZWQgcmVnaW9uKHNlZSBtZW1tYXA9KS4gVGhl IHNpemUgb2YgdGhlIHJlZ2lvbiB3ZSBjYW4KdXNlIGlzIGRldGVybWluZWQgYnkgdGhlIHNpemUg b2YgdGhlIG1hcHBhYmxlIGFwZXJ0dXJlLCBzbyB0aGUgc2l6ZSBvZgpyZXNlcnZlZCByZWdpb24g c2hvdWxkIGJlID49IG1hcHBhYmxlX2VuZC4KCmVnLiBtZW1tYXA9MkckMTZHIGk5MTUuZmFrZV9s bWVtX3N0YXJ0PTB4NDAwMDAwMDAwCgpTaWduZWQtb2ZmLWJ5OiBNYXR0aGV3IEF1bGQgPG1hdHRo ZXcuYXVsZEBpbnRlbC5jb20+CkNjOiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBs aW51eC5pbnRlbC5jb20+CkNjOiBBYmRpZWwgSmFudWxndWUgPGFiZGllbC5qYW51bGd1ZUBsaW51 eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAgICAg ICAgIHwgMTUgKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAg ICB8ICAyICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jICAgICAgICB8ICAz ICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmMgICAgICAgICB8ICAzICsKIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmggICAgICAgICB8ICAzICstCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9tZW1vcnlfcmVnaW9uLmggfCAgNCArKwogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmVnaW9uX2xtZW0uYyAgIHwgNzYgKysrKysrKysrKysrKysrKysrKysr KwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVnaW9uX2xtZW0uaCAgIHwgIDMgKwogOCBm aWxlcyBjaGFuZ2VkLCAxMDggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5jCmluZGV4IDNkNmZlOTkzZjI2ZS4uODkxOTM3ZGU2YTJiIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmMKQEAgLTE4NjksNiArMTg2OSw5IEBAIHN0YXRpYyB2b2lkIGk5MTVfZHJp dmVyX2Rlc3Ryb3koc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJcGNpX3NldF9kcnZk YXRhKHBkZXYsIE5VTEwpOwogfQogCitzdHJ1Y3QgcmVzb3VyY2UgaW50ZWxfZ3JhcGhpY3NfZmFr ZV9sbWVtX3JlcyBfX3JvX2FmdGVyX2luaXQgPSBERUZJTkVfUkVTX01FTSgwLCAwKTsKK0VYUE9S VF9TWU1CT0woaW50ZWxfZ3JhcGhpY3NfZmFrZV9sbWVtX3Jlcyk7CisKIC8qKgogICogaTkxNV9k cml2ZXJfbG9hZCAtIHNldHVwIGNoaXAgYW5kIGNyZWF0ZSBhbiBpbml0aWFsIGNvbmZpZwogICog QHBkZXY6IFBDSSBkZXZpY2UKQEAgLTE4OTUsNiArMTg5OCwxOCBAQCBpbnQgaTkxNV9kcml2ZXJf bG9hZChzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVu dCkKIAlpZiAoIWk5MTVfbW9kcGFyYW1zLm51Y2xlYXJfcGFnZWZsaXAgJiYgbWF0Y2hfaW5mby0+ Z2VuIDwgNSkKIAkJZGV2X3ByaXYtPmRybS5kcml2ZXJfZmVhdHVyZXMgJj0gfkRSSVZFUl9BVE9N SUM7CiAKKwkvKiBDaGVjayBpZiB3ZSBuZWVkIGZha2UgTE1FTSAqLworCWlmIChJTlRFTF9HRU4o ZGV2X3ByaXYpID49IDkgJiYgaTkxNV9tb2RwYXJhbXMuZmFrZV9sbWVtX3N0YXJ0ID4gMCkgewor CQlpbnRlbF9ncmFwaGljc19mYWtlX2xtZW1fcmVzLnN0YXJ0ID0gaTkxNV9tb2RwYXJhbXMuZmFr ZV9sbWVtX3N0YXJ0OworCQlpbnRlbF9ncmFwaGljc19mYWtlX2xtZW1fcmVzLmVuZCA9IFNaXzJH OyAvKiBQbGFjZWhvbGRlcjsgZGVwZW5kcyBvbiBhcGVydHVyZSBzaXplICovCisKKwkJbWt3cml0 ZV9kZXZpY2VfaW5mbyhkZXZfcHJpdiktPm1lbW9yeV9yZWdpb25zID0KKwkJCVJFR0lPTl9TTUVN IHwgUkVHSU9OX0xNRU07CisJCUdFTV9CVUdfT04oIUhBU19MTUVNKGRldl9wcml2KSk7CisKKwkJ cHJfaW5mbygiSW50ZWwgZ3JhcGhpY3MgZmFrZSBMTUVNIHN0YXJ0cyBhdCAlcGFcbiIsICZpbnRl bF9ncmFwaGljc19mYWtlX2xtZW1fcmVzLnN0YXJ0KTsKKwl9CisKIAlyZXQgPSBwY2lfZW5hYmxl X2RldmljZShwZGV2KTsKIAlpZiAocmV0KQogCQlnb3RvIG91dF9maW5pOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKaW5kZXggNzE1ZTYzMGE4NzJkLi45YTJjNzlmYTgwODggMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaApAQCAtMjgxNSw0ICsyODE1LDYgQEAgc3RhdGljIGlubGluZSB2b2lkIGFkZF90 YWludF9mb3JfQ0kodW5zaWduZWQgaW50IHRhaW50KQogCWFkZF90YWludCh0YWludCwgTE9DS0RF UF9TVElMTF9PSyk7CiB9CiAKK2V4dGVybiBzdHJ1Y3QgcmVzb3VyY2UgaW50ZWxfZ3JhcGhpY3Nf ZmFrZV9sbWVtX3JlczsKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCmlu ZGV4IDNhODk2NTA0OGEwNi4uZGY0OTI4YzhiMTBhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9ndHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9ndHQuYwpAQCAtMjkzOCw2ICsyOTM4LDkgQEAgaW50IGk5MTVfZ2VtX2luaXRfbWVtb3J5X3Jl Z2lvbnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJCWNhc2UgSU5URUxfU1RPTEVO OgogCQkJbWVtID0gaTkxNV9nZW1fc3RvbGVuX3NldHVwKGk5MTUpOwogCQkJYnJlYWs7CisJCWNh c2UgSU5URUxfTE1FTToKKwkJCW1lbSA9IGk5MTVfZ2VtX3NldHVwX2Zha2VfbG1lbShpOTE1KTsK KwkJCWJyZWFrOwogCQl9CiAKIAkJaWYgKElTX0VSUihtZW0pKSB7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9wYXJhbXMuYwppbmRleCAyOTY0NTJmOWVmZTQuLjU5YTZhZDYyNjFiOSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJhbXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3BhcmFtcy5jCkBAIC0xNjQsNiArMTY0LDkgQEAgaTkxNV9wYXJhbV9uYW1lZF91 bnNhZmUoZG1jX2Zpcm13YXJlX3BhdGgsIGNoYXJwLCAwNDAwLAogaTkxNV9wYXJhbV9uYW1lZF91 bnNhZmUoZW5hYmxlX2RwX21zdCwgYm9vbCwgMDYwMCwKIAkiRW5hYmxlIG11bHRpLXN0cmVhbSB0 cmFuc3BvcnQgKE1TVCkgZm9yIG5ldyBEaXNwbGF5UG9ydCBzaW5rcy4gKGRlZmF1bHQ6IHRydWUp Iik7CiAKK2k5MTVfcGFyYW1fbmFtZWRfdW5zYWZlKGZha2VfbG1lbV9zdGFydCwgdWxvbmcsIDA2 MDAsCisJIkZha2UgTE1FTSBzdGFydCBvZmZzZXQgKGRlZmF1bHQ6IDApIik7CisKICNpZiBJU19F TkFCTEVEKENPTkZJR19EUk1fSTkxNV9ERUJVRykKIGk5MTVfcGFyYW1fbmFtZWRfdW5zYWZlKGlu amVjdF9sb2FkX2ZhaWx1cmUsIHVpbnQsIDA0MDAsCiAJIkZvcmNlIGFuIGVycm9yIGFmdGVyIGEg bnVtYmVyIG9mIGZhaWx1cmUgY2hlY2sgcG9pbnRzICgwOmRpc2FibGVkIChkZWZhdWx0KSwgTjpm b3JjZSBmYWlsdXJlIGF0IHRoZSBOdGggZmFpbHVyZSBjaGVjayBwb2ludCkiKTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3BhcmFtcy5oCmluZGV4IGQyOWFkZTNiN2RlNi4uYjk2OTg3MjJjOTU3IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5oCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmgKQEAgLTc3LDcgKzc3LDggQEAgc3RydWN0IGRybV9w cmludGVyOwogCXBhcmFtKGJvb2wsIHZlcmJvc2Vfc3RhdGVfY2hlY2tzLCB0cnVlKSBcCiAJcGFy YW0oYm9vbCwgbnVjbGVhcl9wYWdlZmxpcCwgZmFsc2UpIFwKIAlwYXJhbShib29sLCBlbmFibGVf ZHBfbXN0LCB0cnVlKSBcCi0JcGFyYW0oYm9vbCwgZW5hYmxlX2d2dCwgZmFsc2UpCisJcGFyYW0o Ym9vbCwgZW5hYmxlX2d2dCwgZmFsc2UpIFwKKwlwYXJhbSh1bnNpZ25lZCBsb25nLCBmYWtlX2xt ZW1fc3RhcnQsIDApCiAKICNkZWZpbmUgTUVNQkVSKFQsIG1lbWJlciwgLi4uKSBUIG1lbWJlcjsK IHN0cnVjdCBpOTE1X3BhcmFtcyB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9tZW1vcnlfcmVnaW9uLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tZW1vcnlf cmVnaW9uLmgKaW5kZXggYmVlMGMwMjJkMjk1Li40OTYwMDk2ZWMzMGYgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21lbW9yeV9yZWdpb24uaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9tZW1vcnlfcmVnaW9uLmgKQEAgLTksNiArOSw3IEBACiAjaW5jbHVk ZSA8bGludXgvaW9wb3J0Lmg+CiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KICNpbmNsdWRlIDxs aW51eC9pby1tYXBwaW5nLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9tbS5oPgogCiAjaW5jbHVkZSAi aTkxNV9idWRkeS5oIgogCkBAIC03MSw2ICs3Miw5IEBAIHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVn aW9uIHsKIAlzdHJ1Y3QgaW9fbWFwcGluZyBpb21hcDsKIAlzdHJ1Y3QgcmVzb3VyY2UgcmVnaW9u OwogCisJLyogRm9yIGZha2luZyBmb3IgbG1lbSAqLworCXN0cnVjdCBkcm1fbW1fbm9kZSBmYWtl X21hcHBhYmxlOworCiAJc3RydWN0IGk5MTVfYnVkZHlfbW0gbW07CiAJc3RydWN0IG11dGV4IG1t X2xvY2s7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JlZ2lvbl9s bWVtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yZWdpb25fbG1lbS5jCmluZGV4IDcw MDNlN2JmZjkwYy4uMjAyODI2MWY0ZTgwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yZWdpb25fbG1lbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jl Z2lvbl9sbWVtLmMKQEAgLTI0MSw5ICsyNDEsNDEgQEAgbG1lbV9jcmVhdGVfb2JqZWN0KHN0cnVj dCBpbnRlbF9tZW1vcnlfcmVnaW9uICptZW0sCiAJcmV0dXJuIG9iajsKIH0KIAorc3RhdGljIGlu dCBpOTE1X2dlbV9pbml0X2Zha2VfbG1lbV9iYXIoc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24g Km1lbSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IG1lbS0+aTkxNTsKKwlz dHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0ID0gJmk5MTUtPmdndHQ7CisJdW5zaWduZWQgbG9uZyBuOwor CWludCByZXQ7CisKKwltZW0tPmZha2VfbWFwcGFibGUuc3RhcnQgPSAwOworCW1lbS0+ZmFrZV9t YXBwYWJsZS5zaXplID0gcmVzb3VyY2Vfc2l6ZSgmbWVtLT5yZWdpb24pOworCW1lbS0+ZmFrZV9t YXBwYWJsZS5jb2xvciA9IEk5MTVfQ09MT1JfVU5FVklDVEFCTEU7CisKKwlyZXQgPSBkcm1fbW1f cmVzZXJ2ZV9ub2RlKCZnZ3R0LT52bS5tbSwgJm1lbS0+ZmFrZV9tYXBwYWJsZSk7CisJaWYgKHJl dCkKKwkJcmV0dXJuIHJldDsKKworCS8qIDE6MSBtYXAgdGhlIG1hcHBhYmxlIGFwZXJ0dXJlIHRv IG91ciByZXNlcnZlZCByZWdpb24gKi8KKwlmb3IgKG4gPSAwOyBuIDwgbWVtLT5mYWtlX21hcHBh YmxlLnNpemUgPj4gUEFHRV9TSElGVDsgKytuKSB7CisJCWdndHQtPnZtLmluc2VydF9wYWdlKCZn Z3R0LT52bSwKKwkJCQkgICAgIG1lbS0+cmVnaW9uLnN0YXJ0ICsgKG4gPDwgUEFHRV9TSElGVCks CisJCQkJICAgICBuIDw8IFBBR0VfU0hJRlQsIEk5MTVfQ0FDSEVfTk9ORSwgMCk7CisJfQorCisJ cmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGk5MTVfZ2VtX3JlbGFzZV9mYWtlX2xtZW1fYmFy KHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICptZW0pCit7CisJaWYgKGRybV9tbV9ub2RlX2Fs bG9jYXRlZCgmbWVtLT5mYWtlX21hcHBhYmxlKSkKKwkJZHJtX21tX3JlbW92ZV9ub2RlKCZtZW0t PmZha2VfbWFwcGFibGUpOworfQorCiBzdGF0aWMgdm9pZAogcmVnaW9uX2xtZW1fcmVsZWFzZShz dHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqbWVtKQogeworCWk5MTVfZ2VtX3JlbGFzZV9mYWtl X2xtZW1fYmFyKG1lbSk7CiAJaW9fbWFwcGluZ19maW5pKCZtZW0tPmlvbWFwKTsKIAlpOTE1X21l bW9yeV9yZWdpb25fcmVsZWFzZV9idWRkeShtZW0pOwogfQpAQCAtMjUzLDYgKzI4NSwxNCBAQCBy ZWdpb25fbG1lbV9pbml0KHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICptZW0pCiB7CiAJaW50 IHJldDsKIAorCWlmIChpbnRlbF9ncmFwaGljc19mYWtlX2xtZW1fcmVzLnN0YXJ0KSB7CisJCXJl dCA9IGk5MTVfZ2VtX2luaXRfZmFrZV9sbWVtX2JhcihtZW0pOworCQlpZiAocmV0KSB7CisJCQlH RU1fQlVHX09OKDEpOworCQkJcmV0dXJuIHJldDsKKwkJfQorCX0KKwogCWlmICghaW9fbWFwcGlu Z19pbml0X3djKCZtZW0tPmlvbWFwLAogCQkJCW1lbS0+aW9fc3RhcnQsCiAJCQkJcmVzb3VyY2Vf c2l6ZSgmbWVtLT5yZWdpb24pKSkKQEAgLTI3OCw2ICszMTgsNyBAQCB2b2lkIF9faW9tZW0gKmk5 MTVfZ2VtX29iamVjdF9sbWVtX2lvX21hcF9wYWdlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmosCiAJcmVzb3VyY2Vfc2l6ZV90IG9mZnNldDsKIAogCW9mZnNldCA9IGk5MTVfZ2VtX29i amVjdF9nZXRfZG1hX2FkZHJlc3Mob2JqLCBuKTsKKwlvZmZzZXQgLT0gaW50ZWxfZ3JhcGhpY3Nf ZmFrZV9sbWVtX3Jlcy5zdGFydDsKIAogCXJldHVybiBpb19tYXBwaW5nX21hcF9hdG9taWNfd2Mo Jm9iai0+bWVtb3J5X3JlZ2lvbi0+aW9tYXAsIG9mZnNldCk7CiB9CkBAIC0yOTEsNiArMzMyLDcg QEAgdm9pZCBfX2lvbWVtICppOTE1X2dlbV9vYmplY3RfbG1lbV9pb19tYXAoc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iaiwKIAlHRU1fQlVHX09OKCEob2JqLT5mbGFncyAmIEk5MTVfQk9f QUxMT0NfQ09OVElHVU9VUykpOwogCiAJb2Zmc2V0ID0gaTkxNV9nZW1fb2JqZWN0X2dldF9kbWFf YWRkcmVzcyhvYmosIG4pOworCW9mZnNldCAtPSBpbnRlbF9ncmFwaGljc19mYWtlX2xtZW1fcmVz LnN0YXJ0OwogCiAJcmV0dXJuIGlvX21hcHBpbmdfbWFwX3djKCZvYmotPm1lbW9yeV9yZWdpb24t PmlvbWFwLCBvZmZzZXQsIHNpemUpOwogfQpAQCAtMzA3LDYgKzM0OSw3IEBAIHJlc291cmNlX3Np emVfdCBpOTE1X2dlbV9vYmplY3RfbG1lbV9pb19vZmZzZXQoc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaiwKIAkgKiBoZXJlLCBhbmQgZWxzZXdoZXJlIGxpa2UgaW4gdGhlIGd0dCBwYXRo cy4KIAkgKi8KIAlkYWRkciA9IGk5MTVfZ2VtX29iamVjdF9nZXRfZG1hX2FkZHJlc3Mob2JqLCBu KTsKKwlkYWRkciAtPSBpbnRlbF9ncmFwaGljc19mYWtlX2xtZW1fcmVzLnN0YXJ0OwogCiAJcmV0 dXJuIG1lbS0+aW9fc3RhcnQgKyBkYWRkcjsKIH0KQEAgLTMyNiwzICszNjksMzYgQEAgaTkxNV9n ZW1fb2JqZWN0X2NyZWF0ZV9sbWVtKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCXJl dHVybiBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3JlZ2lvbihpOTE1LT5yZWdpb25zW0lOVEVMX01F TU9SWV9MTUVNXSwKIAkJCQkJICAgICBzaXplLCBmbGFncyk7CiB9CisKK3N0cnVjdCBpbnRlbF9t ZW1vcnlfcmVnaW9uICoKK2k5MTVfZ2VtX3NldHVwX2Zha2VfbG1lbShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSkKK3sKKwlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGk5MTUtPmRybS5wZGV2 OworCXN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICptZW07CisJcmVzb3VyY2Vfc2l6ZV90IG1h cHBhYmxlX2VuZDsKKwlyZXNvdXJjZV9zaXplX3QgaW9fc3RhcnQ7CisJcmVzb3VyY2Vfc2l6ZV90 IHN0YXJ0OworCisJR0VNX0JVR19PTihIQVNfTUFQUEFCTEVfQVBFUlRVUkUoaTkxNSkpOworCUdF TV9CVUdfT04oIWludGVsX2dyYXBoaWNzX2Zha2VfbG1lbV9yZXMuc3RhcnQpOworCisJLyogWW91 ciBtYXBwYWJsZSBhcGVydHVyZSBiZWxvbmdzIHRvIG1lIG5vdyEgKi8KKwltYXBwYWJsZV9lbmQg PSBwY2lfcmVzb3VyY2VfbGVuKHBkZXYsIDIpOworCWlvX3N0YXJ0ID0gcGNpX3Jlc291cmNlX3N0 YXJ0KHBkZXYsIDIpLAorCXN0YXJ0ID0gaW50ZWxfZ3JhcGhpY3NfZmFrZV9sbWVtX3Jlcy5zdGFy dDsKKworCW1lbSA9IGludGVsX21lbW9yeV9yZWdpb25fY3JlYXRlKGk5MTUsCisJCQkJCSBzdGFy dCwKKwkJCQkJIG1hcHBhYmxlX2VuZCwKKwkJCQkJIEk5MTVfR1RUX1BBR0VfU0laRV80SywKKwkJ CQkJIGlvX3N0YXJ0LAorCQkJCQkgJnJlZ2lvbl9sbWVtX29wcyk7CisJaWYgKCFJU19FUlIobWVt KSkgeworCQlEUk1fSU5GTygiSW50ZWwgZ3JhcGhpY3MgZmFrZSBMTUVNOiAlcFJcbiIsICZtZW0t PnJlZ2lvbik7CisJCURSTV9JTkZPKCJJbnRlbCBncmFwaGljcyBmYWtlIExNRU0gSU8gc3RhcnQ6 ICVsbHhcbiIsCisJCQkgKHU2NCltZW0tPmlvX3N0YXJ0KTsKKwl9CisKKwlyZXR1cm4gbWVtOwor fQorCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yZWdpb25fbG1lbS5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVnaW9uX2xtZW0uaAppbmRleCA2ODIzMjYx NWE4NzQuLjQxYmM0MTEwNjhkZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcmVnaW9uX2xtZW0uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yZWdpb25f bG1lbS5oCkBAIC0yNCw0ICsyNCw3IEBAIGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfbG1lbShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJCSAgICByZXNvdXJjZV9zaXplX3Qgc2l6ZSwK IAkJCSAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpOwogCitzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lv biAqCitpOTE1X2dlbV9zZXR1cF9mYWtlX2xtZW0oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUpOworCiAjZW5kaWYgLyogIV9fSU5URUxfUkVHSU9OX0xNRU1fSCAqLwotLSAKMi4yMC4xCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=