From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhenyu Wang Subject: [PATCH v3 3/3] drm/i915/gvt: Change KVMGT as self load module Date: Mon, 3 Dec 2018 12:05:50 +0800 Message-ID: <20181203040550.5171-4-zhenyuw@linux.intel.com> References: <20181203040550.5171-1-zhenyuw@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181203040550.5171-1-zhenyuw@linux.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: intel-gvt-dev@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org VGhpcyB0cnlzIHRvIG1ha2UgJ2t2bWd0JyBtb2R1bGUgYXMgc2VsZiBsb2FkYWJsZSBpbnN0ZWFk IG9mIGxvYWRpbmcKYnkgaTkxNS9ndnQgZGV2aWNlIG1vZGVsLiBTbyBoeXBlcnZpc29yIHNwZWNp ZmljIG1vZHVsZSBjb3VsZCBiZQpzdGFuZC1hbG9uZSwgZS5nIG9ubHkgYWZ0ZXIgbG9hZGluZyBo eXBlcnZpc29yIHNwZWNpZmljIG1vZHVsZSwgR1ZUCmZlYXR1cmUgY291bGQgYmUgZW5hYmxlZCB2 aWEgc3BlY2lmaWMgaHlwZXJ2aXNvciBpbnRlcmZhY2UsIGUuZyBWRklPL21kZXYuCgpTbyB0aGlz IHRyeXMgdG8gdXNlIGh5cGVydmlzb3IgbW9kdWxlIHJlZ2lzdGVyL3VucmVnaXN0ZXIgaW50ZXJm YWNlCmZvciB0aGF0LiBIeXBlcnZpc29yIG1vZHVsZSBuZWVkcyB0byB0YWtlIGNhcmUgb2YgbW9k dWxlIHJlZmVyZW5jZQppdHNlbGYgd2hlbiB3b3JraW5nIGZvciBoeXBlcnZpc29yIGludGVyZmFj ZSwgZS5nIHJlZmVyZW5jZSBjb3VudGluZwpmb3IgYW55IFZGSU8vbWRldiBjcmVhdGlvbi4KClRo aXMgbWFrZXMgJ2t2bWd0JyBtb2R1bGUgcmVhbGx5IHNwbGl0IGZyb20gR1ZUIGRldmljZSBtb2Rl bC4gVXNlcgpuZWVkcyB0byBsb2FkICdrdm1ndCcgdG8gZW5hYmxlIFZGSU8vbWRldiBpbnRlcmZh Y2UuCgp2MzoKLSBGaXggbW9kdWxlIHJlZmVyZW5jZSBoYW5kbGluZyBmb3IgZGV2aWNlIG9wZW4g YW5kIHJlbGVhc2UuIFVudXNlZAogIG1kZXYgZGV2aWNlcyB3b3VsZCBiZSBjbGVhbmVkIHVwIGlu IGRldmljZSB1bnJlZ2lzdGVyIHdoZW4gbW9kdWxlIHVubG9hZC4KCnYyOgotIEZpeCBrdm1ndCBv cmRlciBhZnRlciBpOTE1IGZvciBidWlsdC1pbiBjYXNlCgpDYzogQWxleCBXaWxsaWFtc29uIDxh bGV4LndpbGxpYW1zb25AcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogWmhlbnl1IFdhbmcgPHpo ZW55dXdAbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxl ICAgICAgICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvTWFrZWZpbGUgICAgfCAg IDEgLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5jICAgICAgIHwgMTA3ICsrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5oICAgICAg IHwgICA2ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvaHlwZXJjYWxsLmggfCAgIDcgKy0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9rdm1ndC5jICAgICB8ICAyMCArKysrLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3Z0L21wdC5oICAgICAgIHwgICAzICsKIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2d2dC5jICAgICB8ICAgOSAtLS0KIDggZmlsZXMgY2hhbmdlZCwgNzEgaW5zZXJ0 aW9ucygrKSwgODMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQppbmRleCAwZmY4Nzhj OTk0ZTIuLmFlMGQ5NzVhNmYzNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFr ZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKQEAgLTE5NSwzICsxOTUs NCBAQCBlbmRpZgogaTkxNS15ICs9IGludGVsX2xwZV9hdWRpby5vCiAKIG9iai0kKENPTkZJR19E Uk1fSTkxNSkgKz0gaTkxNS5vCitvYmotJChDT05GSUdfRFJNX0k5MTVfR1ZUX0tWTUdUKSArPSBn dnQva3ZtZ3QubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L01ha2VmaWxl IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L01ha2VmaWxlCmluZGV4IGIwMTZkYzc1M2RiOS4u MjcxZmI0NmQ0ZGQwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvTWFrZWZp bGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L01ha2VmaWxlCkBAIC03LDQgKzcsMyBA QCBHVlRfU09VUkNFIDo9IGd2dC5vIGFwZXJ0dXJlX2dtLm8gaGFuZGxlcnMubyB2Z3B1Lm8gdHJh Y2VfcG9pbnRzLm8gZmlybXdhcmUubyBcCiAKIGNjZmxhZ3MteQkJCQkrPSAtSSQoc3JjKSAtSSQo c3JjKS8kKEdWVF9ESVIpCiBpOTE1LXkJCQkJCSs9ICQoYWRkcHJlZml4ICQoR1ZUX0RJUikvLCAk KEdWVF9TT1VSQ0UpKQotb2JqLSQoQ09ORklHX0RSTV9JOTE1X0dWVF9LVk1HVCkJKz0gJChHVlRf RElSKS9rdm1ndC5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3Z0LmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3Z0LmMKaW5kZXggYTViNzYwYjdiYzEwLi5lMWM5 YzIwOTE4YWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9ndnQuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3Z0LmMKQEAgLTE4Nyw1MiArMTg3LDYgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBpbnRlbF9ndnRfb3BzIGludGVsX2d2dF9vcHMgPSB7CiAJLndyaXRl X3Byb3RlY3RfaGFuZGxlciA9IGludGVsX3ZncHVfcGFnZV90cmFja19oYW5kbGVyLAogfTsKIAot LyoqCi0gKiBpbnRlbF9ndnRfaW5pdF9ob3N0IC0gTG9hZCBNUFQgbW9kdWxlcyBhbmQgZGV0ZWN0 IGlmIHdlJ3JlIHJ1bm5pbmcgaW4gaG9zdAotICoKLSAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVk IGF0IHRoZSBkcml2ZXIgbG9hZGluZyBzdGFnZS4gSWYgZmFpbGVkIHRvIGZpbmQgYQotICogbG9h ZGFibGUgTVBUIG1vZHVsZSBvciBkZXRlY3QgY3VycmVudGx5IHdlJ3JlIHJ1bm5pbmcgaW4gYSBW TSwgdGhlbiBHVlQtZwotICogd2lsbCBiZSBkaXNhYmxlZAotICoKLSAqIFJldHVybnM6Ci0gKiBa ZXJvIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm9yIGNvZGUgaWYgZmFpbGVkLgotICoKLSAqLwot aW50IGludGVsX2d2dF9pbml0X2hvc3Qodm9pZCkKLXsKLQlpZiAoaW50ZWxfZ3Z0X2hvc3QuaW5p dGlhbGl6ZWQpCi0JCXJldHVybiAwOwotCi0JLyogWGVuIERPTSBVICovCi0JaWYgKHhlbl9kb21h aW4oKSAmJiAheGVuX2luaXRpYWxfZG9tYWluKCkpCi0JCXJldHVybiAtRU5PREVWOwotCi0JLyog VHJ5IHRvIGxvYWQgTVBUIG1vZHVsZXMgZm9yIGh5cGVydmlzb3JzICovCi0JaWYgKHhlbl9pbml0 aWFsX2RvbWFpbigpKSB7Ci0JCS8qIEluIFhlbiBkb20wICovCi0JCWludGVsX2d2dF9ob3N0Lm1w dCA9IHRyeV90aGVuX3JlcXVlc3RfbW9kdWxlKAotCQkJCXN5bWJvbF9nZXQoeGVuZ3RfbXB0KSwg Inhlbmd0Iik7Ci0JCWludGVsX2d2dF9ob3N0Lmh5cGVydmlzb3JfdHlwZSA9IElOVEVMX0dWVF9I WVBFUlZJU09SX1hFTjsKLQl9IGVsc2UgewotI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1 X0dWVF9LVk1HVCkKLQkJLyogbm90IGluIFhlbi4gVHJ5IEtWTUdUICovCi0JCWludGVsX2d2dF9o b3N0Lm1wdCA9IHRyeV90aGVuX3JlcXVlc3RfbW9kdWxlKAotCQkJCXN5bWJvbF9nZXQoa3ZtZ3Rf bXB0KSwgImt2bWd0Iik7Ci0JCWludGVsX2d2dF9ob3N0Lmh5cGVydmlzb3JfdHlwZSA9IElOVEVM X0dWVF9IWVBFUlZJU09SX0tWTTsKLSNlbmRpZgotCX0KLQotCS8qIEZhaWwgdG8gbG9hZCBNUFQg bW9kdWxlcyAtIGJhaWwgb3V0ICovCi0JaWYgKCFpbnRlbF9ndnRfaG9zdC5tcHQpCi0JCXJldHVy biAtRUlOVkFMOwotCi0JZ3Z0X2RiZ19jb3JlKCJSdW5uaW5nIHdpdGggaHlwZXJ2aXNvciAlcyBp biBob3N0IG1vZGVcbiIsCi0JCQlzdXBwb3J0ZWRfaHlwZXJ2aXNvcnNbaW50ZWxfZ3Z0X2hvc3Qu aHlwZXJ2aXNvcl90eXBlXSk7Ci0KLQlpbnRlbF9ndnRfaG9zdC5pbml0aWFsaXplZCA9IHRydWU7 Ci0JcmV0dXJuIDA7Ci19Ci0KIHN0YXRpYyB2b2lkIGluaXRfZGV2aWNlX2luZm8oc3RydWN0IGlu dGVsX2d2dCAqZ3Z0KQogewogCXN0cnVjdCBpbnRlbF9ndnRfZGV2aWNlX2luZm8gKmluZm8gPSAm Z3Z0LT5kZXZpY2VfaW5mbzsKQEAgLTMxNiw3ICsyNzAsNiBAQCB2b2lkIGludGVsX2d2dF9jbGVh bl9kZXZpY2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQlyZXR1cm47CiAK IAlpbnRlbF9ndnRfZGVzdHJveV9pZGxlX3ZncHUoZ3Z0LT5pZGxlX3ZncHUpOwotCWludGVsX2d2 dF9oeXBlcnZpc29yX2hvc3RfZXhpdCgmZGV2X3ByaXYtPmRybS5wZGV2LT5kZXYpOwogCWludGVs X2d2dF9jbGVhbnVwX3ZncHVfdHlwZV9ncm91cHMoZ3Z0KTsKIAlpbnRlbF9ndnRfY2xlYW5fdmdw dV90eXBlcyhndnQpOwogCkBAIC0zNTIsMTMgKzMwNSw2IEBAIGludCBpbnRlbF9ndnRfaW5pdF9k ZXZpY2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCXN0cnVjdCBpbnRlbF92 Z3B1ICp2Z3B1OwogCWludCByZXQ7CiAKLQkvKgotCSAqIENhbm5vdCBpbml0aWFsaXplIEdWVCBk ZXZpY2Ugd2l0aG91dCBpbnRlbF9ndnRfaG9zdCBnZXRzCi0JICogaW5pdGlhbGl6ZWQgZmlyc3Qu Ci0JICovCi0JaWYgKFdBUk5fT04oIWludGVsX2d2dF9ob3N0LmluaXRpYWxpemVkKSkKLQkJcmV0 dXJuIC1FSU5WQUw7Ci0KIAlpZiAoV0FSTl9PTihkZXZfcHJpdi0+Z3Z0KSkKIAkJcmV0dXJuIC1F RVhJU1Q7CiAKQEAgLTQyMCwxMyArMzY2LDYgQEAgaW50IGludGVsX2d2dF9pbml0X2RldmljZShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCWdvdG8gb3V0X2NsZWFuX3R5cGVz OwogCX0KIAotCXJldCA9IGludGVsX2d2dF9oeXBlcnZpc29yX2hvc3RfaW5pdCgmZGV2X3ByaXYt PmRybS5wZGV2LT5kZXYsIGd2dCwKLQkJCQkmaW50ZWxfZ3Z0X29wcyk7Ci0JaWYgKHJldCkgewot CQlndnRfZXJyKCJmYWlsZWQgdG8gcmVnaXN0ZXIgZ3Z0LWcgaG9zdCBkZXZpY2U6ICVkXG4iLCBy ZXQpOwotCQlnb3RvIG91dF9jbGVhbl90eXBlczsKLQl9Ci0KIAl2Z3B1ID0gaW50ZWxfZ3Z0X2Ny ZWF0ZV9pZGxlX3ZncHUoZ3Z0KTsKIAlpZiAoSVNfRVJSKHZncHUpKSB7CiAJCXJldCA9IFBUUl9F UlIodmdwdSk7CkBAIC00NDEsNiArMzgwLDggQEAgaW50IGludGVsX2d2dF9pbml0X2RldmljZShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIAlndnRfZGJnX2NvcmUoImd2dCBk ZXZpY2UgaW5pdGlhbGl6YXRpb24gaXMgZG9uZVxuIik7CiAJZGV2X3ByaXYtPmd2dCA9IGd2dDsK KwlpbnRlbF9ndnRfaG9zdC5kZXYgPSAmZGV2X3ByaXYtPmRybS5wZGV2LT5kZXY7CisJaW50ZWxf Z3Z0X2hvc3QuaW5pdGlhbGl6ZWQgPSB0cnVlOwogCXJldHVybiAwOwogCiBvdXRfY2xlYW5fdHlw ZXM6CkBAIC00NjcsNiArNDA4LDQ0IEBAIGludCBpbnRlbF9ndnRfaW5pdF9kZXZpY2Uoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCXJldHVybiByZXQ7CiB9CiAKLSNpZiBJU19F TkFCTEVEKENPTkZJR19EUk1fSTkxNV9HVlRfS1ZNR1QpCi1NT0RVTEVfU09GVERFUCgicHJlOiBr dm1ndCIpOwotI2VuZGlmCitpbnQKK2ludGVsX2d2dF9yZWdpc3Rlcl9oeXBlcnZpc29yKHN0cnVj dCBpbnRlbF9ndnRfbXB0ICptKQoreworCWludCByZXQ7CisJdm9pZCAqZ3Z0OworCisJaWYgKCFp bnRlbF9ndnRfaG9zdC5pbml0aWFsaXplZCkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwlpZiAobS0+ dHlwZSAhPSBJTlRFTF9HVlRfSFlQRVJWSVNPUl9LVk0gJiYKKwkgICAgbS0+dHlwZSAhPSBJTlRF TF9HVlRfSFlQRVJWSVNPUl9YRU4pCisJCXJldHVybiAtRUlOVkFMOworCisJLyogR2V0IGEgcmVm ZXJlbmNlIGZvciBkZXZpY2UgbW9kZWwgbW9kdWxlICovCisJaWYgKCF0cnlfbW9kdWxlX2dldChU SElTX01PRFVMRSkpCisJCXJldHVybiAtRU5PREVWOworCisJaW50ZWxfZ3Z0X2hvc3QubXB0ID0g bTsKKwlpbnRlbF9ndnRfaG9zdC5oeXBlcnZpc29yX3R5cGUgPSBtLT50eXBlOworCWd2dCA9ICh2 b2lkICopa2Rldl90b19pOTE1KGludGVsX2d2dF9ob3N0LmRldiktPmd2dDsKKworCXJldCA9IGlu dGVsX2d2dF9oeXBlcnZpc29yX2hvc3RfaW5pdChpbnRlbF9ndnRfaG9zdC5kZXYsIGd2dCwKKwkJ CQkJICAgICAmaW50ZWxfZ3Z0X29wcyk7CisJaWYgKHJldCA8IDApIHsKKwkJZ3Z0X2VycigiRmFp bGVkIHRvIGluaXQgJXMgaHlwZXJ2aXNvciBtb2R1bGVcbiIsCisJCQlzdXBwb3J0ZWRfaHlwZXJ2 aXNvcnNbaW50ZWxfZ3Z0X2hvc3QuaHlwZXJ2aXNvcl90eXBlXSk7CisJCXJldHVybiAtRU5PREVW OworCX0KKwlndnRfZGJnX2NvcmUoIlJ1bm5pbmcgd2l0aCBoeXBlcnZpc29yICVzIGluIGhvc3Qg bW9kZVxuIiwKKwkJICAgICBzdXBwb3J0ZWRfaHlwZXJ2aXNvcnNbaW50ZWxfZ3Z0X2hvc3QuaHlw ZXJ2aXNvcl90eXBlXSk7CisJcmV0dXJuIDA7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChpbnRlbF9n dnRfcmVnaXN0ZXJfaHlwZXJ2aXNvcik7CisKK3ZvaWQKK2ludGVsX2d2dF91bnJlZ2lzdGVyX2h5 cGVydmlzb3Iodm9pZCkKK3sKKwlpbnRlbF9ndnRfaHlwZXJ2aXNvcl9ob3N0X2V4aXQoaW50ZWxf Z3Z0X2hvc3QuZGV2KTsKKwltb2R1bGVfcHV0KFRISVNfTU9EVUxFKTsKK30KK0VYUE9SVF9TWU1C T0xfR1BMKGludGVsX2d2dF91bnJlZ2lzdGVyX2h5cGVydmlzb3IpOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2 dC5oCmluZGV4IGI0YWIxZGFkMDE0My4uOGE0Y2Y5OTVkNzU1IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndnQvZ3Z0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2 dC5oCkBAIC01MiwxMiArNTIsOCBAQAogCiAjZGVmaW5lIEdWVF9NQVhfVkdQVSA4CiAKLWVudW0g ewotCUlOVEVMX0dWVF9IWVBFUlZJU09SX1hFTiA9IDAsCi0JSU5URUxfR1ZUX0hZUEVSVklTT1Jf S1ZNLAotfTsKLQogc3RydWN0IGludGVsX2d2dF9ob3N0IHsKKwlzdHJ1Y3QgZGV2aWNlICpkZXY7 CiAJYm9vbCBpbml0aWFsaXplZDsKIAlpbnQgaHlwZXJ2aXNvcl90eXBlOwogCXN0cnVjdCBpbnRl bF9ndnRfbXB0ICptcHQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvaHlw ZXJjYWxsLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvaHlwZXJjYWxsLmgKaW5kZXggZTQ5 YTkyNDdlZDc4Li41MDc5ODg2OGFiMTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d2dC9oeXBlcmNhbGwuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvaHlwZXJjYWxs LmgKQEAgLTMzLDExICszMywxNyBAQAogI2lmbmRlZiBfR1ZUX0hZUEVSQ0FMTF9IXwogI2RlZmlu ZSBfR1ZUX0hZUEVSQ0FMTF9IXwogCitlbnVtIGh5cGVydmlzb3JfdHlwZSB7CisJSU5URUxfR1ZU X0hZUEVSVklTT1JfWEVOID0gMCwKKwlJTlRFTF9HVlRfSFlQRVJWSVNPUl9LVk0sCit9OworCiAv KgogICogU3BlY2lmaWMgR1ZULWcgTVBUIG1vZHVsZXMgZnVuY3Rpb24gY29sbGVjdGlvbnMuIEN1 cnJlbnRseSBHVlQtZyBzdXBwb3J0cwogICogYm90aCBYZW4gYW5kIEtWTSBieSBwcm92aWRpbmcg ZGVkaWNhdGVkIGh5cGVydmlzb3ItcmVsYXRlZCBNUFQgbW9kdWxlcy4KICAqLwogc3RydWN0IGlu dGVsX2d2dF9tcHQgeworCWVudW0gaHlwZXJ2aXNvcl90eXBlIHR5cGU7CiAJaW50ICgqaG9zdF9p bml0KShzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmd2dCwgY29uc3Qgdm9pZCAqb3BzKTsKIAl2 b2lkICgqaG9zdF9leGl0KShzdHJ1Y3QgZGV2aWNlICpkZXYpOwogCWludCAoKmF0dGFjaF92Z3B1 KSh2b2lkICp2Z3B1LCB1bnNpZ25lZCBsb25nICpoYW5kbGUpOwpAQCAtNjcsNiArNzMsNSBAQCBz dHJ1Y3QgaW50ZWxfZ3Z0X21wdCB7CiB9OwogCiBleHRlcm4gc3RydWN0IGludGVsX2d2dF9tcHQg eGVuZ3RfbXB0OwotZXh0ZXJuIHN0cnVjdCBpbnRlbF9ndnRfbXB0IGt2bWd0X21wdDsKIAogI2Vu ZGlmIC8qIF9HVlRfSFlQRVJDQUxMX0hfICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndnQva3ZtZ3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9rdm1ndC5jCmluZGV4 IDFiYmQwNGQzMGM0Mi4uZjg2N2I0NDA4ZDdmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndnQva3ZtZ3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQva3ZtZ3QuYwpA QCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUgImd2dC5oIgogCiBzdGF0aWMgY29uc3Qgc3RydWN0 IGludGVsX2d2dF9vcHMgKmludGVsX2d2dF9vcHM7CitzdGF0aWMgc3RydWN0IGludGVsX2d2dCAq aW50ZWxfZ3Z0OwogCiAvKiBoZWxwZXIgbWFjcm9zIGNvcGllZCBmcm9tIHZmaW8tcGNpICovCiAj ZGVmaW5lIFZGSU9fUENJX09GRlNFVF9TSElGVCAgIDQwCkBAIC02MjcsNiArNjI4LDExIEBAIHN0 YXRpYyBpbnQgaW50ZWxfdmdwdV9vcGVuKHN0cnVjdCBtZGV2X2RldmljZSAqbWRldikKIAkJZ290 byB1bmRvX2lvbW11OwogCX0KIAorCS8qIFRha2UgYSBtb2R1bGUgcmVmZXJlbmNlIGFzIG1kZXYg Y29yZSBkb2Vzbid0IHRha2UKKwkgICBhIHJlZmVyZW5jZSBmb3IgdmVuZG9yIGRyaXZlciAqLwor CWlmICghdHJ5X21vZHVsZV9nZXQoVEhJU19NT0RVTEUpKQorCQlnb3RvIHVuZG9fZ3JvdXA7CisK IAlyZXQgPSBrdm1ndF9ndWVzdF9pbml0KG1kZXYpOwogCWlmIChyZXQpCiAJCWdvdG8gdW5kb19n cm91cDsKQEAgLTY3OSw2ICs2ODUsOSBAQCBzdGF0aWMgdm9pZCBfX2ludGVsX3ZncHVfcmVsZWFz ZShzdHJ1Y3QgaW50ZWxfdmdwdSAqdmdwdSkKIAkJCQkJJnZncHUtPnZkZXYuZ3JvdXBfbm90aWZp ZXIpOwogCVdBUk4ocmV0LCAidmZpb191bnJlZ2lzdGVyX25vdGlmaWVyIGZvciBncm91cCBmYWls ZWQ6ICVkXG4iLCByZXQpOwogCisJLyogZGVyZWZlcmVuY2UgbW9kdWxlIHJlZmVyZW5jZSB0YWtl biBhdCBvcGVuICovCisJbW9kdWxlX3B1dChUSElTX01PRFVMRSk7CisKIAlpbmZvID0gKHN0cnVj dCBrdm1ndF9ndWVzdF9pbmZvICopdmdwdS0+aGFuZGxlOwogCWt2bWd0X2d1ZXN0X2V4aXQoaW5m byk7CiAKQEAgLTE0NTksOCArMTQ2OCwxMCBAQCBzdGF0aWMgaW50IGt2bWd0X2hvc3RfaW5pdChz dHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmd2dCwgY29uc3Qgdm9pZCAqb3BzKQogCXN0cnVjdCBh dHRyaWJ1dGVfZ3JvdXAgKiprdm1fdmdwdV90eXBlX2dyb3VwczsKIAogCWludGVsX2d2dF9vcHMg PSBvcHM7CisJaW50ZWxfZ3Z0ID0gKHN0cnVjdCBpbnRlbF9ndnQgKilndnQ7CisKIAlpZiAoIWlu dGVsX2d2dF9vcHMtPmdldF9ndnRfYXR0cnMoJmt2bV90eXBlX2F0dHJzLAotCQkJJmt2bV92Z3B1 X3R5cGVfZ3JvdXBzKSkKKwkJCQkJICAma3ZtX3ZncHVfdHlwZV9ncm91cHMpKQogCQlyZXR1cm4g LUVGQVVMVDsKIAlpbnRlbF92Z3B1X29wcy5zdXBwb3J0ZWRfdHlwZV9ncm91cHMgPSBrdm1fdmdw dV90eXBlX2dyb3VwczsKIApAQCAtMTg0OSw3ICsxODYwLDggQEAgc3RhdGljIGJvb2wga3ZtZ3Rf aXNfdmFsaWRfZ2ZuKHVuc2lnbmVkIGxvbmcgaGFuZGxlLCB1bnNpZ25lZCBsb25nIGdmbikKIAly ZXR1cm4gcmV0OwogfQogCi1zdHJ1Y3QgaW50ZWxfZ3Z0X21wdCBrdm1ndF9tcHQgPSB7CitzdGF0 aWMgc3RydWN0IGludGVsX2d2dF9tcHQga3ZtZ3RfbXB0ID0geworCS50eXBlID0gSU5URUxfR1ZU X0hZUEVSVklTT1JfS1ZNLAogCS5ob3N0X2luaXQgPSBrdm1ndF9ob3N0X2luaXQsCiAJLmhvc3Rf ZXhpdCA9IGt2bWd0X2hvc3RfZXhpdCwKIAkuYXR0YWNoX3ZncHUgPSBrdm1ndF9hdHRhY2hfdmdw dSwKQEAgLTE4NjgsMTUgKzE4ODAsMTcgQEAgc3RydWN0IGludGVsX2d2dF9tcHQga3ZtZ3RfbXB0 ID0gewogCS5wdXRfdmZpb19kZXZpY2UgPSBrdm1ndF9wdXRfdmZpb19kZXZpY2UsCiAJLmlzX3Zh bGlkX2dmbiA9IGt2bWd0X2lzX3ZhbGlkX2dmbiwKIH07Ci1FWFBPUlRfU1lNQk9MX0dQTChrdm1n dF9tcHQpOwogCiBzdGF0aWMgaW50IF9faW5pdCBrdm1ndF9pbml0KHZvaWQpCiB7CisJaWYgKGlu dGVsX2d2dF9yZWdpc3Rlcl9oeXBlcnZpc29yKCZrdm1ndF9tcHQpIDwgMCkKKwkJcmV0dXJuIC1F Tk9ERVY7CiAJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyB2b2lkIF9fZXhpdCBrdm1ndF9leGl0KHZv aWQpCiB7CisJaW50ZWxfZ3Z0X3VucmVnaXN0ZXJfaHlwZXJ2aXNvcigpOwogfQogCiBtb2R1bGVf aW5pdChrdm1ndF9pbml0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9t cHQuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9tcHQuaAppbmRleCBjOTVlZjc3ZGE2MmMu LjE4MTE5NDAwMGZiZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L21wdC5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9tcHQuaApAQCAtMzYwLDQgKzM2MCw3IEBA IHN0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF9ndnRfaHlwZXJ2aXNvcl9pc192YWxpZF9nZm4oCiAJ cmV0dXJuIGludGVsX2d2dF9ob3N0Lm1wdC0+aXNfdmFsaWRfZ2ZuKHZncHUtPmhhbmRsZSwgZ2Zu KTsKIH0KIAorZXh0ZXJuIGludCBpbnRlbF9ndnRfcmVnaXN0ZXJfaHlwZXJ2aXNvcihzdHJ1Y3Qg aW50ZWxfZ3Z0X21wdCAqKTsKK2V4dGVybiB2b2lkIGludGVsX2d2dF91bnJlZ2lzdGVyX2h5cGVy dmlzb3Iodm9pZCk7CisKICNlbmRpZiAvKiBfR1ZUX01QVF9IXyAqLwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3Z0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9ndnQuYwppbmRleCBjMjJiM2UxOGEwZjUuLmQ3NGU1OWUyMmM5ZCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3Z0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZ3Z0LmMKQEAgLTEwNSwxNSArMTA1LDYgQEAgaW50IGludGVsX2d2dF9pbml0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJcmV0dXJuIC1FSU87CiAJfQogCi0JLyoK LQkgKiBXZSdyZSBub3QgaW4gaG9zdCBvciBmYWlsIHRvIGZpbmQgYSBNUFQgbW9kdWxlLCBkaXNh YmxlIEdWVC1nCi0JICovCi0JcmV0ID0gaW50ZWxfZ3Z0X2luaXRfaG9zdCgpOwotCWlmIChyZXQp IHsKLQkJRFJNX0RFQlVHX0RSSVZFUigiTm90IGluIGhvc3Qgb3IgTVBUIG1vZHVsZXMgbm90IGZv dW5kXG4iKTsKLQkJZ290byBiYWlsOwotCX0KLQogCXJldCA9IGludGVsX2d2dF9pbml0X2Rldmlj ZShkZXZfcHJpdik7CiAJaWYgKHJldCkgewogCQlEUk1fREVCVUdfRFJJVkVSKCJGYWlsIHRvIGlu aXQgR1ZUIGRldmljZVxuIik7Ci0tIAoyLjE5LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=