From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lionel Landwerlin Subject: [PATCH v16 07/13] drm/i915/perf: allow for CS OA configs to be created lazily Date: Mon, 9 Sep 2019 12:31:10 +0300 Message-ID: <20190909093116.7747-8-lionel.g.landwerlin@intel.com> References: <20190909093116.7747-1-lionel.g.landwerlin@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id E3D9589A83 for ; Mon, 9 Sep 2019 09:31:31 +0000 (UTC) In-Reply-To: <20190909093116.7747-1-lionel.g.landwerlin@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 SGVyZSB3ZSBpbnRyb2R1Y2UgYSBtZWNoYW5pc20gYnkgd2hpY2ggdGhlIGV4ZWNidWYgcGFydCBv ZiB0aGUgaTkxNQpkcml2ZXIgd2lsbCBiZSBhYmxlIHRvIHJlcXVlc3QgdGhhdCBhIGJhdGNoIGJ1 ZmZlciBjb250YWluaW5nIHRoZQpwcm9ncmFtbWluZyBmb3IgYSBwYXJ0aWN1bGFyIE9BIGNvbmZp ZyBiZSBjcmVhdGVkLgoKV2UnbGwgZXhlY3V0ZSB0aGVzZSBPQSBjb25maWd1cmF0aW9uIGJ1ZmZl cnMgcmlnaHQgYmVmb3JlIGV4ZWN1dGluZyBhCnNldCBvZiB1c2Vyc3BhY2UgY29tbWFuZHMgc28g dGhhdCBhIHBhcnRpY3VsYXIgdXNlciBiYXRjaGJ1ZmZlciBiZQpleGVjdXRlZCB3aXRoIGEgZ2l2 ZW4gT0EgY29uZmlndXJhdGlvbi4KClRoaXMgbWVjaGFuaXNtIGVzc2VudGlhbGx5IGFsbG93cyB0 aGUgdXNlcnNwYWNlIGRyaXZlciB0byBnbyB0aHJvdWdoCnNldmVyYWwgT0EgY29uZmlndXJhdGlv biB3aXRob3V0IGhhdmluZyB0byBvcGVuL2Nsb3NlIHRoZSBpOTE1L3BlcmYKc3RyZWFtLgoKdjI6 IE5vIG5lZWQgZm9yIGxvY2tpbmcgb24gb2JqZWN0IE9BIGNvbmZpZyBvYmplY3QgY3JlYXRpb24g KENocmlzKQogICAgRmx1c2ggY3B1IG1hcHBpbmcgb2YgT0EgY29uZmlnIChDaHJpcykKCnYzOiBQ cm9wZXJseSBkZWFsIHdpdGggdGhlIHBlcmZfbWV0cmljIGxvY2sgKENocmlzL0xpb25lbCkKCnY0 OiBGaXggb2EgY29uZmlnIHVucmVmL3B1dCB3aGVuIG5vdCBmb3VuZCAoTGlvbmVsKQoKdjU6IEFs bG9jYXRlIEJPcyBmb3IgY29uZmlndXJhdGlvbnMgb24gdGhlIHN0cmVhbSBpbnN0ZWFkIG9mIGds b2JhbGx5CiAgICAoTGlvbmVsKQoKdjY6IEZpeCA2NGJpdCBkaXZpc2lvbiAoQ2hyaXMpCgp2Nzog U3RvcmUgYWxsb2NhdGVkIGNvbmZpZyBCT3MgaW50byB0aGUgc3RyZWFtIChMaW9uZWwpCgpTaWdu ZWQtb2ZmLWJ5OiBMaW9uZWwgTGFuZHdlcmxpbiA8bGlvbmVsLmcubGFuZHdlcmxpbkBpbnRlbC5j b20+ClJldmlld2VkLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4g KHY0KQotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2dwdV9jb21tYW5kcy5oIHwg ICAxICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgICAgIHwgICA0 ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuYyAgICAgICAgICAgICB8IDI3MCAr KysrKysrKysrKysrKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuaCAgICAg ICAgICAgICB8ICAyNiArKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmX3R5cGVzLmgg ICAgICAgfCAgMTUgKy0KIDUgZmlsZXMgY2hhbmdlZCwgMjczIGluc2VydGlvbnMoKyksIDQzIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2dw dV9jb21tYW5kcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3B1X2NvbW1hbmRz LmgKaW5kZXggZmJhZDQwM2FiN2FjLi5iNjM3M2ZiYzkyN2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L2ludGVsX2dwdV9jb21tYW5kcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L2ludGVsX2dwdV9jb21tYW5kcy5oCkBAIC0xMzUsNiArMTM1LDcgQEAKIC8qIEdl bjExKy4gYWRkciA9IGJhc2UgKyAoY3R4X3Jlc3RvcmUgPyBvZmZzZXQgJiBHRU5NQVNLKDEyLDIp IDogb2Zmc2V0KSAqLwogI2RlZmluZSAgIE1JX0xSSV9DU19NTUlPCQkoMTw8MTkpCiAjZGVmaW5l ICAgTUlfTFJJX0ZPUkNFX1BPU1RFRAkJKDE8PDEyKQorI2RlZmluZSBNSV9MT0FEX1JFR0lTVEVS X0lNTV9NQVhfUkVHUyAoMTI2KQogI2RlZmluZSBNSV9TVE9SRV9SRUdJU1RFUl9NRU0gICAgICAg IE1JX0lOU1RSKDB4MjQsIDEpCiAjZGVmaW5lIE1JX1NUT1JFX1JFR0lTVEVSX01FTV9HRU44ICAg TUlfSU5TVFIoMHgyNCwgMikKICNkZWZpbmUgICBNSV9TUk1fTFJNX0dMT0JBTF9HVFQJCSgxPDwy MikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IGY0MTQ1YWU2YWI2ZS4uN2ViMzE5MjNjZGU5 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTEzNjMsOCArMTM2Myw4IEBAIHN0cnVjdCBk cm1faTkxNV9wcml2YXRlIHsKIAkJc3RydWN0IG11dGV4IG1ldHJpY3NfbG9jazsKIAogCQkvKgot CQkgKiBMaXN0IG9mIGR5bmFtaWMgY29uZmlndXJhdGlvbnMsIHlvdSBuZWVkIHRvIGhvbGQKLQkJ ICogZGV2X3ByaXYtPnBlcmYubWV0cmljc19sb2NrIHRvIGFjY2VzcyBpdC4KKwkJICogTGlzdCBv ZiBkeW5hbWljIGNvbmZpZ3VyYXRpb25zIChzdHJ1Y3QgaTkxNV9vYV9jb25maWcpLCB5b3UKKwkJ ICogbmVlZCB0byBob2xkIGRldl9wcml2LT5wZXJmLm1ldHJpY3NfbG9jayB0byBhY2Nlc3MgaXQu CiAJCSAqLwogCQlzdHJ1Y3QgaWRyIG1ldHJpY3NfaWRyOwogCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVy Zi5jCmluZGV4IDQwYTFlYzJiYzk2Yi4uOTNhNDI0YzRhNTc3IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3BlcmYuYwpAQCAtMzY3LDExICszNjcsMTkgQEAgc3RydWN0IHBlcmZfb3Blbl9wcm9wZXJ0aWVz IHsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiB9OwogCitzdHJ1Y3QgaTkxNV9v YV9jb25maWdfYm8geworCXN0cnVjdCBsaXN0X2hlYWQgbGluazsKKworCXN0cnVjdCBpOTE1X29h X2NvbmZpZyAqb2FfY29uZmlnOworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpibzsKK307 CisKIHN0YXRpYyBlbnVtIGhydGltZXJfcmVzdGFydCBvYV9wb2xsX2NoZWNrX3RpbWVyX2NiKHN0 cnVjdCBocnRpbWVyICpocnRpbWVyKTsKIAotc3RhdGljIHZvaWQgZnJlZV9vYV9jb25maWcoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkJICAgc3RydWN0IGk5MTVfb2FfY29u ZmlnICpvYV9jb25maWcpCit2b2lkIGk5MTVfb2FfY29uZmlnX3JlbGVhc2Uoc3RydWN0IGtyZWYg KnJlZikKIHsKKwlzdHJ1Y3QgaTkxNV9vYV9jb25maWcgKm9hX2NvbmZpZyA9IGNvbnRhaW5lcl9v ZihyZWYsIHR5cGVvZigqb2FfY29uZmlnKSwgcmVmKTsKKwogCWlmICghUFRSX0VSUihvYV9jb25m aWctPmZsZXhfcmVncykpCiAJCWtmcmVlKG9hX2NvbmZpZy0+ZmxleF9yZWdzKTsKIAlpZiAoIVBU Ul9FUlIob2FfY29uZmlnLT5iX2NvdW50ZXJfcmVncykpCkBAIC0zODEsNDAgKzM4OSwxOTQgQEAg c3RhdGljIHZvaWQgZnJlZV9vYV9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAogCWtmcmVlKG9hX2NvbmZpZyk7CiB9CiAKLXN0YXRpYyB2b2lkIHB1dF9vYV9jb25maWco c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkJICBzdHJ1Y3QgaTkxNV9vYV9j b25maWcgKm9hX2NvbmZpZykKK3N0YXRpYyB1MzIgKndyaXRlX2NzX21pX2xyaSh1MzIgKmNzLCBj b25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgKnJlZ19kYXRhLCB1MzIgbl9yZWdzKQogewotCWlmICgh YXRvbWljX2RlY19hbmRfdGVzdCgmb2FfY29uZmlnLT5yZWZfY291bnQpKQotCQlyZXR1cm47CisJ dTMyIGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgbl9yZWdzOyBpKyspIHsKKwkJaWYgKChpICUgTUlf TE9BRF9SRUdJU1RFUl9JTU1fTUFYX1JFR1MpID09IDApIHsKKwkJCXUzMiBuX2xyaSA9IG1pbihu X3JlZ3MgLSBpLAorCQkJCQkodTMyKU1JX0xPQURfUkVHSVNURVJfSU1NX01BWF9SRUdTKTsKIAot CWZyZWVfb2FfY29uZmlnKGRldl9wcml2LCBvYV9jb25maWcpOworCQkJKmNzKysgPSBNSV9MT0FE X1JFR0lTVEVSX0lNTShuX2xyaSk7CisJCX0KKwkJKmNzKysgPSBpOTE1X21taW9fcmVnX29mZnNl dChyZWdfZGF0YVtpXS5hZGRyKTsKKwkJKmNzKysgPSByZWdfZGF0YVtpXS52YWx1ZTsKKwl9CisK KwlyZXR1cm4gY3M7CiB9CiAKLXN0YXRpYyBpbnQgZ2V0X29hX2NvbmZpZyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkgaW50IG1ldHJpY3Nfc2V0LAotCQkJIHN0cnVjdCBp OTE1X29hX2NvbmZpZyAqKm91dF9jb25maWcpCitzdGF0aWMgc3RydWN0IGk5MTVfb2FfY29uZmln X2JvICphbGxvY19vYV9jb25maWdfYnVmZmVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 LAorCQkJCQkJCXN0cnVjdCBpOTE1X29hX2NvbmZpZyAqb2FfY29uZmlnKQogewotCWludCByZXQ7 CisJc3RydWN0IGk5MTVfb2FfY29uZmlnX2JvICpvYV9ibzsKKwlzaXplX3QgY29uZmlnX2xlbmd0 aCA9IDA7CisJdTMyICpjczsKKwlpbnQgZXJyOworCisJb2FfYm8gPSBremFsbG9jKHNpemVvZigq b2FfYm8pLCBHRlBfS0VSTkVMKTsKKwlpZiAoIW9hX2JvKQorCQlyZXR1cm4gRVJSX1BUUigtRU5P TUVNKTsKKworCW9hX2JvLT5vYV9jb25maWcgPSBpOTE1X29hX2NvbmZpZ19nZXQob2FfY29uZmln KTsKKworCWlmIChvYV9jb25maWctPm11eF9yZWdzX2xlbiA+IDApIHsKKwkJY29uZmlnX2xlbmd0 aCArPSBESVZfUk9VTkRfVVAob2FfY29uZmlnLT5tdXhfcmVnc19sZW4sCisJCQkJCSAgICAgIE1J X0xPQURfUkVHSVNURVJfSU1NX01BWF9SRUdTKSAqIDQ7CisJCWNvbmZpZ19sZW5ndGggKz0gb2Ff Y29uZmlnLT5tdXhfcmVnc19sZW4gKiA4OworCX0KKwlpZiAob2FfY29uZmlnLT5iX2NvdW50ZXJf cmVnc19sZW4gPiAwKSB7CisJCWNvbmZpZ19sZW5ndGggKz0gRElWX1JPVU5EX1VQKG9hX2NvbmZp Zy0+Yl9jb3VudGVyX3JlZ3NfbGVuLAorCQkJCQkgICAgICBNSV9MT0FEX1JFR0lTVEVSX0lNTV9N QVhfUkVHUykgKiA0OworCQljb25maWdfbGVuZ3RoICs9IG9hX2NvbmZpZy0+Yl9jb3VudGVyX3Jl Z3NfbGVuICogODsKKwl9CisJaWYgKG9hX2NvbmZpZy0+ZmxleF9yZWdzX2xlbiA+IDApIHsKKwkJ Y29uZmlnX2xlbmd0aCArPSBESVZfUk9VTkRfVVAob2FfY29uZmlnLT5mbGV4X3JlZ3NfbGVuLAor CQkJCQkgICAgICBNSV9MT0FEX1JFR0lTVEVSX0lNTV9NQVhfUkVHUykgKiA0OworCQljb25maWdf bGVuZ3RoICs9IG9hX2NvbmZpZy0+ZmxleF9yZWdzX2xlbiAqIDg7CisJfQorCWNvbmZpZ19sZW5n dGggKz0gNDsgLyogTUlfQkFUQ0hfQlVGRkVSX0VORCAqLworCWNvbmZpZ19sZW5ndGggPSBBTElH Tihjb25maWdfbGVuZ3RoLCBJOTE1X0dUVF9QQUdFX1NJWkUpOworCisJb2FfYm8tPmJvID0gaTkx NV9nZW1fb2JqZWN0X2NyZWF0ZV9zaG1lbShpOTE1LCBjb25maWdfbGVuZ3RoKTsKKwlpZiAoSVNf RVJSKG9hX2JvLT5ibykpIHsKKwkJZXJyID0gUFRSX0VSUihvYV9iby0+Ym8pOworCQlnb3RvIGVy cl9vYV9jb25maWc7CisJfQorCisJY3MgPSBpOTE1X2dlbV9vYmplY3RfcGluX21hcChvYV9iby0+ Ym8sIEk5MTVfTUFQX1dCKTsKKwlpZiAoSVNfRVJSKGNzKSkgeworCQllcnIgPSBQVFJfRVJSKGNz KTsKKwkJZ290byBlcnJfb2FfYm87CisJfQorCisJY3MgPSB3cml0ZV9jc19taV9scmkoY3MsIG9h X2NvbmZpZy0+bXV4X3JlZ3MsIG9hX2NvbmZpZy0+bXV4X3JlZ3NfbGVuKTsKKwljcyA9IHdyaXRl X2NzX21pX2xyaShjcywgb2FfY29uZmlnLT5iX2NvdW50ZXJfcmVncywgb2FfY29uZmlnLT5iX2Nv dW50ZXJfcmVnc19sZW4pOworCWNzID0gd3JpdGVfY3NfbWlfbHJpKGNzLCBvYV9jb25maWctPmZs ZXhfcmVncywgb2FfY29uZmlnLT5mbGV4X3JlZ3NfbGVuKTsKKworCSpjcysrID0gTUlfQkFUQ0hf QlVGRkVSX0VORDsKKworCWk5MTVfZ2VtX29iamVjdF9mbHVzaF9tYXAob2FfYm8tPmJvKTsKKwlp OTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKG9hX2JvLT5ibyk7CisKKwlyZXR1cm4gb2FfYm87CisK K2Vycl9vYV9ibzoKKwlpOTE1X2dlbV9vYmplY3RfcHV0KG9hX2JvLT5ibyk7CitlcnJfb2FfY29u ZmlnOgorCWk5MTVfb2FfY29uZmlnX3B1dChvYV9iby0+b2FfY29uZmlnKTsKKwlrZnJlZShvYV9i byk7CisKKwlyZXR1cm4gRVJSX1BUUihlcnIpOworfQorCitpbnQgaTkxNV9wZXJmX2dldF9vYV9j b25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCisJCQkgICAgaW50IG1ldHJpY3Nf c2V0LAorCQkJICAgIHN0cnVjdCBpOTE1X29hX2NvbmZpZyAqKm91dF9jb25maWcpCit7CisJc3Ry dWN0IGk5MTVfb2FfY29uZmlnICpvYV9jb25maWc7CisJaW50IGVycjsKKworCWlmICghaTkxNS0+ cGVyZi5pbml0aWFsaXplZCkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwllcnIgPSBtdXRleF9sb2Nr X2ludGVycnVwdGlibGUoJmk5MTUtPnBlcmYubWV0cmljc19sb2NrKTsKKwlpZiAoZXJyKQorCQly ZXR1cm4gZXJyOwogCiAJaWYgKG1ldHJpY3Nfc2V0ID09IDEpIHsKLQkJKm91dF9jb25maWcgPSAm ZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWc7Ci0JCWF0b21pY19pbmMoJmRldl9wcml2LT5wZXJm LnRlc3RfY29uZmlnLnJlZl9jb3VudCk7Ci0JCXJldHVybiAwOworCQlvYV9jb25maWcgPSAmaTkx NS0+cGVyZi50ZXN0X2NvbmZpZzsKKwl9IGVsc2UgeworCQlvYV9jb25maWcgPSBpZHJfZmluZCgm aTkxNS0+cGVyZi5tZXRyaWNzX2lkciwgbWV0cmljc19zZXQpOworCQlpZiAoIW9hX2NvbmZpZykK KwkJCWVyciA9IC1FSU5WQUw7CiAJfQogCi0JcmV0ID0gbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxl KCZkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2xvY2spOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7 CisJaWYgKCFlcnIpCisJCSpvdXRfY29uZmlnID0gaTkxNV9vYV9jb25maWdfZ2V0KG9hX2NvbmZp Zyk7CiAKLQkqb3V0X2NvbmZpZyA9IGlkcl9maW5kKCZkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2lk ciwgbWV0cmljc19zZXQpOwotCWlmICghKm91dF9jb25maWcpCi0JCXJldCA9IC1FSU5WQUw7Ci0J ZWxzZQotCQlhdG9taWNfaW5jKCYoKm91dF9jb25maWcpLT5yZWZfY291bnQpOworCW11dGV4X3Vu bG9jaygmaTkxNS0+cGVyZi5tZXRyaWNzX2xvY2spOwogCi0JbXV0ZXhfdW5sb2NrKCZkZXZfcHJp di0+cGVyZi5tZXRyaWNzX2xvY2spOworCXJldHVybiBlcnI7Cit9CiAKLQlyZXR1cm4gcmV0Owor c3RhdGljIHZvaWQgZnJlZV9vYV9jb25maWdfYm8oc3RydWN0IGk5MTVfb2FfY29uZmlnX2JvICpv YV9ibykKK3sKKwlpOTE1X29hX2NvbmZpZ19wdXQob2FfYm8tPm9hX2NvbmZpZyk7CisJaTkxNV9n ZW1fb2JqZWN0X3B1dChvYV9iby0+Ym8pOworCWtmcmVlKG9hX2JvKTsKK30KKworaW50IGk5MTVf cGVyZl9nZXRfb2FfY29uZmlnX2FuZF9ibyhzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFt LAorCQkJCSAgIGludCBtZXRyaWNzX3NldCwKKwkJCQkgICBzdHJ1Y3QgaTkxNV9vYV9jb25maWcg KipvdXRfY29uZmlnLAorCQkJCSAgIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICoqb3V0X29i aikKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHN0cmVhbS0+ZGV2X3ByaXY7 CisJc3RydWN0IGk5MTVfb2FfY29uZmlnICpvYV9jb25maWc7CisJaW50IGVyciA9IDA7CisKKwlp ZiAoIWk5MTUtPnBlcmYuaW5pdGlhbGl6ZWQpCisJCXJldHVybiAtRU5PREVWOworCisJZXJyID0g aTkxNV9wZXJmX2dldF9vYV9jb25maWcoaTkxNSwgbWV0cmljc19zZXQsICZvYV9jb25maWcpOwor CWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKKwlpZiAob3V0X2NvbmZpZykKKwkJKm91dF9jb25m aWcgPSBvYV9jb25maWc7CisKKwlpZiAob3V0X29iaikgeworCQlzdHJ1Y3QgaTkxNV9vYV9jb25m aWdfYm8gKm9hX2JvID0gTlVMTCwgKm9hX2JvX2l0ZXI7CisKKwkJLyogTG9vayBmb3IgdGhlIGJ1 ZmZlciBpbiB0aGUgYWxyZWFkeSBhbGxvY2F0ZWQgQk9zIGF0dGFjaGVkCisJCSAqIHRvIHRoZSBz dHJlYW0uCisJCSAqLworCQllcnIgPSBtdXRleF9sb2NrX2ludGVycnVwdGlibGUoJnN0cmVhbS0+ Y29uZmlnX211dGV4KTsKKwkJaWYgKGVycikKKwkJCWdvdG8gZXJyOworCisJCWxpc3RfZm9yX2Vh Y2hfZW50cnkob2FfYm9faXRlciwgJnN0cmVhbS0+b2FfY29uZmlnX2JvcywgbGluaykgeworCQkJ aWYgKG9hX2JvX2l0ZXItPm9hX2NvbmZpZyA9PSBvYV9jb25maWcgJiYKKwkJCSAgICBtZW1jbXAo b2FfYm9faXRlci0+b2FfY29uZmlnLT51dWlkLAorCQkJCSAgIG9hX2NvbmZpZy0+dXVpZCwKKwkJ CQkgICBzaXplb2Yob2FfY29uZmlnLT51dWlkKSkgPT0gMCkgeworCQkJCW9hX2JvID0gb2FfYm9f aXRlcjsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCisJCW11dGV4X3VubG9jaygmc3RyZWFtLT5j b25maWdfbXV0ZXgpOworCisJCWlmICghb2FfYm8pIHsKKwkJCW9hX2JvID0gYWxsb2Nfb2FfY29u ZmlnX2J1ZmZlcihpOTE1LCBvYV9jb25maWcpOworCQkJaWYgKElTX0VSUihvYV9ibykpIHsKKwkJ CQllcnIgPSBQVFJfRVJSKG9hX2JvKTsKKwkJCQlnb3RvIGVycjsKKwkJCX0KKworCQkJZXJyID0g bXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZzdHJlYW0tPmNvbmZpZ19tdXRleCk7CisJCQlpZiAo ZXJyKSB7CisJCQkJZnJlZV9vYV9jb25maWdfYm8ob2FfYm8pOworCQkJCWdvdG8gZXJyOworCQkJ fQorCisJCQlsaXN0X2FkZCgmb2FfYm8tPmxpbmssICZzdHJlYW0tPm9hX2NvbmZpZ19ib3MpOwor CisJCQltdXRleF91bmxvY2soJnN0cmVhbS0+Y29uZmlnX211dGV4KTsKKwkJfQorCisJCSpvdXRf b2JqID0gaTkxNV9nZW1fb2JqZWN0X2dldChvYV9iby0+Ym8pOworCX0KKworZXJyOgorCWlmIChl cnIpIHsKKwkJaTkxNV9vYV9jb25maWdfcHV0KG9hX2NvbmZpZyk7CisJCSpvdXRfY29uZmlnID0g TlVMTDsKKwl9CisKKwlyZXR1cm4gZXJyOwogfQogCiBzdGF0aWMgdTMyIGdlbjhfb2FfaHdfdGFp bF9yZWFkKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCkBAIC0xMzYyLDYgKzE1MjQs MTggQEAgZnJlZV9vYV9idWZmZXIoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKIAlz dHJlYW0tPm9hX2J1ZmZlci52YWRkciA9IE5VTEw7CiB9CiAKK3N0YXRpYyB2b2lkCitmcmVlX29h X2NvbmZpZ3Moc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKK3sKKwlzdHJ1Y3QgaTkx NV9vYV9jb25maWdfYm8gKm9hX2JvLCAqdG1wOworCisJaTkxNV9vYV9jb25maWdfcHV0KHN0cmVh bS0+b2FfY29uZmlnKTsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUob2FfYm8sIHRtcCwgJnN0 cmVhbS0+b2FfY29uZmlnX2JvcywgbGluaykgeworCQlsaXN0X2RlbCgmb2FfYm8tPmxpbmspOwor CQlmcmVlX29hX2NvbmZpZ19ibyhvYV9ibyk7CisJfQorfQorCiBzdGF0aWMgdm9pZCBpOTE1X29h X3N0cmVhbV9kZXN0cm95KHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCiB7CiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gc3RyZWFtLT5kZXZfcHJpdjsKQEAgLTEz ODUsNyArMTU1OSw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfb2Ffc3RyZWFtX2Rlc3Ryb3koc3RydWN0 IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKIAlpZiAoc3RyZWFtLT5jdHgpCiAJCW9hX3B1dF9y ZW5kZXJfY3R4X2lkKHN0cmVhbSk7CiAKLQlwdXRfb2FfY29uZmlnKGRldl9wcml2LCBzdHJlYW0t Pm9hX2NvbmZpZyk7CisJZnJlZV9vYV9jb25maWdzKHN0cmVhbSk7CiAKIAlpZiAoZGV2X3ByaXYt PnBlcmYuc3B1cmlvdXNfcmVwb3J0X3JzLm1pc3NlZCkgewogCQlEUk1fTk9URSgiJWQgc3B1cmlv dXMgT0EgcmVwb3J0IG5vdGljZXMgc3VwcHJlc3NlZCBkdWUgdG8gcmF0ZWxpbWl0aW5nXG4iLApA QCAtMjE5OSw2ICsyMzczLDggQEAgc3RhdGljIGludCBpOTE1X29hX3N0cmVhbV9pbml0KHN0cnVj dCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAorCW11 dGV4X2luaXQoJnN0cmVhbS0+Y29uZmlnX211dGV4KTsKKwogCXN0cmVhbS0+c2FtcGxlX3NpemUg PSBzaXplb2Yoc3RydWN0IGRybV9pOTE1X3BlcmZfcmVjb3JkX2hlYWRlcik7CiAKIAlmb3JtYXRf c2l6ZSA9IGRldl9wcml2LT5wZXJmLm9hX2Zvcm1hdHNbcHJvcHMtPm9hX2Zvcm1hdF0uc2l6ZTsK QEAgLTIyMjcsNyArMjQwMyw4IEBAIHN0YXRpYyBpbnQgaTkxNV9vYV9zdHJlYW1faW5pdChzdHJ1 Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAogCQl9CiAJfQogCi0JcmV0ID0gZ2V0X29hX2Nv bmZpZyhkZXZfcHJpdiwgcHJvcHMtPm1ldHJpY3Nfc2V0LCAmc3RyZWFtLT5vYV9jb25maWcpOwor CXJldCA9IGk5MTVfcGVyZl9nZXRfb2FfY29uZmlnKGRldl9wcml2LCBwcm9wcy0+bWV0cmljc19z ZXQsCisJCQkJICAgICAgJnN0cmVhbS0+b2FfY29uZmlnKTsKIAlpZiAocmV0KSB7CiAJCURSTV9E RUJVRygiSW52YWxpZCBPQSBjb25maWcgaWQ9JWlcbiIsIHByb3BzLT5tZXRyaWNzX3NldCk7CiAJ CWdvdG8gZXJyX2NvbmZpZzsKQEAgLTIyNjUsNiArMjQ0Miw4IEBAIHN0YXRpYyBpbnQgaTkxNV9v YV9zdHJlYW1faW5pdChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAogCQlnb3RvIGVy cl9lbmFibGU7CiAJfQogCisJRFJNX0RFQlVHKCJvcGVuaW5nIHN0cmVhbSBvYSBjb25maWcgdXVp ZD0lc1xuIiwgc3RyZWFtLT5vYV9jb25maWctPnV1aWQpOworCiAJbXV0ZXhfdW5sb2NrKCZkZXZf cHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7CiAKIAlocnRpbWVyX2luaXQoJnN0cmVhbS0+cG9sbF9j aGVja190aW1lciwKQEAgLTIyODQsMTEgKzI0NjMsMTEgQEAgc3RhdGljIGludCBpOTE1X29hX3N0 cmVhbV9pbml0KHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCiAJZnJlZV9vYV9idWZm ZXIoc3RyZWFtKTsKIAogZXJyX29hX2J1Zl9hbGxvYzoKLQlwdXRfb2FfY29uZmlnKGRldl9wcml2 LCBzdHJlYW0tPm9hX2NvbmZpZyk7Ci0KIAlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX3B1dCgmZGV2 X3ByaXYtPnVuY29yZSwgRk9SQ0VXQUtFX0FMTCk7CiAJaW50ZWxfcnVudGltZV9wbV9wdXQoJmRl dl9wcml2LT5ydW50aW1lX3BtLCBzdHJlYW0tPndha2VyZWYpOwogCisJZnJlZV9vYV9jb25maWdz KHN0cmVhbSk7CisKIGVycl9jb25maWc6CiAJaWYgKHN0cmVhbS0+Y3R4KQogCQlvYV9wdXRfcmVu ZGVyX2N0eF9pZChzdHJlYW0pOwpAQCAtMjMwOSw4ICsyNDg4LDEyIEBAIHZvaWQgaTkxNV9vYV9p bml0X3JlZ19zdGF0ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJCXJldHVybjsK IAogCXN0cmVhbSA9IGVuZ2luZS0+aTkxNS0+cGVyZi5leGNsdXNpdmVfc3RyZWFtOwotCWlmIChz dHJlYW0pCisKKwlpZiAoc3RyZWFtKSB7CisJCW11dGV4X2xvY2soJnN0cmVhbS0+Y29uZmlnX211 dGV4KTsKIAkJZ2VuOF91cGRhdGVfcmVnX3N0YXRlX3VubG9ja2VkKHN0cmVhbSwgY2UsIHJlZ3Ms IHN0cmVhbS0+b2FfY29uZmlnKTsKKwkJbXV0ZXhfdW5sb2NrKCZzdHJlYW0tPmNvbmZpZ19tdXRl eCk7CisJfQogfQogCiAvKioKQEAgLTI2NTMsNyArMjgzNiw5IEBAIHN0YXRpYyBpbnQgaTkxNV9w ZXJmX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gc3RyZWFtLT5kZXZfcHJpdjsKIAogCW11 dGV4X2xvY2soJmRldl9wcml2LT5wZXJmLmxvY2spOworCiAJaTkxNV9wZXJmX2Rlc3Ryb3lfbG9j a2VkKHN0cmVhbSk7CisKIAltdXRleF91bmxvY2soJmRldl9wcml2LT5wZXJmLmxvY2spOwogCiAJ LyogUmVsZWFzZSB0aGUgcmVmZXJlbmNlIHRoZSBwZXJmIHN0cmVhbSBrZXB0IG9uIHRoZSBkcml2 ZXIuICovCkBAIC0yNzYyLDYgKzI5NDcsNyBAQCBpOTE1X3BlcmZfb3Blbl9pb2N0bF9sb2NrZWQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQlnb3RvIGVycl9jdHg7CiAJfQog CisJSU5JVF9MSVNUX0hFQUQoJnN0cmVhbS0+b2FfY29uZmlnX2Jvcyk7CiAJc3RyZWFtLT5kZXZf cHJpdiA9IGRldl9wcml2OwogCXN0cmVhbS0+Y3R4ID0gc3BlY2lmaWNfY3R4OwogCkBAIC0zMDg4 LDcgKzMyNzQsOCBAQCB2b2lkIGk5MTVfcGVyZl9yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCiAJaWYgKHJldCkKIAkJZ290byBzeXNmc19lcnJvcjsKIAotCWF0b21p Y19zZXQoJmRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnJlZl9jb3VudCwgMSk7CisJZGV2X3By aXYtPnBlcmYudGVzdF9jb25maWcuaTkxNSA9IGRldl9wcml2OworCWtyZWZfaW5pdCgmZGV2X3By aXYtPnBlcmYudGVzdF9jb25maWcucmVmKTsKIAogCWdvdG8gZXhpdDsKIApAQCAtMzM0NCw3ICsz NTMxLDggQEAgaW50IGk5MTVfcGVyZl9hZGRfY29uZmlnX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHZvaWQgKmRhdGEsCiAJCXJldHVybiAtRU5PTUVNOwogCX0KIAotCWF0b21pY19zZXQo Jm9hX2NvbmZpZy0+cmVmX2NvdW50LCAxKTsKKwlvYV9jb25maWctPmk5MTUgPSBkZXZfcHJpdjsK KwlrcmVmX2luaXQoJm9hX2NvbmZpZy0+cmVmKTsKIAogCWlmICghdXVpZF9pc192YWxpZChhcmdz LT51dWlkKSkgewogCQlEUk1fREVCVUcoIkludmFsaWQgdXVpZCBmb3JtYXQgZm9yIE9BIGNvbmZp Z1xuIik7CkBAIC0zNDQzLDcgKzM2MzEsNyBAQCBpbnQgaTkxNV9wZXJmX2FkZF9jb25maWdfaW9j dGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIHN5c2ZzX2VycjoKIAltdXRl eF91bmxvY2soJmRldl9wcml2LT5wZXJmLm1ldHJpY3NfbG9jayk7CiByZWdfZXJyOgotCXB1dF9v YV9jb25maWcoZGV2X3ByaXYsIG9hX2NvbmZpZyk7CisJaTkxNV9vYV9jb25maWdfcHV0KG9hX2Nv bmZpZyk7CiAJRFJNX0RFQlVHKCJGYWlsZWQgdG8gYWRkIG5ldyBPQSBjb25maWdcbiIpOwogCXJl dHVybiBlcnI7CiB9CkBAIC0zNDc5LDEzICszNjY3LDEzIEBAIGludCBpOTE1X3BlcmZfcmVtb3Zl X2NvbmZpZ19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCiAJcmV0 ID0gbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2xvY2sp OwogCWlmIChyZXQpCi0JCWdvdG8gbG9ja19lcnI7CisJCXJldHVybiByZXQ7CiAKIAlvYV9jb25m aWcgPSBpZHJfZmluZCgmZGV2X3ByaXYtPnBlcmYubWV0cmljc19pZHIsICphcmcpOwogCWlmICgh b2FfY29uZmlnKSB7CiAJCURSTV9ERUJVRygiRmFpbGVkIHRvIHJlbW92ZSB1bmtub3duIE9BIGNv bmZpZ1xuIik7CiAJCXJldCA9IC1FTk9FTlQ7Ci0JCWdvdG8gY29uZmlnX2VycjsKKwkJZ290byBl cnJfdW5sb2NrOwogCX0KIAogCUdFTV9CVUdfT04oKmFyZyAhPSBvYV9jb25maWctPmlkKTsKQEAg LTM0OTUsMTMgKzM2ODMsMTYgQEAgaW50IGk5MTVfcGVyZl9yZW1vdmVfY29uZmlnX2lvY3RsKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAKIAlpZHJfcmVtb3ZlKCZkZXZfcHJp di0+cGVyZi5tZXRyaWNzX2lkciwgKmFyZyk7CiAKKwltdXRleF91bmxvY2soJmRldl9wcml2LT5w ZXJmLm1ldHJpY3NfbG9jayk7CisKIAlEUk1fREVCVUcoIlJlbW92ZWQgY29uZmlnICVzIGlkPSVp XG4iLCBvYV9jb25maWctPnV1aWQsIG9hX2NvbmZpZy0+aWQpOwogCi0JcHV0X29hX2NvbmZpZyhk ZXZfcHJpdiwgb2FfY29uZmlnKTsKKwlpOTE1X29hX2NvbmZpZ19wdXQob2FfY29uZmlnKTsKKwor CXJldHVybiAwOwogCi1jb25maWdfZXJyOgorZXJyX3VubG9jazoKIAltdXRleF91bmxvY2soJmRl dl9wcml2LT5wZXJmLm1ldHJpY3NfbG9jayk7Ci1sb2NrX2VycjoKIAlyZXR1cm4gcmV0OwogfQog CkBAIC0zNjcxLDEwICszODYyLDkgQEAgdm9pZCBpOTE1X3BlcmZfaW5pdChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIHN0YXRpYyBpbnQgZGVzdHJveV9jb25maWcoaW50IGlk LCB2b2lkICpwLCB2b2lkICpkYXRhKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGRhdGE7CiAJc3RydWN0IGk5MTVfb2FfY29uZmlnICpvYV9jb25maWcgPSBwOwogCi0J cHV0X29hX2NvbmZpZyhkZXZfcHJpdiwgb2FfY29uZmlnKTsKKwlpOTE1X29hX2NvbmZpZ19wdXQo b2FfY29uZmlnKTsKIAogCXJldHVybiAwOwogfQpAQCAtMzY4OCw3ICszODc4LDcgQEAgdm9pZCBp OTE1X3BlcmZfZmluaShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJaWYgKCFk ZXZfcHJpdi0+cGVyZi5pbml0aWFsaXplZCkKIAkJcmV0dXJuOwogCi0JaWRyX2Zvcl9lYWNoKCZk ZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2lkciwgZGVzdHJveV9jb25maWcsIGRldl9wcml2KTsKKwlp ZHJfZm9yX2VhY2goJmRldl9wcml2LT5wZXJmLm1ldHJpY3NfaWRyLCBkZXN0cm95X2NvbmZpZywg TlVMTCk7CiAJaWRyX2Rlc3Ryb3koJmRldl9wcml2LT5wZXJmLm1ldHJpY3NfaWRyKTsKIAogCXVu cmVnaXN0ZXJfc3lzY3RsX3RhYmxlKGRldl9wcml2LT5wZXJmLnN5c2N0bF9oZWFkZXIpOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3BlcmYuaAppbmRleCAyNzAxOTM1MjZiNTYuLjFjODU0ODc4NzZhNCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmgKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9wZXJmLmgKQEAgLTcsMTIgKzcsMTYgQEAKICNkZWZpbmUgX19JOTE1 X1BFUkZfSF9fCiAKICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L2ty ZWYuaD4KIAogI2luY2x1ZGUgImk5MTVfcGVyZl90eXBlcy5oIgogCiBzdHJ1Y3QgZHJtX2Rldmlj ZTsKIHN0cnVjdCBkcm1fZmlsZTsKK3N0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0Owogc3RydWN0 IGRybV9pOTE1X3ByaXZhdGU7CitzdHJ1Y3QgaTkxNV9vYV9jb25maWc7CitzdHJ1Y3QgaTkxNV9w ZXJmX3N0cmVhbTsKIHN0cnVjdCBpbnRlbF9jb250ZXh0Owogc3RydWN0IGludGVsX2VuZ2luZV9j czsKIApAQCAtMzEsNSArMzUsMjcgQEAgaW50IGk5MTVfcGVyZl9yZW1vdmVfY29uZmlnX2lvY3Rs KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiB2b2lkIGk5MTVfb2FfaW5pdF9y ZWdfc3RhdGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCQkJICAgIHN0cnVjdCBp bnRlbF9jb250ZXh0ICpjZSwKIAkJCSAgICB1MzIgKnJlZ19zdGF0ZSk7CitpbnQgaTkxNV9wZXJm X2dldF9vYV9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCisJCQkgICAgaW50 IG1ldHJpY3Nfc2V0LAorCQkJICAgIHN0cnVjdCBpOTE1X29hX2NvbmZpZyAqKm91dF9jb25maWcp OworaW50IGk5MTVfcGVyZl9nZXRfb2FfY29uZmlnX2FuZF9ibyhzdHJ1Y3QgaTkxNV9wZXJmX3N0 cmVhbSAqc3RyZWFtLAorCQkJCSAgIGludCBtZXRyaWNzX3NldCwKKwkJCQkgICBzdHJ1Y3QgaTkx NV9vYV9jb25maWcgKipvdXRfY29uZmlnLAorCQkJCSAgIHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICoqb3V0X29iaik7Cit2b2lkIGk5MTVfb2FfY29uZmlnX3JlbGVhc2Uoc3RydWN0IGtyZWYg KnJlZik7CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGk5MTVfb2FfY29uZmlnICppOTE1X29hX2Nv bmZpZ19nZXQoc3RydWN0IGk5MTVfb2FfY29uZmlnICpvYV9jb25maWcpCit7CisJa3JlZl9nZXQo Jm9hX2NvbmZpZy0+cmVmKTsKKwlyZXR1cm4gb2FfY29uZmlnOworfQorCitzdGF0aWMgaW5saW5l IHZvaWQgaTkxNV9vYV9jb25maWdfcHV0KHN0cnVjdCBpOTE1X29hX2NvbmZpZyAqb2FfY29uZmln KQoreworCWlmICghb2FfY29uZmlnKQorCQlyZXR1cm47CisKKwlrcmVmX3B1dCgmb2FfY29uZmln LT5yZWYsIGk5MTVfb2FfY29uZmlnX3JlbGVhc2UpOworfQogCiAjZW5kaWYgLyogX19JOTE1X1BF UkZfSF9fICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmZfdHlw ZXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVyZl90eXBlcy5oCmluZGV4IGM2Njcz YjY3ZDY5NC4uNmNkZTM4YjYyNzdiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3BlcmZfdHlwZXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmZfdHlw ZXMuaApAQCAtMzYsNiArMzYsOCBAQCBzdHJ1Y3QgaTkxNV9vYV9yZWcgewogfTsKIAogc3RydWN0 IGk5MTVfb2FfY29uZmlnIHsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNTsKKwogCWNo YXIgdXVpZFtVVUlEX1NUUklOR19MRU4gKyAxXTsKIAlpbnQgaWQ7CiAKQEAgLTUwLDcgKzUyLDcg QEAgc3RydWN0IGk5MTVfb2FfY29uZmlnIHsKIAlzdHJ1Y3QgYXR0cmlidXRlICphdHRyc1syXTsK IAlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBzeXNmc19tZXRyaWNfaWQ7CiAKLQlhdG9taWNfdCBy ZWZfY291bnQ7CisJc3RydWN0IGtyZWYgcmVmOwogfTsKIAogc3RydWN0IGk5MTVfcGVyZl9zdHJl YW07CkBAIC0xNzIsMTEgKzE3NCwyMiBAQCBzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSB7CiAJICov CiAJY29uc3Qgc3RydWN0IGk5MTVfcGVyZl9zdHJlYW1fb3BzICpvcHM7CiAKKwkvKioKKwkgKiBA YWN0aXZlX2NvbmZpZ19tdXRleDogUHJvdGVjdHMgYWNjZXNzIHRvIEBvYV9jb25maWcgJiBAb2Ff Y29uZmlnX2Jvcy4KKwkgKi8KKwlzdHJ1Y3QgbXV0ZXggY29uZmlnX211dGV4OworCiAJLyoqCiAJ ICogQG9hX2NvbmZpZzogVGhlIE9BIGNvbmZpZ3VyYXRpb24gdXNlZCBieSB0aGUgc3RyZWFtLgog CSAqLwogCXN0cnVjdCBpOTE1X29hX2NvbmZpZyAqb2FfY29uZmlnOwogCisJLyoqCisJICogQG9h X2NvbmZpZ19ib3M6IEEgbGlzdCBvZiBzdHJ1Y3QgaTkxNV9vYV9jb25maWdfYm8gYWxsb2NhdGVk IGxhemlseQorCSAqIGVhY2ggdGltZSBAb2FfY29uZmlnIGNoYW5nZXMuCisJICovCisJc3RydWN0 IGxpc3RfaGVhZCBvYV9jb25maWdfYm9zOworCiAJLyoqCiAJICogVGhlIE9BIGNvbnRleHQgc3Bl Y2lmaWMgaW5mb3JtYXRpb24uCiAJICovCi0tIAoyLjIzLjAKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==