From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhenyu Wang Subject: [PATCH v6 3/3] drm/i915/gvt: Change KVMGT as self load module Date: Fri, 7 Dec 2018 16:16:53 +0800 Message-ID: <20181207081653.1216-4-zhenyuw@linux.intel.com> References: <20181207081653.1216-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: <20181207081653.1216-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, "Yuan, Hang" List-Id: intel-gfx@lists.freedesktop.org VGhpcyB0cnlzIHRvIG1ha2UgJ2t2bWd0JyBtb2R1bGUgYXMgc2VsZiBsb2FkYWJsZSBpbnN0ZWFk IG9mIGxvYWRpbmcKYnkgaTkxNS9ndnQgZGV2aWNlIG1vZGVsLiBTbyBoeXBlcnZpc29yIHNwZWNp ZmljIG1vZHVsZSBjb3VsZCBiZQpzdGFuZC1hbG9uZSwgZS5nIG9ubHkgYWZ0ZXIgbG9hZGluZyBo eXBlcnZpc29yIHNwZWNpZmljIG1vZHVsZSwgR1ZUCmZlYXR1cmUgY291bGQgYmUgZW5hYmxlZCB2 aWEgc3BlY2lmaWMgaHlwZXJ2aXNvciBpbnRlcmZhY2UsIGUuZyBWRklPL21kZXYuCgpTbyB0aGlz IHRyeXMgdG8gdXNlIGh5cGVydmlzb3IgbW9kdWxlIHJlZ2lzdGVyL3VucmVnaXN0ZXIgaW50ZXJm YWNlCmZvciB0aGF0LiBIeXBlcnZpc29yIG1vZHVsZSBuZWVkcyB0byB0YWtlIGNhcmUgb2YgbW9k dWxlIHJlZmVyZW5jZQppdHNlbGYgd2hlbiB3b3JraW5nIGZvciBoeXBlcnZpc29yIGludGVyZmFj ZSwgZS5nIGZvciBWRklPL21kZXYsCmh5cGVydmlzb3IgbW9kdWxlIHdvdWxkIHJlZmVyZW5jZSBj b3VudGluZyBtZGV2IHdoZW4gb3BlbiBhbmQgcmVsZWFzZS4KClRoaXMgbWFrZXMgJ2t2bWd0JyBt b2R1bGUgcmVhbGx5IHNwbGl0IGZyb20gR1ZUIGRldmljZSBtb2RlbC4gVXNlcgpuZWVkcyB0byBs b2FkICdrdm1ndCcgdG8gZW5hYmxlIFZGSU8vbWRldiBpbnRlcmZhY2UuCgp2NjoKLSByZW1vdmUg dW51c2VkIHZhcmlhYmxlCgp2NToKLSBwdXQgbW9kdWxlIHJlZmVyZW5jZSBpbiByZWdpc3RlciBl cnJvciBwYXRoCgp2NDoKLSBmaXggY2hlY2twYXRjaCB3YXJuaW5nCgp2MzoKLSBGaXggbW9kdWxl IHJlZmVyZW5jZSBoYW5kbGluZyBmb3IgZGV2aWNlIG9wZW4gYW5kIHJlbGVhc2UuIFVudXNlZAog IG1kZXYgZGV2aWNlcyB3b3VsZCBiZSBjbGVhbmVkIHVwIGluIGRldmljZSB1bnJlZ2lzdGVyIHdo ZW4gbW9kdWxlIHVubG9hZC4KCnYyOgotIEZpeCBrdm1ndCBvcmRlciBhZnRlciBpOTE1IGZvciBi dWlsdC1pbiBjYXNlCgpDYzogIll1YW4sIEhhbmciIDxoYW5nLnl1YW5AaW50ZWwuY29tPgpDYzog QWxleCBXaWxsaWFtc29uIDxhbGV4LndpbGxpYW1zb25AcmVkaGF0LmNvbT4KQ2M6ICJIZSwgTWlu IiA8bWluLmhlQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IFl1YW4sIEhhbmcgPGhhbmcueXVhbkBp bnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IFpoZW55dSBXYW5nIDx6aGVueXV3QGxpbnV4LmludGVs LmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSAgICAgICAgfCAgIDEgKwog ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L01ha2VmaWxlICAgIHwgICAxIC0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2d2dC9ndnQuYyAgICAgICB8IDEwOCArKysrKysrKysrKy0tLS0tLS0tLS0tLS0t LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9ndnQuaCAgICAgICB8ICAgNiArLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3Z0L2h5cGVyY2FsbC5oIHwgICA3ICstCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9ndnQva3ZtZ3QuYyAgICAgfCAgMTYgKysrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0 L21wdC5oICAgICAgIHwgICAzICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d2dC5jICAg ICB8ICAgOSAtLS0KIDggZmlsZXMgY2hhbmdlZCwgNjkgaW5zZXJ0aW9ucygrKSwgODIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQppbmRleCAwZmY4NzhjOTk0ZTIuLmFlMGQ5NzVhNmYz NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKQEAgLTE5NSwzICsxOTUsNCBAQCBlbmRpZgogaTkxNS15 ICs9IGludGVsX2xwZV9hdWRpby5vCiAKIG9iai0kKENPTkZJR19EUk1fSTkxNSkgKz0gaTkxNS5v CitvYmotJChDT05GSUdfRFJNX0k5MTVfR1ZUX0tWTUdUKSArPSBndnQva3ZtZ3QubwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3Z0L01ha2VmaWxlCmluZGV4IGIwMTZkYzc1M2RiOS4uMjcxZmI0NmQ0ZGQwIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3Z0L01ha2VmaWxlCkBAIC03LDQgKzcsMyBAQCBHVlRfU09VUkNFIDo9IGd2 dC5vIGFwZXJ0dXJlX2dtLm8gaGFuZGxlcnMubyB2Z3B1Lm8gdHJhY2VfcG9pbnRzLm8gZmlybXdh cmUubyBcCiAKIGNjZmxhZ3MteQkJCQkrPSAtSSQoc3JjKSAtSSQoc3JjKS8kKEdWVF9ESVIpCiBp OTE1LXkJCQkJCSs9ICQoYWRkcHJlZml4ICQoR1ZUX0RJUikvLCAkKEdWVF9TT1VSQ0UpKQotb2Jq LSQoQ09ORklHX0RSTV9JOTE1X0dWVF9LVk1HVCkJKz0gJChHVlRfRElSKS9rdm1ndC5vCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3Z0LmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndnQvZ3Z0LmMKaW5kZXggYTViNzYwYjdiYzEwLi40ZTg5NDdmMzNiZDAgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9ndnQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndnQvZ3Z0LmMKQEAgLTE4Nyw1MiArMTg3LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBp bnRlbF9ndnRfb3BzIGludGVsX2d2dF9vcHMgPSB7CiAJLndyaXRlX3Byb3RlY3RfaGFuZGxlciA9 IGludGVsX3ZncHVfcGFnZV90cmFja19oYW5kbGVyLAogfTsKIAotLyoqCi0gKiBpbnRlbF9ndnRf aW5pdF9ob3N0IC0gTG9hZCBNUFQgbW9kdWxlcyBhbmQgZGV0ZWN0IGlmIHdlJ3JlIHJ1bm5pbmcg aW4gaG9zdAotICoKLSAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGF0IHRoZSBkcml2ZXIgbG9h ZGluZyBzdGFnZS4gSWYgZmFpbGVkIHRvIGZpbmQgYQotICogbG9hZGFibGUgTVBUIG1vZHVsZSBv ciBkZXRlY3QgY3VycmVudGx5IHdlJ3JlIHJ1bm5pbmcgaW4gYSBWTSwgdGhlbiBHVlQtZwotICog d2lsbCBiZSBkaXNhYmxlZAotICoKLSAqIFJldHVybnM6Ci0gKiBaZXJvIG9uIHN1Y2Nlc3MsIG5l Z2F0aXZlIGVycm9yIGNvZGUgaWYgZmFpbGVkLgotICoKLSAqLwotaW50IGludGVsX2d2dF9pbml0 X2hvc3Qodm9pZCkKLXsKLQlpZiAoaW50ZWxfZ3Z0X2hvc3QuaW5pdGlhbGl6ZWQpCi0JCXJldHVy biAwOwotCi0JLyogWGVuIERPTSBVICovCi0JaWYgKHhlbl9kb21haW4oKSAmJiAheGVuX2luaXRp YWxfZG9tYWluKCkpCi0JCXJldHVybiAtRU5PREVWOwotCi0JLyogVHJ5IHRvIGxvYWQgTVBUIG1v ZHVsZXMgZm9yIGh5cGVydmlzb3JzICovCi0JaWYgKHhlbl9pbml0aWFsX2RvbWFpbigpKSB7Ci0J CS8qIEluIFhlbiBkb20wICovCi0JCWludGVsX2d2dF9ob3N0Lm1wdCA9IHRyeV90aGVuX3JlcXVl c3RfbW9kdWxlKAotCQkJCXN5bWJvbF9nZXQoeGVuZ3RfbXB0KSwgInhlbmd0Iik7Ci0JCWludGVs X2d2dF9ob3N0Lmh5cGVydmlzb3JfdHlwZSA9IElOVEVMX0dWVF9IWVBFUlZJU09SX1hFTjsKLQl9 IGVsc2UgewotI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X0dWVF9LVk1HVCkKLQkJLyog bm90IGluIFhlbi4gVHJ5IEtWTUdUICovCi0JCWludGVsX2d2dF9ob3N0Lm1wdCA9IHRyeV90aGVu X3JlcXVlc3RfbW9kdWxlKAotCQkJCXN5bWJvbF9nZXQoa3ZtZ3RfbXB0KSwgImt2bWd0Iik7Ci0J CWludGVsX2d2dF9ob3N0Lmh5cGVydmlzb3JfdHlwZSA9IElOVEVMX0dWVF9IWVBFUlZJU09SX0tW TTsKLSNlbmRpZgotCX0KLQotCS8qIEZhaWwgdG8gbG9hZCBNUFQgbW9kdWxlcyAtIGJhaWwgb3V0 ICovCi0JaWYgKCFpbnRlbF9ndnRfaG9zdC5tcHQpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JZ3Z0 X2RiZ19jb3JlKCJSdW5uaW5nIHdpdGggaHlwZXJ2aXNvciAlcyBpbiBob3N0IG1vZGVcbiIsCi0J CQlzdXBwb3J0ZWRfaHlwZXJ2aXNvcnNbaW50ZWxfZ3Z0X2hvc3QuaHlwZXJ2aXNvcl90eXBlXSk7 Ci0KLQlpbnRlbF9ndnRfaG9zdC5pbml0aWFsaXplZCA9IHRydWU7Ci0JcmV0dXJuIDA7Ci19Ci0K IHN0YXRpYyB2b2lkIGluaXRfZGV2aWNlX2luZm8oc3RydWN0IGludGVsX2d2dCAqZ3Z0KQogewog CXN0cnVjdCBpbnRlbF9ndnRfZGV2aWNlX2luZm8gKmluZm8gPSAmZ3Z0LT5kZXZpY2VfaW5mbzsK QEAgLTMxNiw3ICsyNzAsNiBAQCB2b2lkIGludGVsX2d2dF9jbGVhbl9kZXZpY2Uoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQlyZXR1cm47CiAKIAlpbnRlbF9ndnRfZGVzdHJv eV9pZGxlX3ZncHUoZ3Z0LT5pZGxlX3ZncHUpOwotCWludGVsX2d2dF9oeXBlcnZpc29yX2hvc3Rf ZXhpdCgmZGV2X3ByaXYtPmRybS5wZGV2LT5kZXYpOwogCWludGVsX2d2dF9jbGVhbnVwX3ZncHVf dHlwZV9ncm91cHMoZ3Z0KTsKIAlpbnRlbF9ndnRfY2xlYW5fdmdwdV90eXBlcyhndnQpOwogCkBA IC0zNTIsMTMgKzMwNSw2IEBAIGludCBpbnRlbF9ndnRfaW5pdF9kZXZpY2Uoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQogCXN0cnVjdCBpbnRlbF92Z3B1ICp2Z3B1OwogCWludCBy ZXQ7CiAKLQkvKgotCSAqIENhbm5vdCBpbml0aWFsaXplIEdWVCBkZXZpY2Ugd2l0aG91dCBpbnRl bF9ndnRfaG9zdCBnZXRzCi0JICogaW5pdGlhbGl6ZWQgZmlyc3QuCi0JICovCi0JaWYgKFdBUk5f T04oIWludGVsX2d2dF9ob3N0LmluaXRpYWxpemVkKSkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KIAlp ZiAoV0FSTl9PTihkZXZfcHJpdi0+Z3Z0KSkKIAkJcmV0dXJuIC1FRVhJU1Q7CiAKQEAgLTQyMCwx MyArMzY2LDYgQEAgaW50IGludGVsX2d2dF9pbml0X2RldmljZShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCiAJCWdvdG8gb3V0X2NsZWFuX3R5cGVzOwogCX0KIAotCXJldCA9IGlu dGVsX2d2dF9oeXBlcnZpc29yX2hvc3RfaW5pdCgmZGV2X3ByaXYtPmRybS5wZGV2LT5kZXYsIGd2 dCwKLQkJCQkmaW50ZWxfZ3Z0X29wcyk7Ci0JaWYgKHJldCkgewotCQlndnRfZXJyKCJmYWlsZWQg dG8gcmVnaXN0ZXIgZ3Z0LWcgaG9zdCBkZXZpY2U6ICVkXG4iLCByZXQpOwotCQlnb3RvIG91dF9j bGVhbl90eXBlczsKLQl9Ci0KIAl2Z3B1ID0gaW50ZWxfZ3Z0X2NyZWF0ZV9pZGxlX3ZncHUoZ3Z0 KTsKIAlpZiAoSVNfRVJSKHZncHUpKSB7CiAJCXJldCA9IFBUUl9FUlIodmdwdSk7CkBAIC00NDEs NiArMzgwLDggQEAgaW50IGludGVsX2d2dF9pbml0X2RldmljZShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCiAKIAlndnRfZGJnX2NvcmUoImd2dCBkZXZpY2UgaW5pdGlhbGl6YXRp b24gaXMgZG9uZVxuIik7CiAJZGV2X3ByaXYtPmd2dCA9IGd2dDsKKwlpbnRlbF9ndnRfaG9zdC5k ZXYgPSAmZGV2X3ByaXYtPmRybS5wZGV2LT5kZXY7CisJaW50ZWxfZ3Z0X2hvc3QuaW5pdGlhbGl6 ZWQgPSB0cnVlOwogCXJldHVybiAwOwogCiBvdXRfY2xlYW5fdHlwZXM6CkBAIC00NjcsNiArNDA4 LDQ1IEBAIGludCBpbnRlbF9ndnRfaW5pdF9kZXZpY2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQogCXJldHVybiByZXQ7CiB9CiAKLSNpZiBJU19FTkFCTEVEKENPTkZJR19EUk1f STkxNV9HVlRfS1ZNR1QpCi1NT0RVTEVfU09GVERFUCgicHJlOiBrdm1ndCIpOwotI2VuZGlmCitp bnQKK2ludGVsX2d2dF9yZWdpc3Rlcl9oeXBlcnZpc29yKHN0cnVjdCBpbnRlbF9ndnRfbXB0ICpt KQoreworCWludCByZXQ7CisJdm9pZCAqZ3Z0OworCisJaWYgKCFpbnRlbF9ndnRfaG9zdC5pbml0 aWFsaXplZCkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwlpZiAobS0+dHlwZSAhPSBJTlRFTF9HVlRf SFlQRVJWSVNPUl9LVk0gJiYKKwkgICAgbS0+dHlwZSAhPSBJTlRFTF9HVlRfSFlQRVJWSVNPUl9Y RU4pCisJCXJldHVybiAtRUlOVkFMOworCisJLyogR2V0IGEgcmVmZXJlbmNlIGZvciBkZXZpY2Ug bW9kZWwgbW9kdWxlICovCisJaWYgKCF0cnlfbW9kdWxlX2dldChUSElTX01PRFVMRSkpCisJCXJl dHVybiAtRU5PREVWOworCisJaW50ZWxfZ3Z0X2hvc3QubXB0ID0gbTsKKwlpbnRlbF9ndnRfaG9z dC5oeXBlcnZpc29yX3R5cGUgPSBtLT50eXBlOworCWd2dCA9ICh2b2lkICopa2Rldl90b19pOTE1 KGludGVsX2d2dF9ob3N0LmRldiktPmd2dDsKKworCXJldCA9IGludGVsX2d2dF9oeXBlcnZpc29y X2hvc3RfaW5pdChpbnRlbF9ndnRfaG9zdC5kZXYsIGd2dCwKKwkJCQkJICAgICAmaW50ZWxfZ3Z0 X29wcyk7CisJaWYgKHJldCA8IDApIHsKKwkJZ3Z0X2VycigiRmFpbGVkIHRvIGluaXQgJXMgaHlw ZXJ2aXNvciBtb2R1bGVcbiIsCisJCQlzdXBwb3J0ZWRfaHlwZXJ2aXNvcnNbaW50ZWxfZ3Z0X2hv c3QuaHlwZXJ2aXNvcl90eXBlXSk7CisJCW1vZHVsZV9wdXQoVEhJU19NT0RVTEUpOworCQlyZXR1 cm4gLUVOT0RFVjsKKwl9CisJZ3Z0X2RiZ19jb3JlKCJSdW5uaW5nIHdpdGggaHlwZXJ2aXNvciAl cyBpbiBob3N0IG1vZGVcbiIsCisJCSAgICAgc3VwcG9ydGVkX2h5cGVydmlzb3JzW2ludGVsX2d2 dF9ob3N0Lmh5cGVydmlzb3JfdHlwZV0pOworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTF9H UEwoaW50ZWxfZ3Z0X3JlZ2lzdGVyX2h5cGVydmlzb3IpOworCit2b2lkCitpbnRlbF9ndnRfdW5y ZWdpc3Rlcl9oeXBlcnZpc29yKHZvaWQpCit7CisJaW50ZWxfZ3Z0X2h5cGVydmlzb3JfaG9zdF9l eGl0KGludGVsX2d2dF9ob3N0LmRldik7CisJbW9kdWxlX3B1dChUSElTX01PRFVMRSk7Cit9CitF WFBPUlRfU1lNQk9MX0dQTChpbnRlbF9ndnRfdW5yZWdpc3Rlcl9oeXBlcnZpc29yKTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9ndnQuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d2dC9ndnQuaAppbmRleCBiNGFiMWRhZDAxNDMuLjhhNGNmOTk1ZDc1NSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d2dC9ndnQuaApAQCAtNTIsMTIgKzUyLDggQEAKIAogI2RlZmluZSBHVlRfTUFYX1ZHUFUg OAogCi1lbnVtIHsKLQlJTlRFTF9HVlRfSFlQRVJWSVNPUl9YRU4gPSAwLAotCUlOVEVMX0dWVF9I WVBFUlZJU09SX0tWTSwKLX07Ci0KIHN0cnVjdCBpbnRlbF9ndnRfaG9zdCB7CisJc3RydWN0IGRl dmljZSAqZGV2OwogCWJvb2wgaW5pdGlhbGl6ZWQ7CiAJaW50IGh5cGVydmlzb3JfdHlwZTsKIAlz dHJ1Y3QgaW50ZWxfZ3Z0X21wdCAqbXB0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3Z0L2h5cGVyY2FsbC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2h5cGVyY2FsbC5o CmluZGV4IGU0OWE5MjQ3ZWQ3OC4uNTA3OTg4NjhhYjE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndnQvaHlwZXJjYWxsLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0 L2h5cGVyY2FsbC5oCkBAIC0zMywxMSArMzMsMTcgQEAKICNpZm5kZWYgX0dWVF9IWVBFUkNBTExf SF8KICNkZWZpbmUgX0dWVF9IWVBFUkNBTExfSF8KIAorZW51bSBoeXBlcnZpc29yX3R5cGUgewor CUlOVEVMX0dWVF9IWVBFUlZJU09SX1hFTiA9IDAsCisJSU5URUxfR1ZUX0hZUEVSVklTT1JfS1ZN LAorfTsKKwogLyoKICAqIFNwZWNpZmljIEdWVC1nIE1QVCBtb2R1bGVzIGZ1bmN0aW9uIGNvbGxl Y3Rpb25zLiBDdXJyZW50bHkgR1ZULWcgc3VwcG9ydHMKICAqIGJvdGggWGVuIGFuZCBLVk0gYnkg cHJvdmlkaW5nIGRlZGljYXRlZCBoeXBlcnZpc29yLXJlbGF0ZWQgTVBUIG1vZHVsZXMuCiAgKi8K IHN0cnVjdCBpbnRlbF9ndnRfbXB0IHsKKwllbnVtIGh5cGVydmlzb3JfdHlwZSB0eXBlOwogCWlu dCAoKmhvc3RfaW5pdCkoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpndnQsIGNvbnN0IHZvaWQg Km9wcyk7CiAJdm9pZCAoKmhvc3RfZXhpdCkoc3RydWN0IGRldmljZSAqZGV2KTsKIAlpbnQgKCph dHRhY2hfdmdwdSkodm9pZCAqdmdwdSwgdW5zaWduZWQgbG9uZyAqaGFuZGxlKTsKQEAgLTY3LDYg KzczLDUgQEAgc3RydWN0IGludGVsX2d2dF9tcHQgewogfTsKIAogZXh0ZXJuIHN0cnVjdCBpbnRl bF9ndnRfbXB0IHhlbmd0X21wdDsKLWV4dGVybiBzdHJ1Y3QgaW50ZWxfZ3Z0X21wdCBrdm1ndF9t cHQ7CiAKICNlbmRpZiAvKiBfR1ZUX0hZUEVSQ0FMTF9IXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3Z0L2t2bWd0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQva3Zt Z3QuYwppbmRleCAxYmJkMDRkMzBjNDIuLmExOWU2ODRlNjIxYSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3Z0L2t2bWd0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0 L2t2bWd0LmMKQEAgLTYyNyw2ICs2MjcsMTIgQEAgc3RhdGljIGludCBpbnRlbF92Z3B1X29wZW4o c3RydWN0IG1kZXZfZGV2aWNlICptZGV2KQogCQlnb3RvIHVuZG9faW9tbXU7CiAJfQogCisJLyog VGFrZSBhIG1vZHVsZSByZWZlcmVuY2UgYXMgbWRldiBjb3JlIGRvZXNuJ3QgdGFrZQorCSAqIGEg cmVmZXJlbmNlIGZvciB2ZW5kb3IgZHJpdmVyLgorCSAqLworCWlmICghdHJ5X21vZHVsZV9nZXQo VEhJU19NT0RVTEUpKQorCQlnb3RvIHVuZG9fZ3JvdXA7CisKIAlyZXQgPSBrdm1ndF9ndWVzdF9p bml0KG1kZXYpOwogCWlmIChyZXQpCiAJCWdvdG8gdW5kb19ncm91cDsKQEAgLTY3OSw2ICs2ODUs OSBAQCBzdGF0aWMgdm9pZCBfX2ludGVsX3ZncHVfcmVsZWFzZShzdHJ1Y3QgaW50ZWxfdmdwdSAq dmdwdSkKIAkJCQkJJnZncHUtPnZkZXYuZ3JvdXBfbm90aWZpZXIpOwogCVdBUk4ocmV0LCAidmZp b191bnJlZ2lzdGVyX25vdGlmaWVyIGZvciBncm91cCBmYWlsZWQ6ICVkXG4iLCByZXQpOwogCisJ LyogZGVyZWZlcmVuY2UgbW9kdWxlIHJlZmVyZW5jZSB0YWtlbiBhdCBvcGVuICovCisJbW9kdWxl X3B1dChUSElTX01PRFVMRSk7CisKIAlpbmZvID0gKHN0cnVjdCBrdm1ndF9ndWVzdF9pbmZvICop dmdwdS0+aGFuZGxlOwogCWt2bWd0X2d1ZXN0X2V4aXQoaW5mbyk7CiAKQEAgLTE4NDksNyArMTg1 OCw4IEBAIHN0YXRpYyBib29sIGt2bWd0X2lzX3ZhbGlkX2dmbih1bnNpZ25lZCBsb25nIGhhbmRs ZSwgdW5zaWduZWQgbG9uZyBnZm4pCiAJcmV0dXJuIHJldDsKIH0KIAotc3RydWN0IGludGVsX2d2 dF9tcHQga3ZtZ3RfbXB0ID0geworc3RhdGljIHN0cnVjdCBpbnRlbF9ndnRfbXB0IGt2bWd0X21w dCA9IHsKKwkudHlwZSA9IElOVEVMX0dWVF9IWVBFUlZJU09SX0tWTSwKIAkuaG9zdF9pbml0ID0g a3ZtZ3RfaG9zdF9pbml0LAogCS5ob3N0X2V4aXQgPSBrdm1ndF9ob3N0X2V4aXQsCiAJLmF0dGFj aF92Z3B1ID0ga3ZtZ3RfYXR0YWNoX3ZncHUsCkBAIC0xODY4LDE1ICsxODc4LDE3IEBAIHN0cnVj dCBpbnRlbF9ndnRfbXB0IGt2bWd0X21wdCA9IHsKIAkucHV0X3ZmaW9fZGV2aWNlID0ga3ZtZ3Rf cHV0X3ZmaW9fZGV2aWNlLAogCS5pc192YWxpZF9nZm4gPSBrdm1ndF9pc192YWxpZF9nZm4sCiB9 OwotRVhQT1JUX1NZTUJPTF9HUEwoa3ZtZ3RfbXB0KTsKIAogc3RhdGljIGludCBfX2luaXQga3Zt Z3RfaW5pdCh2b2lkKQogeworCWlmIChpbnRlbF9ndnRfcmVnaXN0ZXJfaHlwZXJ2aXNvcigma3Zt Z3RfbXB0KSA8IDApCisJCXJldHVybiAtRU5PREVWOwogCXJldHVybiAwOwogfQogCiBzdGF0aWMg dm9pZCBfX2V4aXQga3ZtZ3RfZXhpdCh2b2lkKQogeworCWludGVsX2d2dF91bnJlZ2lzdGVyX2h5 cGVydmlzb3IoKTsKIH0KIAogbW9kdWxlX2luaXQoa3ZtZ3RfaW5pdCk7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvbXB0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQv bXB0LmgKaW5kZXggYzk1ZWY3N2RhNjJjLi45YjQyMjVkNDQyNDMgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d2dC9tcHQuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQv bXB0LmgKQEAgLTM2MCw0ICszNjAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaW50ZWxfZ3Z0X2h5 cGVydmlzb3JfaXNfdmFsaWRfZ2ZuKAogCXJldHVybiBpbnRlbF9ndnRfaG9zdC5tcHQtPmlzX3Zh bGlkX2dmbih2Z3B1LT5oYW5kbGUsIGdmbik7CiB9CiAKK2ludCBpbnRlbF9ndnRfcmVnaXN0ZXJf aHlwZXJ2aXNvcihzdHJ1Y3QgaW50ZWxfZ3Z0X21wdCAqKTsKK3ZvaWQgaW50ZWxfZ3Z0X3VucmVn aXN0ZXJfaHlwZXJ2aXNvcih2b2lkKTsKKwogI2VuZGlmIC8qIF9HVlRfTVBUX0hfICovCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndnQuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2d2dC5jCmluZGV4IGMyMmIzZTE4YTBmNS4uZDc0ZTU5ZTIyYzlkIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndnQuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9ndnQuYwpAQCAtMTA1LDE1ICsxMDUsNiBAQCBpbnQgaW50ZWxfZ3Z0 X2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQlyZXR1cm4gLUVJTzsK IAl9CiAKLQkvKgotCSAqIFdlJ3JlIG5vdCBpbiBob3N0IG9yIGZhaWwgdG8gZmluZCBhIE1QVCBt b2R1bGUsIGRpc2FibGUgR1ZULWcKLQkgKi8KLQlyZXQgPSBpbnRlbF9ndnRfaW5pdF9ob3N0KCk7 Ci0JaWYgKHJldCkgewotCQlEUk1fREVCVUdfRFJJVkVSKCJOb3QgaW4gaG9zdCBvciBNUFQgbW9k dWxlcyBub3QgZm91bmRcbiIpOwotCQlnb3RvIGJhaWw7Ci0JfQotCiAJcmV0ID0gaW50ZWxfZ3Z0 X2luaXRfZGV2aWNlKGRldl9wcml2KTsKIAlpZiAocmV0KSB7CiAJCURSTV9ERUJVR19EUklWRVIo IkZhaWwgdG8gaW5pdCBHVlQgZGV2aWNlXG4iKTsKLS0gCjIuMTkuMQoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==